Chatwork と Slack を連携して投稿を自動で通知する方法|Webhook の手順

社外とのやり取りは Chatwork、社内は Slack という会社では、Chatwork の投稿を見落とさないよう両方を開いておくことになりがちです。この記事では、Chatwork の投稿を Slack のチャンネルへ流す手順を説明します。

Chatwork 側の仕様は、2026 年 11 月 4 日時点の公式資料で確認したものです。

結論

  • 使うのは Webhook です。Samurai App の「サービス連携」には Chatwork の出来事がないため、Chatwork の Webhook を「外部トリガー」で受け、「通知先へ送る」ステップで Slack へ送ります
  • 流せるのは本文と ID です。送信者の名前もルームの名前も Webhook には入っていません
  • 届かなかった投稿は戻りません。Chatwork は失敗した通知を再送しないため、取りこぼしが許されない用途には向きません

できること・できないこと

Chatwork の Webhook は次の仕様で動きます。

  • 作れる数:1 アカウントにつき 5 つまでです
  • 再送:ありません。受け手は 10 秒以内に、ステータスコード 200 で応答する必要があります
  • 自動の無効化:受け手のエラーが多いと「無効」になり、手で有効に戻すまで止まります。基準の数字は公開されていません

イベントの種類で届く項目が変わる点には注意が必要です。

イベント 共通の項目 そのイベントだけの項目
メッセージ作成(message_created) body room_id message_id send_time update_time account_id
自分へのメンション(mention_to_me) 同上 from_account_id to_account_id

Samurai App の本文で、届いていない項目を参照するとステップが失敗します。空欄にはなりません。両方のイベントを同じワークフローで受けるなら、本文には共通の項目だけを入れてください。

本文は加工されずに届きます。[To:12345] のような宛先や [info] [qt] といった記法は、そのまま Slack に表示されます。送信者も account_id の数字だけです。名前は Chatwork API のルームのメンバー一覧にありますが、この記事の手順では取得しません。

Samurai App の外部トリガーの起動は、既定で 1 分に 10 回までです。超えると 429 を返すため、「メッセージ作成」で発言の多いルームを受けると、その間の投稿は失われます。エラーが続けば、Chatwork 側で Webhook が無効になることもあります。まずは「自分へのメンション」から始めると、数を抑えられます。

用意するもの

  • Chatwork の API を使える状態のアカウント(個人プランを除き、組織の管理者への「APIの利用申請」が必要です)
  • Slack の Incoming Webhook の URL(通知先のチャンネルに 1 つ)
  • Samurai App のマネージャー以上の権限(外部トリガーを付けるのに必要です)

手順

完成すると、次のようなワークフローになります。

Chatwork の投稿を Slack へ送るワークフローの編集画面

1. Slack で Incoming Webhook の URL を作る

Slack の App 設定で「Create an app」からアプリを作り、「Incoming Webhooks」をオンにします。「Add New Webhook to Workspace」でチャンネルを選んで承認すると、https://hooks.slack.com/services/... の URL が出ます。投稿先のチャンネルはこの URL に固定されます。

2. Samurai App に通知先を登録する

「設定」の「通知」にある通知先の登録画面

「設定」の「通知」で、名前と手順 1 の URL を登録します。「テスト送信」を押して、Slack にテストの 1 通が届くことを確認します。登録した URL は後から画面に表示されないので、変えるときは「編集」で入れ直します。

3. ワークフローを作る

「ワークフロー」の「作成」から「新規作成」を選びます。

  1. ステップを選んでいない状態の「設定」にある「ワークフローの入力」で、「入力の項目を追加」を押します。名前は event、種類は「項目の組」にします
  2. 「つなぐ」から「通知先へ送る」を置き、手順 2 の通知先を選びます
  3. 「本文」に次のように書きます
Chatwork(ルーム {{input.event.webhook_event.room_id}})
{{input.event.webhook_event.body}}

チャットで作る場合は、「作成」の「チャットで作る」から次のように頼めます。トリガーはチャットでは付けられないので、手順 5 は画面で行います。

Chatwork の Webhook を受けて、input.event.webhook_event.body を Slack の通知先へ送るワークフローを作って

