monday.com では、当社の統合を介して Webhook を送信、または API を介して作成することができます。ボード内で選択したイベントが発生するたびに Webhook を送信できます。詳しくは続きをお読みください。
Webhook とは?
Webhook(Web コールバックまたは HTTP プッシュ API とも呼ばれます)は、アプリが他のアプリにリアルタイムの情報を提供する方法です。Webhook は、変更が加えられるとすぐに他のアプリケーションにデータを送信します。つまり、リアルタイムでデータを取得するために頻繁にデータをポーリングする必要のある一般的な API とは異なり、即座にデータを取得することができるのです。Webhook は、プロバイダーとコンシューマー双方にとって、より効率的な手段であると言えるでしょう。
monday.com で新しい Webhook を作成しようとすると、当社は、エンドポイントを制御していることを確認するために、提供された URL に JSON チャレンジを送信します。この後の記事で、アプリの応答についてご説明します。
新しい Webhook の作成方法
ステップ1
ボード上で「統合」アイコンをクリックし、統合センターで「Webhooks」アプリを探します。
統合センターを開いたら、以下のように Webhooks を検索し、クリックします。
ステップ2
インスタントペイロードを取得するアクションを選択します。
ステップ3
必要なアクションを選択したら、URL を特定します。これは、JSON チャレンジを送り返すことができる URL でなければならなりません。
以上です。例えばボードに新しいアイテムが追加されるなど、変更が加えられるとすぐに、エンドポイントはその変更に関するペイロードを取得します。以下にいくつかのペイロードを紹介しています。
ステップ4
Webhook 統合がワークフローでどのように使用されているかを詳しく説明します。これにより、この統合を使用するユーザーは、この統合の目的と、ワークフローへの差し込み方法をよりよく理解できるようになります。
webhook URL の確認方法
指定した URL は、アプリによって制御されます。当社のプラットフォームは、エンドポイントに JSON チャレンジを送信することによってこれを確認し、アプリは同じチャレンジで応答する必要があります。
「チャレンジ」 フィールドを含む JSON POST 本文を送信します。これはランダムに生成されるトークンで、リクエストに応答 JSON 本文の「チャレンジ」フィールドとして返します。
「チャレンジ」はこのようになっています:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
応答本文は同一の JSON POST 本文でなければなりません:
{
challenge: “3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P”
}
以下は、Webhook の出力を表示し、チャレンジに正しく応答する Webhook リスナーの簡単な例です:
app.post("/", function(req, res) { console.log(JSON.stringify(req.body, 0, 2)); res.status(200).send(req.body);})
イベントデータの表示方法は?
エンドポイントに送信されるすべての Webhook は、その本文にイベントフィールドを持ちます。このフィールドにはイベントデータとペイロードが含まれます。
{
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"pulseId": 1772099344,
"pulseName": "Create_item webhook",
"groupId": "topics",
"groupName": "Group Title",
"groupColor": "#579bfc",
"isTopGroup": true,
"columnValues": {},
"app": "monday",
"type": "create_pulse",
"triggerTime": "2021-10-11T09:07:28.210Z",
"subscriptionId": 73759690,
"triggerUuid": "b5ed2e17c530f43668de130142445cba"
}
カラム値の変更(特定の、または任意のカラム値の変更)- サンプルペイロード
これには、前の値、カラム ID、 現在の値が含まれます。
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"groupId": "topics",
"pulseId": 1771812728,
"pulseName": "Crate_item webhook",
"columnId": "date4",
"columnType": "date",
"columnTitle": "Date",
"value": {
"date": "2021-10-11",
"icon": null,
"time": null
},
"previousValue": null,
"changedAt": 1633943701.9457765,
"isTopGroup": true,
"app": "monday",
"type": "update_column_value",
"triggerTime": "2021-10-11T09:15:03.429Z",
"subscriptionId": 73760484,
"triggerUuid": "645fc8d8709d35718f1ae00ceded91e9"
}
Create_update - サンプルペイロード:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"pulseId": 1771812728,
"body": "<p>create_update webhook</p>",
"textBody": "create_update webhook",
"updateId": 1190616585,
"replyId": null,
"app": "monday",
"type": "create_update",
"triggerTime": "2021-10-11T09:18:57.368Z",
"subscriptionId": 73760983,
"triggerUuid": "6119292e27abcc571f90ea4177e94973"
}
ステータスの変更 - サンプルペイロード:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1771812698,
"groupId": "topics",
"pulseId": 1772099344,
"pulseName": "Create_item webhook",
"columnId": "status",
"columnType": "color",
"columnTitle": "Status",
"value": {
"label": {
"index": 3,
"text": "Status change wbhook",
"style": {
"color": "#0086c0",
"border": "#3DB0DF",
"var_name": "blue-links"
}
},
"post_id": null
},
"previousValue": null,
"changedAt": 1633944017.473193,
"isTopGroup": true,
"app": "monday",
"type": "update_column_value",
"triggerTime": "2021-10-11T09:20:18.022Z",
"subscriptionId": 73761176,
"triggerUuid": "504b2eb76c80f672a18f892c0f700e41"
}
サブアイテム webhooks はもほとんど同じですが、ペイロードに parent_item_id も含まれています。こちらがその例です:
create_item - サンプルペイロード:
"event": {
"userId": 9603417,
"originalTriggerUuid": null,
"boardId": 1772135370,
"pulseId": 1772139123,
"pulseName": "sub-item",
"groupId": "topics",
"groupName": "Subitems",
"groupColor": "#579bfc",
"isTopGroup": true,
"columnValues": {},
"app": "monday",
"type": "create_pulse",
"triggerTime": "2021-10-11T09:24:51.835Z",
"subscriptionId": 73761697,
"triggerUuid": "5c28578c66653a87b00a80aa4f7a6ce3",
"parentItemId": "1771812716",
"parentItemBoardId": "1771812698"
}
さらなるサポート
カスタム統合の作成に関するサポートを必要とされる場合は、monday.com 認定パートナーと提携した有料サポートもご利用いただけます。ご興味をもたれましたら、 こちらのフォーム に必要事項をご入力ください。追ってご連絡させていただきます。
ご不明な点がございましたら、こちらから担当チームにお問い合わせください。24時間年中無休でお答え致します。
コメント