LINE 公式アカウントでお客様の問い合わせを受けていると、担当者が LINE の管理画面を見に行くまで気づけないことがあります。この記事では、公式アカウントに届いたメッセージを Slack のチャンネルへ流す手順を説明します。
LINE の仕様は、2026 年 11 月 4 日時点の LINE Developers の公式資料で確認したものです。
結論
- 対象は LINE 公式アカウントです。Messaging API の Webhook を Samurai App の「外部トリガー」で受けて、ワークフローから「通知先へ送る」で Slack へ送ります
- 個人の LINE はこの手順では流せません。個人のトークの出来事では、ワークフローを起動できません
- 文字以外のメッセージと、1 通にまとまった複数のイベントに備えます。スタンプや画像には
message.textがなく、そのまま参照するとステップが失敗します
できること・できないこと
公式アカウントと個人の LINE の違い
| LINE 公式アカウント | 個人の LINE | |
|---|---|---|
| 場所 | ワークフローの「トリガー」の「外部トリガー」 | 「自動実行」の「アプリ内の出来事」の「個人の LINE のトークに発言が届いた」 |
| 前提 | Messaging API を有効にしたチャネル | 管理者の許可(「外部チャット」の「個人の LINE の許可」)と接続 |
| 動くもの | ワークフロー | エージェント(ワークフローは起動できません) |
| 動く時機 | Webhook が届いたとき | 選んだ 1〜20 のトークで、30 秒発言がないか 5 分続いたとき(最大 50 件) |
届く項目
LINE からの 1 回の Webhook は、destination と events の配列でできています。
eventsは 1 件とは限りません。複数のイベントがまとまって届くことも、空のことも(LINE からの疎通確認)あります。先頭だけを読むと 2 件目以降を落とすので、「繰り返す」で 1 件ずつ処理します- メッセージ以外のイベントも届きます。友だち追加(
follow)などにはmessageがありません - メッセージの種類が混ざります。テキスト、画像、動画、音声、ファイル、位置情報、スタンプが同じ形で届きます。
message.textがあるのはテキストだけです - 送信者の名前は届きません。あるのは
source.userIdだけで、表示名は別の API(GET /v2/bot/profile/{userId})で引くものです。userIdも、端末や同意の条件によっては入りません - 画像やファイルの中身は Slack に出ません。この手順で送れるのは、
messageの項目(種類や ID など)までです
届き方
LINE の再送は既定でオフです。公式資料には、同じイベントが重複して届くことや、順番が前後することがあると書かれています。Slack の順番を受信の順番と考えないでください。
外部トリガーの起動は、既定で 1 分に 10 回までです。超えると 429 を返します。一斉配信のあとなど、返信がまとまって届く時間帯は超えることがあります。受信に長く失敗し続けると、LINE が Webhook の送信を止めることがあると公式資料に書かれています。
用意するもの
- LINE 公式アカウントと、Messaging API を有効にしたチャネル
- Slack の Incoming Webhook の URL
- Samurai App のマネージャー以上の権限(外部トリガーを付けるのに必要です)
Messaging API は「LINE Official Account Manager」の「Messaging APIの利用を有効にする」で有効にします。このとき選ぶプロバイダーは後から変えられないので、社内の担当者で揃えてから進めてください。
手順
完成すると、次のようなワークフローになります。

1. Slack の通知先を登録する

