プロジェクトのデータ構造を拡張するために、新しいカスタムフィールドを追加します。タイプ固有の設定を使用します。


カスタムフィールドの作成

カスタムフィールドを使用すると、レコードに構造化データフィールドを追加することで、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に表示されるように明確で説明的であるべきです

関連エンドポイント

AIアシスタント

回答はAIを使用して生成されており、間違いが含まれる可能性があります。

どのようにお手伝いできますか?

Blueやこのドキュメントについて何でも聞いてください。

送信するにはEnterを押してください • 新しい行を作成するにはShift+Enterを押してください • ⌘Iで開く