ご質問がおありですか?

Webhook の統合

 

Screen_Shot_2020-03-08_at_17.47.27.png

monday.com では、当社の統合を介して Webhook を送信、または API を介して作成することができます。ボード内で選択したイベントが発生するたびに Webhook を送信できます。詳しくは続きをお読みください。

 

Webhook とは?

Webhook(Web コールバックまたは HTTP プッシュ API とも呼ばれます)は、アプリが他のアプリにリアルタイムの情報を提供する方法です。Webhook は、変更が加えられるとすぐに他のアプリケーションにデータを送信します。つまり、リアルタイムでデータを取得するために頻繁にデータをポーリングする必要のある一般的な API とは異なり、即座にデータを取得することができるのです。Webhook は、プロバイダーとコンシューマー双方にとって、より効率的な手段であると言えるでしょう。

 

monday.com で新しい Webhook を作成しようとすると、当社は、エンドポイントを制御していることを確認するために、提供された URL に JSON チャレンジを送信します。この後の記事で、アプリの応答についてご説明します。

 

新しい Webhook の作成方法 

ステップ1

ボード上で「統合」アイコンをクリックし、統合センターで「Webhooks」アプリを探します。

Group_93.png

統合センターを開いたら、以下のように Webhooks を検索し、クリックします。 

Group_94.png

 

ステップ2

インスタントペイロードを取得するアクションを選択します。

image_5__5_.png

 

ステップ3

必要なアクションを選択したら、URL を特定します。これは、JSON チャレンジを送り返すことができる URL でなければならなりません。

image_5__6_.png

以上です。例えばボードに新しいアイテムが追加されるなど、変更が加えられるとすぐに、エンドポイントはその変更に関するペイロードを取得します。以下にいくつかのペイロードを紹介しています。

 

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 は、その本文にイベントフィールドを持ちます。このフィールドにはイベントデータとペイロードが含まれます。

 
以下は表示方法の例です。
create_item - sample payload:
{
 "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時間年中無休でお答え致します。