Slack の App 設定で「Incoming Webhooks」をオンにし、「Add New Webhook to Workspace」でチャンネルを選んで URL を発行します。
Samurai App の「設定」の「通知」で、名前とこの URL を登録し、「テスト送信」で届くことを確認します。
2. ワークフローを作る
「ワークフロー」の「作成」から「新規作成」を選びます。
- 「ワークフローの入力」の「入力の項目を追加」で、名前
event、種類「項目の組」の項目を作ります - 「繰り返す(一覧の各行)」を置き、「一覧」に
{{input.event.events}}、「行の名前」にevと入れます - その中に「条件分岐」を置き、「条件を追加」で
{{ev.message}}に「値がある」を指定します。友だち追加などはここで外れ、何も送りません - 当てはまる側に、もう 1 つ「条件分岐」を置き、
{{ev.message.text}}に「値がある」を指定します - 当てはまる側に「通知先へ送る」を置き、本文を次のようにします
LINE 公式アカウントに届きました
{{ev.message.text}}
- 当てはまらない側にも「通知先へ送る」を置き、本文を次のようにします
LINE 公式アカウントに文字以外のメッセージが届きました(種類: {{ev.message.type}})
AI のステップは入れないでください。次の手順で LINE に実行の終わりを待ってもらうので、長い処理を入れると応答が遅れます。
チャットで作る場合は、「作成」の「チャットで作る」から次のように頼めます。トリガーはチャットでは付けられないので、手順 3 は画面で行います。
LINE の Webhook を input.event で受けて、input.event.events の各行について、message.text があれば Slack の通知先へ送り、text がなく message があれば「文字以外が届きました」と送るワークフローを作って
3. 公開して、外部トリガーを付ける

「バージョン」タブの「バージョン N を公開」を押します。
続いて「トリガー」タブの「外部トリガーを追加」を開き、「URL の ?k= でもシークレットを受ける」をオンにして作成します。作成の直後に 1 度だけシークレットが出るので、控えてください。
「署名を検証する」はオフのままにします。 Samurai App の検証は 16 進数の署名を照合する方式で、LINE の署名(Base64)は照合できません。この構成では ?k= のシークレットが守りになります。
4. LINE に Webhook URL を入れる
LINE Developers コンソールの「Messaging API設定」タブの「Webhook URL」に、外部トリガーの URL の末尾に ?k=<シークレット>&wait=result を付けたものを入れます。「Webhookの利用」をオンにします。
&wait=result は省かないでください。 外部トリガーは既定で 202(受け付けた)を返しますが、LINE の公式リファレンスはステータスコード 200 を返すよう求めています。wait=result を付けると、実行の終わりを待って 200 を返します。
1 つのチャネルに設定できる Webhook URL は 1 つだけです。すでに別のシステムや Samurai App の「外部チャット」で使っているチャネルで書き換えると、そちらに届かなくなります。試験用のチャネルで動かしてください。
5. 検証して、メッセージを送る
Webhook URL の下の「検証」を押します。空の events が届き、成功と出れば URL は通っています。
自分の LINE から公式アカウントへ、テキストとスタンプを 1 つずつ送ります。Slack に 2 通届き、ワークフローの「実行」タブの「最近の実行」に「外部から起動」の行が出れば完了です。
動かないとき
- 「検証」が失敗する:URL の
?k=と&wait=resultを確認します。シークレットが違うか、「URL の ?k= でもシークレットを受ける」がオフだと 404、公開していないと 422 です - 「最近の実行」に何も出ない:「Messaging API設定」で「Webhook URL」と「Webhookの利用」を確認します
- スタンプや画像でステップが失敗する:
message.textを「条件分岐」なしで参照しています。手順 2 の形にします ev.source.userIdを本文に入れるとときどき失敗する:userIdは入らない回があります。本文に入れるなら、これも「値がある」で分岐します- 別のシステムの LINE 連携が止まった:Webhook URL が 1 つしか持てないことが原因の可能性があります。「Webhook URL」の現在の値を確認し、チャネルを分けることを検討します
よくある質問
自分の個人 LINE に届いたトークを Slack に流せますか
この手順ではできません。個人の LINE は「アプリ内の出来事」のトリガーで、管理者が許可している場合に、エージェントを動かす用途で使います。ワークフローの起動には使えません。
Slack から LINE に返信できますか
この記事の手順は片方向です。LINE の返信に使う reply_token は 1 分以内しか使えないため、人が Slack を見てから返す用途には、userId 宛てのプッシュメッセージが必要になります。