部門や取引先によって Slack と Microsoft Teams が分かれていると、同じ連絡を二度書くことになります。この記事では、Slack のチャンネルの発言を Teams のチャンネルへ流す手順を説明します。
Teams 側は 2026 年 5 月に受信の仕組みが変わっており、古い記事の手順は使えなくなっています。Teams の仕様は 2026 年 11 月 4 日時点の Microsoft の公式資料で確認したものです。
結論
- 使うのは、Slack の出来事と Teams の Workflows の Webhook です。Slack の「Channel Message Received」でワークフローを動かし、「通知先へ送る」で Teams の Workflows が発行した URL へ送ります
- 本文だけでは足りない場合があるため、カードの形で送ります。Microsoft のサポート資料では、受け付ける形式は Adaptive Card と MessageCard です。「一緒に送る値」にカードの JSON を入れます
- 逆向きはサービス連携ではできません。Microsoft Teams の出来事は、サービス連携で選べる中にありません
できること・できないこと
コネクタの URL は使えません。Incoming Webhook を含む Office 365 コネクタは 2026 年 5 月で廃止され、Microsoft は Workflows への移行を案内しています。
Teams の Workflows の上限:
- メッセージの大きさは 28 KB までです
- 1 秒に 4 回を超えると絞られます
- フローは作った人が所有します。その人が退職すると持ち主のいないフローになるので、共同所有者を追加しておきます
Teams での表示:Markdown の基本的な書式は表示され、HTML は無視されます。
Slack 側の制約:発言は text が入らないことがあります。参照した項目が届かない回はステップが失敗します。user と channel は ID なので、名前は Teams に出ません。また、サービス連携は届いた時点で 1 件あたり約 0.5 円かかります。発言の多いチャンネルでは積み上がるので、流すチャンネルを絞って使ってください。
用意するもの
- Samurai App のマネージャー以上の権限
- Slack の接続(「コネクタ」タブで追加して接続します)
- Teams で投稿先のチャンネルに Workflows を追加できるアカウント
手順
完成すると、次のようなワークフローになります。

1. Teams で Webhook の URL を発行する
- 投稿先のチャンネルの「…」(More options)から「Workflows」を開きます
- テンプレート「Send webhook alerts to a channel」を選び、「Save」で保存します
- 表示された URL をコピーします
同じ一覧には、送れる人を限る種類のテンプレート(from specific people など)もあります。これらは認証を求めます。Samurai App の通知先は URL だけで送るので、認証の要らないものを選んでください。
2. 通知先に登録する

「設定」の「通知」で、名前と手順 1 の URL を登録します。
「テスト送信」は本文 text だけを送ります。カードの形を求める受け口では、チャンネルに出ないことがあります。ここで投稿されなくても、手順 5 の結果で判断してください。
3. ワークフローを作る
「ワークフロー」の「作成」から「新規作成」を選びます。
- 「ワークフローの入力」の「入力の項目を追加」で、名前
event、種類「項目の組」の項目を作ります - 「つなぐ」から「通知先へ送る」を置き、手順 2 の通知先を選びます
- 「本文」に
{{input.event.text}}を入れます - 「一緒に送る値(任意)」を開き、「JSON で編集」で次の JSON を入れます
{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.2",
"body": [
{
"type": "TextBlock",
"wrap": true,
"text": { "$template": "Slack より: {{input.event.text}}" }
}
]
}
}
]
}
JSON の中で値を差し込むときは、"text": "{{input.event.text}}" のように書いても展開されません。文字のまま届きます。上のように { "$template": "…" } で包んでください。
「一緒に送る値」と「本文」は、同じ JSON に並んで送られます。Teams の受け手が読むのはカードの方です。
チャットで作る場合は、「作成」の「チャットで作る」から頼めます。カードの JSON は手順 3 の形になっているか、できあがったステップで確認してください。
Slack の発言を input.event で受けて、Teams の通知先へ Adaptive Card で送るワークフローを作って
4. 公開して、サービス連携を付ける
「バージョン」タブの「バージョン N を公開」を押します。
続いて「トリガー」タブの「サービス連携を追加」を開きます。「どのサービスを監視するか」で Slack の接続を選び、「どうなったら動かすか」で「Channel Message Received」を選びます。絞り込みの欄で、対象のチャンネルを指定し、ボットの投稿を除く設定にします。
5. Slack で発言して、両側で確認する
発言のあと、次の 2 か所を確認します。出来事は届いてすぐ動くとは限りません。
- Samurai App:「実行」タブの「最近の実行」に「出来事で起動」の行が出て、通知のステップまで進んでいること
- Teams:チャンネルに投稿が出ていること。出ていないときは、Teams の Workflows アプリの「Your workflows」でフローの実行結果を見ます
Samurai App の成功だけでは、Teams への投稿は証明できません。「通知先へ送る」の結果は、送信を引き渡した時点の queued です。その先は Teams 側のフローの結果を見ます。
動かないとき
- Samurai App は成功なのに Teams に出ない:Workflows アプリでフローがオンになっているか、実行が失敗していないかを見ます。失敗していれば、カードの JSON の形が原因の可能性があります
- Teams に
{{input.event.text}}の文字がそのまま出る:$templateで包めていません。手順 3 の形に直して、もう一度公開します - 「通知先」の行に、受け付けを拒否されたという内容が出る:401 や 403 なら「宛先に受け付けを拒否されました。URL に含まれる鍵や宛先側の設定を確認してください」と出ます。認証を求めるテンプレートを選んでいないか確認します
- 一部の発言だけ流れない:
textのない発言でステップが失敗している可能性があります。「最近の実行」で確認し、手前に「条件分岐」を置いてinput.event.textの「値がある」ときだけ進めます
よくある質問
Teams の Workflows に有料のライセンスは必要ですか
Microsoft の資料では、これらのテンプレートに Premium ライセンスは不要とされています。
一度に長い文章を流せますか
Teams のメッセージは 28 KB が上限です。長い発言を流すチャンネルでは、「AI で生成」ステップで要約してから送る方法があります。その場合はカードの $template で <ステップの id>.text を参照します。
Teams のチャットにも送れますか
チャット向けのテンプレート「Send webhook alerts to a chat」があります。URL の発行先が変わるだけで、以降の手順は同じです。