社内の連絡は Slack で進み、お客様や協力会社とは Chatwork で話している。この場合、Slack で決まったことを Chatwork に書き直す手間が発生します。この記事では、Slack のチャンネルの発言を Chatwork のルームへ自動で投稿する手順を説明します。
Slack と Chatwork の仕様は、2026 年 11 月 4 日時点の公式資料と接続先の宣言で確認したものです。
結論
- 使うのはサービス連携とコネクタです。Slack の「Channel Message Received」でワークフローを動かし、「外部サービス実行」ステップで Chatwork に投稿します
- 投稿は人の確認なしで実行されます。公開したことが承認の扱いになり、実行は承認の記録に残ります。管理者がこの操作を「毎回確認」にしていると、断られて止まります
- Chatwork には、接続した人の名前で投稿されます。Chatwork の API トークンは人のアカウントに紐づくためです
できること・できないこと
届く発言の範囲:「Channel Message Received」が拾うのは、公開チャンネル、プライベートチャンネル、複数人の DM です。1 対 1 の DM は「Direct Message Received」という別の出来事です。
届く項目:必ず入るのは channel と ts だけです。text と user は入らないことがあります。text を本文に入れていて届かなかった回は、空欄にならず失敗します。user と channel は ID なので、人の名前やチャンネル名は Chatwork に出ません。
費用:サービス連携は、届いた時点で 1 件あたり約 0.5 円かかります。何も実行されなくても同じです。チャットの発言は数が多い出来事で、1 日 100 件届くチャンネルなら 1 日 50 円ほどになります。絞り込みを増やしても、請求が減るとは限りません。発言の少ないチャンネルに限って使う前提で考えてください。
Chatwork 側の上限:本文は 1〜65,535 文字です。投稿の API はルームごとに 10 秒で 10 回まで、API 全体で 5 分に 300 回までで、超えると 429 が返ります。
用意するもの
- Samurai App のマネージャー以上の権限(サービス連携を付けるのに必要です)
- 「コネクタ」の追加ができる管理者かマネージャーの協力
- Slack に接続できるアカウント
- Chatwork の API トークン(個人プランを除き、組織の管理者への「APIの利用申請」が必要です)
- 投稿先のルーム ID(チャットを開いた URL の
ridに続く数字)
手順
1. Chatwork の API トークンを発行する
Chatwork の右上の利用者名から「サービス連携」を開き、左の「APIトークン」でトークンを発行します。このトークンの持ち主が、投稿の名義になります。
投稿先のルームには、その人が参加している必要があります。参加していないルームへの投稿は 403 で断られます。
2. コネクタを接続する
「設定」の「コネクタ」タブで Slack と Chatwork を「追加」し、それぞれ接続します。Chatwork は接続のときに認証情報の入力を求められるので、手順 1 のトークンを入れます。
3. ワークフローを作る
「ワークフロー」の「作成」から「新規作成」を選びます。
- 「ワークフローの入力」の「入力の項目を追加」で、名前
event、種類「項目の組」の項目を作ります。Slack の発言はここに入ります - 「つなぐ」から「外部サービス実行」を置き、「サービスの操作」で Chatwork の見出しの下にある、メッセージを投稿する操作を選びます。接続の直後は、一覧に出るまで 10 秒ほどかかることがあります
- 渡す値を次のように入れます。名前は欄の下のボタンから追加できます
| 名前 | 値 |
|---|---|
room_id |
投稿先のルーム ID |
body |
Slack より: {{input.event.text}} |
text のない発言で失敗させたくないときは、手前に「条件分岐」を置きます。「条件を追加」で input.event.text に「値がある」を指定し、当てはまるときだけ投稿へ進めます。
チャットで作る場合は、「作成」の「チャットで作る」から次のように頼めます。
Slack の発言を input.event で受けて、input.event.text を Chatwork のルーム 123456 に投稿するワークフローを作って
ルーム ID は実際の番号に置き換えてください。
4. 投稿を試して、公開する
「テスト」タブの「このステップを試す」で、投稿のステップに値を渡して「試す」を押します。実際に Chatwork へ投稿されるので、関係者のいないルームで試してください。問題がなければ「バージョン」タブの「バージョン N を公開」を押します。トリガーは公開したバージョンを実行します。
5. サービス連携を付ける
「トリガー」タブの「サービス連携を追加」を開き、順に進みます。
- 「どのサービスを監視するか」で Slack の接続を選びます
- 「どうなったら動かすか」で「Channel Message Received」を選びます。絞り込みの欄でチャンネルを指定し、ボットの投稿を除く設定にします(欄の名前は Slack 側の英語の宣言が出ます)
- 「何をさせるか」と「仕上げ」を確認して作成します
6. 発言して確認する
対象のチャンネルで発言し、Chatwork のルームを確認します。出来事は届いてすぐ動くとは限らないので、少し待ちます。実行は「実行」タブの「最近の実行」に「出来事で起動」として残ります。
承認との関係
「外部サービス実行」は、起動した人の接続で動きます。トリガーの場合は、トリガーを登録した人です。別の人の接続を使うときは、ステップの「実行に使う認証情報」で「このワークフローに貸す」を使います。
無人の実行には、確認する人がいません。そのためコネクタの操作の設定によって、次のように分かれます。
- 既定で確認が必要な書き込み:実行され、承認の記録に残ります
- 管理者が「毎回確認」にした操作:断られ、ステップが失敗します
- 「禁止」にした操作:断られ、ステップが失敗します
動かないとき
- ステップが「毎回確認」や「禁止」で断られる:管理者に、Chatwork の投稿の操作の設定を確認してもらいます。無人で動かすなら「毎回確認」は使えません
- 投稿のステップが 403 や 401 で失敗する:403 はトークンの持ち主がルームに参加していないか権限がない場合、401 はトークンが無効な場合です
- 投稿が往復し続ける:逆向きの連携も動かしていると、転送した投稿がまた転送されます。Slack 側の絞り込みでボットの投稿を除いてください
- 発言の一部だけ失敗する:ファイルだけの投稿など、
textのない回の可能性があります。「最近の実行」の入力を見て、「条件分岐」を足します
よくある質問
投稿者を会社の共用名にできますか
Chatwork の投稿は、トークンの持ち主の名前で出ます。共用の名前にしたいなら、そのためのアカウントを用意して、そのアカウントのトークンで接続します。
スレッドの返信も転送されますか
絞り込みの is_thread_reply で指定できる宣言があります。実際の画面で欄を確認して設定してください。
Chatwork の投稿を Slack に流すこともできますか
できますが、仕組みは別です。Chatwork の出来事はサービス連携にないので、Webhook で受けます。Chatwork を Slack に流す方法をご覧ください。