Blue APIを使用してレコードからユーザーを割り当て、追加、または削除します


レコードのアサイン先を管理する

Blue APIは、レコードのアサイン先を管理するための3つの操作を提供します:アサイン先の設定(スマート置換)、アサイン先の追加、アサイン先の削除。これらの操作は、アクティビティの追跡、通知、Webhook、およびリアルタイムの更新を自動的に処理します。

レコードのアサイン先を設定する(スマートアサインメント)

現在のアサイン先を新しいリストで置き換えます。システムは、必要な変更をインテリジェントに計算し、新しいリストに含まれないユーザーを削除し、新しいユーザーを追加します。

mutation SetRecordAssignees {
  setTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_123", "user_456", "user_789"]
  }) {
    success
    operationId
  }
}

レコードのアサイン先を追加する

既存のアサイン先を削除することなく、新しいアサイン先を追加します。すでにアサインされていないユーザーのみが追加されます。

mutation AddRecordAssignees {
  addTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_999", "user_111"]
  }) {
    success
    operationId
  }
}

レコードのアサイン先を削除する

特定のアサイン先をレコードから削除します。

mutation RemoveRecordAssignees {
  removeTodoAssignees(input: {
    todoId: "record_abc123"
    assigneeIds: ["user_456"]
  }) {
    success
    operationId
  }
}

入力パラメータ

SetTodoAssigneesInput

パラメータ タイプ 必須 説明
todoId String! ✅ はい ユーザーを割り当てるレコードのID
assigneeIds [String!]! ✅ はい アサインするユーザーIDの配列(すべての現在のアサイン先を置き換えます)

AddTodoAssigneesInput

パラメータ タイプ 必須 説明
todoId String! ✅ はい ユーザーを割り当てるレコードのID
assigneeIds [String!]! ✅ はい アサイン先として追加するユーザーIDの配列

RemoveTodoAssigneesInput

パラメータ タイプ 必須 説明
todoId String! ✅ はい アサイン先を削除するレコードのID
assigneeIds [String!]! ✅ はい アサイン先から削除するユーザーIDの配列

レスポンスフィールド

フィールド タイプ 説明
success Boolean! 操作が成功裏に完了したかどうか
operationId String この操作を追跡するための一意の識別子

必要な権限

アサイン先の設定/削除

役割 アサイン/削除可能
OWNER ✅ はい
ADMIN ✅ はい
MEMBER ✅ はい
CLIENT ✅ はい
VIEW_ONLY ❌ いいえ
COMMENT_ONLY ❌ いいえ

アサイン先の追加

役割 アサイン先を追加できる
OWNER ✅ はい
ADMIN ✅ はい
MEMBER ✅ はい
CLIENT ✅ はい
VIEW_ONLY ✅ はい
COMMENT_ONLY ✅ はい

エラー応答

レコードが見つかりません

{
  "errors": [{
    "message": "Todo was not found.",
    "extensions": {
      "code": "TODO_NOT_FOUND"
    }
  }]
}

権限が不足しています

{
  "errors": [{
    "message": "You don't have permission to modify this record",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

無効な入力

{
  "errors": [{
    "message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
    "extensions": {
      "code": "GRAPHQL_VALIDATION_FAILED"
    }
  }]
}

操作の比較

機能 アサイン先の設定 アサイン先の追加 アサイン先の削除
Logic Smart replacement Incremental addition Selective removal
Activity Tracking ✅ はい ❌ いいえ ❌ いいえ
通知 ✅ はい ❌ いいえ ❌ いいえ
Webhooks ✅ はい ❌ いいえ ❌ いいえ
Automations ✅ はい ❌ いいえ ❌ いいえ
Permission Level Stricter More permissive Stricter

ビジネスロジック

スマートアサインメント(setTodoAssignees)

setTodoAssigneesを使用すると、システムは:

  1. リストの比較:現在のアサイン先と新しいアサイン先リストを分析します
  2. 変更の計算:削除、保持、追加するユーザーを決定します
  3. ユーザーの削除:新しいリストに含まれないユーザーのアサインを解除します
  4. ユーザーの追加:以前にアサインされていなかった新しいリストのユーザーをアサインします
  5. アクティビティの追跡:各変更のためのアクティビティログエントリを作成します
  6. 通知の送信:新しくアサインされたユーザーに通知します
  7. Webhookのトリガー:アサイン先の追加/削除Webhookを発火します
  8. チャートの更新:分析チャートを更新のためにマークします
  9. リアルタイムの更新:接続されたクライアントに更新を公開します

シンプルな操作(追加/削除)

addTodoAssigneesおよびremoveTodoAssignees操作は、setTodoAssigneesの包括的な追跡および通知機能なしで基本的な機能を提供します。

重要な注意事項

  • プロジェクトメンバーシップ:アサイン先は、レコードを含むプロジェクトのメンバーである必要があります
  • アサイン制限なし:レコードごとのアサイン先の最大数はありません
  • 自己アサイン:ユーザーは適切な権限があれば自分自身をアサインできます
  • 空の配列:空のassigneeIds配列をsetTodoAssigneesに提供すると、すべてのアサイン先が削除されます
  • 重複防止:システムは自動的に重複アサインを防ぎます
  • データベースの効率性:スケーラブルな多対多関係のために結合テーブル(TodoUser)を使用します
  • リアルタイムの更新:すべての接続されたクライアントは、アサインが変更されると即座に更新を受け取ります

利用可能なアサイン先を取得する

プロジェクト内のレコードに割り当て可能なユーザーのリストを取得するには:

query GetAssignees {
  assignees(projectId: "project_abc123") {
    id
    name
    email
    avatar
  }
}

このクエリは、レコードに割り当て可能なすべてのプロジェクトメンバーを返します。

関連操作

AIアシスタント

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

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

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

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