商談が受注に進んだことを営業チーム全体にすぐ伝えたい。HubSpot を開かない人にも Slack で伝えたい。この記事は、取引のステージ変更を Slack へ送る方法を、公式の機能から順に説明します。
HubSpot の有料プランでワークフローを使っているなら、多くの場合は公式の「Send a Slack notification」で足ります。 取引のプロパティを差し込み、チャンネルや取引の担当者へ送れます。Samurai App を使う理由があるのは、通知の前に AI の要約や分類を挟みたい場面です。
結論
- 通知だけなら公式:HubSpot のワークフローに Slack の通知アクションを置きます。Professional 以上のプランが必要です
- AI の要約を添えるなら:HubSpot のワークフローの「Send a webhook」から Samurai App の外部トリガーを呼び、「AI で生成」でまとめて、「通知先へ送る」で Slack へ送ります。Data Hub の Professional 以上が必要です
- サービス連携は開発者の設定が要ります:理由は次の節に書きます。この記事の手順は外部トリガーの道で説明します
できること・できないこと
3 つの道を比べます。
| 比べる点 | 公式の Slack 通知 | Send a webhook + 外部トリガー | サービス連携 |
|---|---|---|---|
| HubSpot 側の条件 | ワークフローを使える Professional 以上 | Data Hub の Professional 以上 | 開発者アプリの ID と開発者 API キー |
| 届く内容 | 選んだプロパティ | 選んだプロパティ、または全プロパティ | 取引の ID など |
| AI の要約 | 入らない | 入れられる | ID から読み直せば入れられる |
| ボタンでの操作 | メモの作成や取引の更新など | できない | できない |
サービス連携の出来事は Deal Stage UpdatedTrigger(HUBSPOT_DEAL_STAGE_UPDATED_TRIGGER)と Contact Created Trigger(HUBSPOT_CONTACT_CREATED_TRIGGER)の 2 つです。どちらも「絞り込み」の app_id と developer_api_key が必須で、HubSpot の開発者向けのアプリを持っている必要があります。届くのは objectId、subscriptionType、subscription_id だけで、取引名は入っていません。営業や業務の担当者が用意できるものではないので、この記事では手順を扱いません。
できないことは次のとおりです。
- Slack から取引を操作:外部トリガーの道では、通知を送るだけです。ボタンで取引を更新したいなら公式のアクションを使います
- 一度に大量の更新を全部送る:外部トリガーの起動は既定で 1 分 10 回までです。超えた呼び出しは 429 で断られます。次の手順 6 で HubSpot 側の実行回数を抑えます
- 全プロパティをそのまま受ける:外部トリガーの本文の上限は 64 KiB です。プロパティの多い取引では超えることがあるので、必要なものだけを送ります
用意するもの
- Data Hub の Professional 以上の HubSpot と、ワークフローの編集権限
- Slack の Incoming Webhook の URL
- Samurai App のマネージャー以上の権限。外部トリガーをワークフローに付けられるのはマネージャー以上です
手順
完成すると、次のようなワークフローになります。

1. 通知先を登録する

Slack で Incoming Webhook の URL を作ります。Samurai App の「設定」の「通知」で「名前」と「宛先 URL」を入れて「通知先を追加」を押し、「テスト送信」で確認します。
2. ワークフローを作る
「ワークフロー」の「新規作成」で下書きを作り、ステップを選んでいない状態の「設定」で「入力の項目を追加」を押します。名前を event、種類を「項目の組」にします。HubSpot が送る本文は、この event に入ります。
「AI で生成」の「指示」には、次のように書きます。
次の HubSpot の取引の情報を、営業チーム向けに 2 文の日本語でまとめてください。
{{input.event}}
「通知先へ送る」の「本文」には、次のように書きます。/ を打つと出る一覧から、「AI で生成」のステップの text を選びます。
取引「{{input.event.dealname}}」のステージが変わりました
{{AI の text を選ぶ}}
dealname は、4 で HubSpot の本文に付ける名前と揃えます。届いた内容にその項目が無いと、そのステップは失敗します。空のまま送られるわけではありません。空になりうる金額のような項目は、「本文」に直接差し込まず、AI に渡す方が安全です。
3. 公開して外部トリガーを発行する

「保存」のあと、「バージョン」のタブで「バージョン N を公開」を押します。未公開のまま呼ぶと、「このワークフローはまだ公開されていません。公開してから実行してください」で断られます。
「トリガー」のタブで「外部トリガーを追加」を押して登録します。URL とシークレットが出ます。シークレットは作った直後に 1 度だけ表示されるので、ここで控えます。
4. HubSpot のワークフローから呼ぶ
HubSpot で取引ベースのワークフローを作り、取引ステージのプロパティが変わったことを登録の条件にします。受注のステージだけにしたいときは、ここで値を指定します。
アクションに「Send a webhook」を追加し、次のように設定します。
- メソッド:POST
- Webhook の URL:3 で発行した URL
- 認証の種類:API キー。キーの名前は
Authorization、場所は Request Header、値はBearer <シークレット> - 本文:「Customize request body」を選び、キーを
dealnameにして取引名のプロパティを入れます。金額や担当者も同じように足します
5. 試す
HubSpot のワークフローの画面からテスト実行するか、テスト用の取引のステージを変えます。Samurai App の「実行」のタブの「最近の実行」に行が増え、各ステップの入力と出力が読めます。HubSpot の本文がどんな形で event に入ったかを、ここで確認して「本文」の表記を直します。
6. 実行回数を抑える
CSV の取り込みや一括編集で多くの取引が動くと、1 分 10 回を超えます。HubSpot の「Send a webhook」には、一定時間あたりの実行回数の上限の設定があります(既定はオフ)。1 分あたり 10 回以内にしておくと安全です。
HubSpot は 429 の応答を受けると、再送します。失敗した Webhook の再送は最大 3 日間です。429 以外の 4XX の応答では再送しないので、シークレットの間違いは再送では直りません。
動かないとき
- HubSpot のテストで 404 が返る:シークレットが届いていません。「Authorization」の値が
Bearerで始まっているかを確認します - 422 が返る:ワークフローが公開されていません。Samurai App の「バージョン」のタブで公開します
- 「通知先へ送る」のステップが失敗する:差し込んだ項目が届いた内容にありません。「最近の実行」の入力で確認します
- Slack に届いたり届かなかったりする:1 分 10 回を超えて 429 が返り、HubSpot の再送を待っている可能性があります。HubSpot のワークフローのログを確認してください
よくある質問
Starter プランでも通知できますか
公式の Slack 通知のワークフローも「Send a webhook」も Professional 以上が前提です。HubSpot の Slack アプリのユーザー通知で足りるかを先に確認してください。
新しいコンタクトの通知もできますか
同じ手順で、コンタクトベースのワークフローから呼べます。本文のキーをコンタクトのプロパティに替えて、「通知先へ送る」の「本文」も揃えます。
シークレットをヘッダーに入れられないときは
外部トリガーの登録で「URL の ?k= でもシークレットを受ける」をオンにすると、URL に ?k=<シークレット> を付けて呼べます。既定はオフです。URL がログに残る分、ヘッダーで送る方を先に試してください。
関連する使い方
出典
- Use Slack workflow actions(HubSpot ナレッジベース)
- Manage notifications in Slack(HubSpot ナレッジベース)
- Use webhooks with HubSpot workflows(HubSpot ナレッジベース)
- Sending messages using incoming webhooks(Slack)