NotionのデータベースオートメーションからHubSpotにWebhookを送信してみた
Notionのデータベースオートメーションに「Webhookを送信する」機能が追加されたので、NotionからHubSpotへWebhookを送信して会社オブジェクトのプロパティを更新する処理を作ってみました。
処理の概要
- Notionのデータベースオートメーションを使い、プロパティの更新をトリガーとしてWebhookを送信する。
- Webhookの受信をトリガーとしてHubSpotのワークフローを実行し、会社オブジェクトのプロパティを更新する。
準備
HubSpotの会社オブジェクトに処理で更新されるプロパティを用意します。
ラベルはステータス(Notion)
、内部名はnotion_status
とします。
フィールドタイプは単行テキスト
とします。
(トリガー イベント プロパティーのデータ変数ではドロップダウン選択
のデータ型を設定できず、ワークフローから更新できないため)
HubSpotでWebhookイベントを作成する
HubSpotで会社ベースのワークフローを作成します。
登録トリガーに「Webhookが受信されたとき」を選択します。
Webhookイベント名に「Notion Database automation」と入力し、「次へ >」を選択します。
Webhook URLが発行されるのでコピーを選択します。
テストイベントの待機状態になるので、NotionでWebhookを送信する設定を行います。
Notionでデータベースオートメーションを作成する
NotionでHubSpotの会社オブジェクトと連携させるためのデータベースを作成します。
2つのプロパティを追加します。
- 会社レコードID
- ステータス
会社レコードID
は種類をテキストとします。HubSpotの会社オブジェクトのレコードIDを入力するプロパティです。
ステータス
は種類をセレクトとして、オプションに「未着手」、「進行中」、「完了」の3つの値を用意します。
オートメーションを追加します。
「ステータスを編集」を条件としてトリガーを発火させます。
Webhookを送信する新規アクションを追加します。
URLに先ほどコピーしたWebhook URLを入力します。
コンテンツのステータス
と会社レコードID
にチェックをつけて「作成」を選択します。
チェックをつけたコンテンツがWebhookイベントとして送信されます。
テストイベントを送信してHubSpotのWebhookの設定を行う
テストイベントのWebhookを送信するためにNotionデータベースにページを追加して適当な会社レコードIDを入力します。
ステータスを「完了」に変更してWebhookを送信するオートメーションのトリガーを発火させます。
送信されたWebhookをHubSpot側で受信するとWebhook設定画面で受信したテストイベントの内容を確認できます。
data を展開して properties にステータス
と会社レコードID
が含まれていることを確認し、「次へ >」を選択します。
Webhookのプロパティーのデータのマッピングを行います。
ステータス
と会社レコードID
をマッピングします。
- 「ステータス」のサードパーティ プロパティー ラベルは
name
、HubSpotプロパティーラベルは['data']['properties']['ステータス']['select']['name']
、データタイプはテキスト
とします。 - 「会社レコードID」のサードパーティ プロパティー ラベルは
content
、HubSpotプロパティーラベルは['data']['properties']['会社レコードID']['rich_text']['0']['text']['content']
、データタイプは数値
とします。
「次へ >」を選択します。
登録プロパティーを合わせます。
サードパーティ プロパティー ラベルは会社レコードID
である['data']['properties']['会社レコードID']['rich_text']['0']['text']['content']
を選択します。
HubSpotプロパティーラベルはレコードID
を選択します。
これで会社レコードID
に持つ会社レコードに対してワークフローが実行されるようになります。
Webhookイベントの作成が完了したので、「トリガーのセットアップを続行」を選択します。
HubSpotのワークフローを編集する
登録トリガーに会社に基づいたWebhookイベントとして、作成したWebhookイベントが表示されているのでイベント名を選択します。
再登録の許可をONにして保存します。
アクションを追加し、CRMの「レコードを編集」を選択します。
編集するプロパティーにステータス(Notion)
を選択します。
「値を選択」を選択し、データ変数からトリガー イベント プロパティーの「Notion Database automation」を選択します。
テキストプロパティーの['data']['properties']['ステータス']['select']['name']
を選択します。
アクションを保存します。
「確認と公開」を選択し、ワークフローをONにします。
動作確認
HubSpotに動作確認用の会社レコードを作成し、そのレコードIDを控えます。
Notionのデータベースにページを追加し、会社レコードID
に控えたレコードIDを入力します。
ステータス
を「未着手」に変更します。
HubSpotの会社レコードのステータス(Notion)
の値が「未着手」に更新されました。
同様にNotionデータベースのページのステータスを「完了」に変更します。
HubSpotの会社レコードのステータス(Notion)
の値が「完了」に更新されました。
まとめ
NotionのデータベースオートメーションにWebhook送信が追加されたことでシステム連携の幅が広がったと感じています。
今回はHubSpotと連携しましたが、他のシステムとの連携でも便利に使えるのではないかと思います。