Blueは、他のシステムにデータを送信するためのアウトゴーイングウェブフックをサポートしています。
ウェブフックは、何かが発生したときにあるアプリケーションから別のアプリケーションに送信される自動メッセージです。たとえば、Blueで新しいレコードが作成されると、ウェブフックを設定してそのレコードに関するデータを別のシステムに送信できます。
Blueのウェブフックは、イベントが発生してからミリ秒単位で即座にトリガーされます。このリアルタイムの特性により、Blueを他のビジネスシステムと統合する際に非常に貴重です。
ウェブフック
- システム間でのリアルタイムデータ同期
- Blueイベントに対する応答とアクションの実行能力
- 変更を繰り返しポーリングする必要なし;即座にプッシュ
- カスタム統合とワークフローの作成
前例のない制御
Blueのウェブフックは、以下の点で詳細な制御を提供します:
- どのイベントがウェブフックをトリガーするか、どのプロジェクトからかを正確に指定
- レコードの範囲を絞り込むためのフィルター
- セキュリティを強化するための署名検証
ウェブフックの作成
Blueでは、プロジェクト管理者が個人設定の下でウェブフックを作成できます。指定する内容:
- ウェブフック名
- データを送信するペイロードURL
- 署名用のオプションの秘密鍵
トリガー
ウェブフックは、以下を含むさまざまなBlueイベントによってトリガーされます:
- レコードの作成/更新/削除
- コメントの追加/編集
- 担当者の変更
- チェックリストのステータス変更
- カスタムフィールドの値の変更
- その他多数
ウェブフックペイロード
トリガーされると、Blueはイベントのすべての詳細を含むJSONペイロードを指定されたURLに送信します。
以下はペイロードの例です:
{
"event": "RECORD_CREATED",
"record": {
"id": "1234",
"title": "New record"
...
},
"company": {
"id": "5678"
},
"project": {
"id": "91011"
},
"user": {
"id": "1213"
}
}
署名
ペイロードが本当にBlueからのものであることを検証するために、オプションの署名を確認できます。OAuthと同様に、署名はペイロードの内容を選択した秘密鍵でハッシュ化することによって作成されます。
Node.jsでのサンプル検証
const crypto = require('crypto');
const key = 'secret';
const body = {...webhookPayload}
const hash = crypto.createHmac('sha256', key).update(body);
const signature = hash.digest('hex');
追加の統合
カスタムウェブフックに加えて、BlueはZapierやPabbly Connectなどのツールとの統合も提供し、Blueデータを数百の人気アプリと簡単に接続できます。
ウェブフックレスポンスの例
{
"event": "TODO_CREATED",
"webhook": {
"id": "clb4qaopy0000vt24mlp28v03",
"uid": "edb5b5d51dc9461a952160dbe72153b4",
"name": "Testing webhook",
"url": "https://httpdump.app/dumps/7cc66eda-8e83-4039-ba49-4c36db14d508",
"secret": "",
"status": "HEALTHY",
"enabled": true,
"metadata": {
"events": [
"TODO_CREATED",
"TODO_DELETED",
"TODO_MOVED",
"TODO_NAME_CHANGED",
"TODO_CHECKLIST_CREATED",
"TODO_CHECKLIST_NAME_CHANGED",
"TODO_CHECKLIST_DELETED",
"TODO_CHECKLIST_ITEM_CREATED",
"TODO_LIST_CREATED",
"TODO_LIST_DELETED",
"TODO_LIST_NAME_CHANGED",
"COMMENT_CREATED",
"COMMENT_DELETED",
"COMMENT_UPDATED"
],
"projectIds": [
"clakt90vu000bvt64hhffqleq",
"claulnu1y0000vtrcjurjgds4",
"clb4gay0y000qvtzs8smaays8"
]
},
"createdById": "claksl2ye0000vtas0h0ln71e",
"createdAt": "2022-12-01T07:01:25.014Z",
"updatedAt": "2022-12-01T11:23:00.661Z"
},
"currentValue": {
"id": "clb4zna6x0000vt1swuwso25f",
"uid": "11021cb836f34732b31e5ebd5dd5eb27",
"title": "GGGG",
"html": null,
"text": null,
"position": "32767.5",
"archived": false,
"done": false,
"startedAt": null,
"duedAt": null,
"timezone": null,
"createdAt": "2022-12-01T11:23:09.000Z",
"updatedAt": "2022-12-01T11:23:09.241Z",
"createdById": "claksl2ye0000vtas0h0ln71e",
"todoListId": "clakt9v5t000kvt64f563l90l",
"todoCustomFields": [],
"todoUsers": [],
"todoTags": [],
"todoList": {
"id": "clakt9v5t000kvt64f563l90l",
"uid": "df0e931e6e8f4fc2905ece9da167d2d3",
"createdAt": "2022-11-17T08:29:22.000Z",
"updatedAt": "2022-11-17T08:29:22.050Z",
"title": "ETEST",
"position": 131070,
"createdById": "claksl2ye0000vtas0h0ln71e",
"projectId": "clakt90vu000bvt64hhffqleq",
"project": {
"id": "clakt90vu000bvt64hhffqleq",
"uid": "d7db469a8908496f8e5f5e68030fe4c8",
"slug": "teest",
"name": "TEEST",
"description": "",
"archived": false,
"createdAt": "2022-11-17T08:28:43.000Z",
"updatedAt": "2022-11-17T08:28:42.811Z",
"isTemplate": false,
"isOfficialTemplate": false,
"category": "GENERAL",
"companyId": "clakt8jud0002vt64205yyj10",
"imageId": null,
"hideEmailFromRoles": null,
"company": {
"id": "clakt8jud0002vt64205yyj10",
"uid": "400eb3f8238c486caf40957618be9662",
"slug": "rogue",
"name": "Rogue",
"description": null,
"createdAt": "2022-11-17T08:28:21.000Z",
"updatedAt": "2022-11-17T08:28:20.726Z",
"freeTrialExpiredAt": "2022-12-01T08:28:15.000Z",
"freeTrialStartedAt": "2022-11-17T08:28:15.000Z",
"subscribedAt": null,
"imageId": null,
"subscriptionPlanId": "clakt8jue0003vt64e40q2prj",
"freeTrialExtendedById": null,
"freeTrialExtendedAt": null
}
}
}
}
}
質問がある場合は、[support@blue.cc](support@blue.cc)までご連絡ください。私たちがサポートいたします。また、統合サポートのためのプロフェッショナルサービスも提供しています。