プロジェクトのデータ構造を拡張するために、新しいカスタムフィールドを追加します。タイプ固有の設定を使用します。
カスタムフィールドの作成
カスタムフィールドを使用すると、レコードに構造化データフィールドを追加することで、Blueを特定のビジネスニーズに合わせて調整できます。このエンドポイントは、各フィールドタイプに特有の設定を持つ新しいカスタムフィールドを作成します。
基本的な例
mutation CreateTextField {
createCustomField(input: {
name: "Customer Name"
type: TEXT_SINGLE
description: "Primary customer contact name"
}) {
id
uid
name
type
position
}
}
高度な例
mutation CreateAdvancedField {
createCustomField(input: {
name: "Project Budget"
type: CURRENCY
description: "Total allocated budget for this project"
currency: "USD"
min: 0
max: 1000000
}) {
id
uid
name
type
currency
min
max
position
createdAt
}
}
入力パラメータ
CreateCustomFieldInput
パラメータ | タイプ | 必須 | 説明 |
---|---|---|---|
name |
String! | ✅ はい | カスタムフィールドの表示名 |
type |
CustomFieldType! | ✅ はい | フィールドタイプ(以下のタイプを参照) |
description |
String | いいえ | フィールドの目的を説明するオプションの説明 |
min |
Float | いいえ | NUMBER、RATING、PERCENTフィールドの最小値 |
max |
Float | いいえ | NUMBER、RATING、PERCENTフィールドの最大値 |
currency |
String | いいえ | CURRENCYフィールドのISO通貨コード |
prefix |
String | いいえ | UNIQUE_IDフィールドのテキストプレフィックス |
isDueDate |
Boolean | いいえ | DATEフィールドが期限日を表すかどうか |
formula |
JSON | いいえ | FORMULAフィールドの数式設定 |
referenceProjectId |
String | いいえ | REFERENCEフィールドのターゲットプロジェクトID |
referenceMultiple |
Boolean | いいえ | REFERENCEフィールドでの複数選択を許可 |
referenceFilter |
TodoFilterInput | いいえ | REFERENCEフィールドのフィルターオプション |
lookupOption |
CustomFieldLookupOptionInput | いいえ | LOOKUPフィールドの設定 |
timeDurationDisplay |
CustomFieldTimeDurationDisplayType | いいえ | TIME_DURATIONの表示形式 |
timeDurationTargetTime |
Float | いいえ | TIME_DURATIONのターゲット時間(秒) |
timeDurationStartInput |
CustomFieldTimeDurationInput | いいえ | TIME_DURATIONの開始トリガー |
timeDurationEndInput |
CustomFieldTimeDurationInput | いいえ | TIME_DURATIONの終了トリガー |
buttonType |
String | いいえ | BUTTONフィールドのボタンアクションタイプ |
buttonConfirmText |
String | いいえ | BUTTONフィールドの確認プロンプト |
useSequenceUniqueId |
Boolean | いいえ | UNIQUE_IDの連番を使用 |
sequenceDigits |
Int | いいえ | 連番の桁数(例:5 → 00001) |
sequenceStartingNumber |
Int | いいえ | シーケンスの開始番号 |
currencyFieldId |
String | いいえ | CURRENCY_CONVERSIONの参照通貨フィールド |
conversionDate |
String | いいえ | CURRENCY_CONVERSIONの変換日 |
conversionDateType |
String | いいえ | CURRENCY_CONVERSIONの変換日のタイプ |
metadata |
JSON | いいえ | カスタムフィールドの追加メタデータ |
CustomFieldTypeの値
値 | 説明 | 必須パラメータ |
---|---|---|
TEXT_SINGLE |
単一行テキスト入力 | なし |
TEXT_MULTI |
複数行テキストエリア | なし |
SELECT_SINGLE |
単一選択ドロップダウン | Create options separately |
SELECT_MULTI |
複数選択ドロップダウン | Create options separately |
CHECKBOX |
ブールチェックボックス | なし |
RATING |
星評価フィールド | Optional: max (default: 5) |
PHONE |
検証付き電話番号 | なし |
NUMBER |
数値入力 | Optional: min , max |
CURRENCY |
通貨額 | Optional: currency , min , max |
PERCENT |
パーセンテージ(0-100) | Optional: min , max |
EMAIL |
検証付きメール | なし |
URL |
検証付きウェブURL | なし |
UNIQUE_ID |
自動生成された識別子 | Optional: prefix , useSequenceUniqueId |
LOCATION |
地理座標 | なし |
FILE |
ファイル添付 | なし |
DATE |
日付ピッカー | Optional: isDueDate |
COUNTRY |
国の選択 | なし |
FORMULA |
計算フィールド | Required: formula |
REFERENCE |
他のレコードへのリンク | Required: referenceProjectId |
LOOKUP |
参照からデータを取得 | Required: lookupOption |
TIME_DURATION |
時間追跡 | Required: duration inputs (see below) |
BUTTON |
アクションボタン | Optional: buttonType , buttonConfirmText |
CURRENCY_CONVERSION |
通貨コンバータ | Special configuration |
フィールドタイプ設定の例
制約のある数値フィールド
mutation CreateQuantityField {
createCustomField(input: {
name: "Quantity"
type: NUMBER
description: "Number of items"
min: 1
max: 999
}) {
id
name
min
max
}
}
通貨フィールド
mutation CreateBudgetField {
createCustomField(input: {
name: "Budget"
type: CURRENCY
currency: "EUR"
min: 0
}) {
id
name
currency
min
}
}
期限日フラグ付き日付フィールド
mutation CreateDeadlineField {
createCustomField(input: {
name: "Project Deadline"
type: DATE
isDueDate: true
description: "When this project must be completed"
}) {
id
name
isDueDate
}
}
参照フィールド
mutation CreateRelatedTasksField {
createCustomField(input: {
name: "Dependencies"
type: REFERENCE
referenceProjectId: "proj_abc123"
referenceMultiple: true
referenceFilter: {
statusIds: ["status_open", "status_inprogress"]
}
}) {
id
name
referenceProjectId
referenceMultiple
}
}
ルックアップフィールド
mutation CreateLookupField {
createCustomField(input: {
name: "Customer Email"
type: LOOKUP
lookupOption: {
referenceId: "field_customer_ref"
lookupId: "field_email"
lookupType: TODO_CUSTOM_FIELD
}
}) {
id
name
customFieldLookupOption {
referenceId
lookupId
lookupType
}
}
}
シーケンス付きユニークID
mutation CreateOrderNumberField {
createCustomField(input: {
name: "Order Number"
type: UNIQUE_ID
prefix: "ORD-"
useSequenceUniqueId: true
sequenceDigits: 6
sequenceStartingNumber: 1000
}) {
id
name
prefix
}
}
時間の持続時間フィールド
mutation CreateTimeTrackingField {
createCustomField(input: {
name: "Time to Resolution"
type: TIME_DURATION
timeDurationDisplay: FULL_DATE_STRING
timeDurationStartInput: {
type: TODO_CREATED_AT
condition: FIRST
}
timeDurationEndInput: {
type: TODO_MARKED_AS_COMPLETE
condition: FIRST
}
}) {
id
name
}
}
有効な時間持続時間タイプ
TODO_CREATED_AT
- レコードが作成されたときTODO_CUSTOM_FIELD
- カスタムフィールドが変更されたときTODO_DUE_DATE
- 期限日が設定/変更されたときTODO_MARKED_AS_COMPLETE
- レコードが完了としてマークされたときTODO_MOVED
- レコードが異なるリストに移動されたときTODO_TAG_ADDED
- タグが追加されたときTODO_ASSIGNEE_ADDED
- 担当者が追加されたとき
選択オプションの作成
SELECT_SINGLEまたはSELECT_MULTIフィールドを作成した後、オプションを追加します:
mutation CreateSelectOptions {
createCustomFieldOptions(input: {
customFieldId: "field_xyz789"
customFieldOptions: [
{ title: "High", color: "#FF0000", position: 1 }
{ title: "Medium", color: "#FFA500", position: 2 }
{ title: "Low", color: "#00FF00", position: 3 }
]
}) {
id
title
color
position
}
}
レスポンスフィールド
CustomField
フィールド | タイプ | 説明 |
---|---|---|
id |
String! | ユニーク識別子 |
uid |
String! | ユーザーフレンドリーなユニークID |
name |
String! | 表示名 |
type |
CustomFieldType! | フィールドタイプ |
description |
String | フィールドの説明 |
position |
Float! | 表示順序 |
createdAt |
DateTime! | 作成タイムスタンプ |
updatedAt |
DateTime! | 最終更新タイムスタンプ |
min |
Float | 最小値(該当する場合) |
max |
Float | 最大値(該当する場合) |
currency |
String | 通貨コード(CURRENCYタイプ) |
prefix |
String | IDプレフィックス(UNIQUE_IDタイプ) |
isDueDate |
Boolean | 期限日フラグ(DATEタイプ) |
formula |
JSON | 数式設定(FORMULAタイプ) |
referenceProjectId |
String | 参照プロジェクト(REFERENCEタイプ) |
customFieldLookupOption |
CustomFieldLookupOption | ルックアップ設定(LOOKUPタイプ) |
必要な権限
カスタムフィールドを作成するには、プロジェクトへのアクセスが必要です:
役割 | カスタムフィールドを作成できる |
---|---|
OWNER |
✅ はい |
ADMIN |
✅ はい |
MEMBER |
✅ はい |
CLIENT |
❌ いいえ |
注:カスタムロールにはフィールド管理に関する追加の制限がある場合があります。
エラーレスポンス
無効なフィールドタイプ
{
"errors": [{
"message": "Variable \"$input\" got invalid value \"INVALID\" at \"input.type\"; Value \"INVALID\" does not exist in \"CustomFieldType\" enum.",
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED"
}
}]
}
参照プロジェクトが見つかりません
{
"errors": [{
"message": "Reference project not found or access denied",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
必須設定が欠落しています
{
"errors": [{
"message": "REFERENCE fields require referenceProjectId",
"extensions": {
"code": "VALIDATION_ERROR"
}
}]
}
重要な注意事項
- フィールド位置: 既存のフィールドの最後に表示されるように自動的に計算されます
- フィールド制限: プロジェクトにはカスタムフィールドの数に制限がある場合があります
- 即時利用可能性: 作成されたフィールドはすぐに使用可能です
- 副作用: フィールドを作成すると、以下がトリガーされます:
- アクティビティログエントリ
- 接続されたユーザーへのリアルタイム更新
- Webhook通知
- FORMULA、LOOKUP、およびUNIQUE_IDフィールドのバックグラウンドジョブ
- 特別な考慮事項:
- REFERENCEフィールドはターゲットプロジェクトへのアクセスを必要とします
- LOOKUPフィールドは既存のREFERENCEフィールドに依存します
- FORMULAフィールドは自分自身を参照できません
- UNIQUE_IDシーケンスは非同期で処理されます
- SELECTフィールドはオプションを別に作成する必要があります
- 命名: フィールド名はUIに表示されるように明確で説明的であるべきです
関連エンドポイント
- カスタムフィールドの一覧 - 既存のカスタムフィールドを表示
- カスタムフィールドの更新 - フィールドプロパティを変更
- カスタムフィールドの削除 - カスタムフィールドを削除
- フィールドオプションの作成 - 選択フィールドにオプションを追加
- カスタムフィールド値の設定 - レコードに値を設定