4. 公開する

「バージョン」タブの「バージョン N を公開」を押します。未公開のままだと、起動は 422 で断られます。

5. 外部トリガーを付ける

ワークフローの「トリガー」タブにある外部トリガーの追加画面

「トリガー」タブの「外部トリガーを追加」を開き、「URL の ?k= でもシークレットを受ける」をオンにして作成します。作成の直後に 1 度だけシークレットが出るので、控えてください。

「署名を検証する」はオフのままにします。 Samurai App の検証は 16 進数の署名を照合する方式で、Chatwork の署名(トークンを Base64 で復号した鍵で計算し、Base64 で出した値)は照合できません。オンにすると、Chatwork からの呼び出しがすべて 404 になります。この構成では ?k= のシークレットが守りになります。

6. Chatwork に Webhook を登録する

Chatwork の「API管理画面」から Webhook を作成します。Webhook URL には、外部トリガーの URL の末尾に ?k=<シークレット>&wait=result を付けたものを入れます。

&wait=result は省かないでください。 外部トリガーは既定で 202(受け付けた)を返しますが、Chatwork の公式資料は常に 200 を返すよう求めています。wait=result を付けると、実行の終わりを待って 200 を返します。そのぶん応答は実行の長さだけ遅れるので、10 秒に収まるよう、このワークフローには AI のステップを入れず「通知先へ送る」だけにします。

URL は https:// で始まり、RFC 3986 に沿ってエンコードされている必要があります。イベントは手順 3 の本文に合うものを選びます。

7. 投稿して確認する

Chatwork で投稿し、Slack に届くことを確認します。実行の記録はチャットには残らず、ワークフローの「実行」タブの「最近の実行」に「外部から起動」として残ります。ステップごとの入力と出力が見られるので、届いた JSON もここで確認できます。

動かないとき

  • 「最近の実行」に何も出ない:まず Chatwork の Webhook 編集画面で「無効」になっていないか見て、有効に戻します。次に URL の ?k= を確認します。&wait=result が抜けていると、Chatwork 側でエラーに数えられて「無効」になることがあります。シークレットが違うか、「URL の ?k= でもシークレットを受ける」がオフだと 404 です
  • 実行はあるがステップが失敗している:本文の項目が届いていない可能性があります。account_id は「自分へのメンション」には入りません。「実行」タブの入力で、届いた項目名を確認してください
  • 「通知先」の行に「宛先の URL が見つかりません。URL を確かめてください(404)」と出る:Slack の Webhook URL が違うか、消されています。手順 1 の URL を「編集」で入れ直します
  • 一部の投稿だけ来ない:起動の上限(1 分に 10 回)か、本文の上限(64 KiB)を超えた可能性があります。再送はないので、その投稿は Chatwork 側で確認します

よくある質問

自分の投稿も Slack に流れますか

公式資料には、自分の投稿が通知に含まれるかどうかの記載がありません。「メッセージ作成」で受けるときは、自分で投稿して「最近の実行」に出るかを確認してください。

シークレットを URL に載せても問題ありませんか

URL に載せたシークレットは、中継や発火元のアクセスログに残ることがあります。Chatwork の画面では Webhook にヘッダーを足せる記載がないため、この形になります。使うのをやめるときは、シークレットを再発行してください。

逆向きの Slack から Chatwork にも流せますか

流せます。ただし仕組みは別で、Slack の出来事を受けて Chatwork の API に投稿します。Slack から Chatwork へ投稿する方法で説明しています。両方を同時に動かすと投稿が往復するので、絞り込みが必要です。

関連する使い方

出典

関連する機能AIでワークフロー自動化 —— 定型業務を決めた順にSamurai App のワークフローは、書いたとおりの順に必ず動くステップの並びです。AI の判断、承認待ち、外部サービスの操作を 1 本にまとめ、定期実行や外部からの起動で定型業務を自動化します。

ほかの自動化の例

Slack の連携と自動化の方法をすべて見る

Chatwork の連携と自動化の方法をすべて見る

活用術の記事一覧へ

日々の仕事が集まり、つながり、会社の力になる。

資料請求Samurai App を開く

デモを見る資料請求