チケットが増えると、Slack に全件を流しても埋もれてしまい、急ぎの 1 件を見落とす。この記事はサポートの担当者に向けて、新しいチケットを AI に分類と要約をさせ、急ぎのものだけを Slack へ通知する手順を説明します。
結論
まず、AI の判断が要るかどうかで道を選びます。
| 道 | 合う場面 | 遅れ |
|---|---|---|
| Zendesk 公式の Slack 連携 | 条件が決まっていて、AI の判断が要らない | 定期確認の遅れなし |
| サービス連携 + AI | 本文を読んで急ぎを見分けたい | 最大 15 分 |
| Zendesk の Webhook + 外部トリガー + AI | AI の判断に加えて遅れも避けたい | 定期確認の遅れなし |
「優先度が緊急のチケットを流す」のように Zendesk の項目で決められるなら、公式の連携で足ります。公式の連携と Webhook は、Zendesk Support の Team、Professional、Enterprise のプランで使えます(Suite は公式の案内をご確認ください)。この記事の手順は、本文を読んで判断したい場合のものです。
できること・できないこと
サービス連携では Zendesk 側で絞れません。 「New Zendesk Ticket」の設定には、担当グループやビューを選ぶ項目がありません。新しいチケットがすべて届き、1 件ごとに約 0.5 円と、AI の分の費用がかかります。
届く ticket は丸ごと AI に渡します。 公式の一覧は ticket を「Ticket details」と書くだけで、中の項目を示していません。差し込んだ項目が届いていないとステップは失敗するので、この記事では ticket 全体を読ませ、要る値を AI に取り出させます。
AI の「至急」は目安です。 見落としも取り違えも起こります。お客様が本文に「至急」と書けば、判断が左右されることがあります。「AI で生成」はツールを持たないので、本文の指示で Zendesk や Slack を操作されることはありません。
「New User」の出来事は使いません。 こちらは webhook 型ですが、ユーザーが増えたときの出来事で、チケットとは別です。
用意するもの
- Zendesk のアカウントと、Samurai App の「コネクタ」での Zendesk の接続
- Slack の Incoming Webhook の URL
- ワークフローにサービス連携を付けられる権限(マネージャー以上)
手順
完成すると、次のようなワークフローになります。

1. 通知先と接続を用意する

Slack のアプリ設定の「Incoming Webhooks」から、急ぎ用のチャンネルの URL を作ります。「設定」→「通知」の「通知先」に登録し、「テスト送信」を押します。
「コネクタ」の画面で Zendesk を「追加」し、自分のアカウントで連携します。コネクタの追加は管理者とマネージャーの操作です。
2. AI に分類と要約をさせる
ワークフローを「新規作成」で作り、「ワークフローの入力」に名前 event、種類「項目の組」を足します。
「AI で生成」を足し、「指示」に書きます。急ぎの基準は自社の言葉に直してください。
次は Zendesk の新しいチケットの内容です。
urgency: 障害、決済の失敗、解約の申し出は high、それ以外は normal
category: 不具合、請求、使い方、その他 のどれか
summary: 2 文以内の要約。氏名、メールアドレス、電話番号、住所は書かない
ticket_id: チケットの番号
{{input.event.ticket}}
「出力の項目」に urgency category summary ticket_id を、型は文字、「必須」で足します。
3. 急ぎだけを通知先へ送る
「値で振り分ける」を足し、「振り分ける値」に urgency を「/」で選びます。「値を追加」で high を足し、その下に「通知先へ送る」を置きます。「本文」には ticket_id、category、summary を「/」で並べます。
「それ以外」には何もつながなくても、チケットは Zendesk に残ります。AI の見落としが心配なら、「それ以外」にも別のチャンネルの通知先を置きます。
4. 公開して起動を付ける
「保存」し、「バージョン」タブの「バージョン N を公開」を押します。「トリガー」タブの「サービス連携を追加」で Zendesk の接続を選び、「どうなったら動かすか」で「New Zendesk Ticket」を選びます。
遅れを避けたいとき
Zendesk のトリガーから Samurai App を直接呼びます。この道は両者の公式の仕様で確認した形で、Zendesk の実アカウントでは通していません。
- Samurai App の「トリガー」タブで「外部トリガーを追加」を押します。シークレットは作った直後に 1 度だけ表示されます
- Zendesk の管理センターで「Apps and integrations」の「Webhooks」を開き、「Create webhook」で「Trigger or Automation」を選びます。「Endpoint URL」に発行された URL、「Request method」は POST、「Request format」は JSON、「Authentication」は「Bearer token」でシークレットを入れます
- 「Objects and rules」の「Business rules」→「Triggers」で「Add trigger」を押し、条件を
Ticket | Is | Created、アクションを「Notify webhook」にして、次の内容を入れます
{ "ticket_id": "{{ticket.id}}" }
- ワークフローの先頭に「外部サービス実行」を足して
ZENDESK_GET_ZENDESK_TICKET_BY_IDを選び、ticket_idに{{input.event.ticket_id}}を入れます。手順 2 の指示の最後の行は、このステップの結果を「/」で選んだものに替えます
送るのをチケット番号だけにしているのは、Zendesk の公式資料に JSON の中の値の扱いが書かれておらず、本文の改行や引用符で壊れないと言い切れないためです。個人情報を外へ運ぶ量も減ります。
上限に注意します。 外部トリガーは 1 分に 10 回までで、超えると 429 を返し、retry-after は 60 秒です。Zendesk が 429 を再送するのは 60 秒未満の場合だけなので、超えた分は再送されず、実行も始まりません。チケットが一度に増える窓口では、サービス連携のほうが向きます。
個人情報を Slack へ流すとき
チケットには、お客様の氏名、連絡先、契約や決済の内容が入ります。
- 通知には番号と要約だけを載せ、Zendesk の
{{ticket.requester.email}}のような項目や本文全体を入れません - AI への「書かない」という指示は確実ではありません。要約に混ざる前提で、チャンネルの参加者を絞ります
- Incoming Webhook には投稿を削除する機能がありません。誤って流れたら Slack の画面で削除します
- チケットの内容は AI のモデルに渡り、実行の記録にも入力と出力として残ります。社内の取り扱いの決まりと合うか、先に確認してください
動かないとき
- 何も届かない: ワークフローが公開されていないと、トリガーは実行を始めません。サービス連携は最大 15 分遅れます。「実行」タブの「最近の実行」で、起動したかと
urgencyの値を確認します - 「通知先」の行に「宛先の URL が見つかりません。URL を確かめてください(404)」と出る: Slack の Webhook の URL を確認し、通知先の「編集」で入れ直します
- Zendesk の「Test webhook」が 404 になる: シークレットが届いていません。Zendesk の資料は Bearer token のヘッダーの形を明記していません。外部トリガーの「URL の ?k= でもシークレットを受ける」をオンにし、URL に
?k=を付ける形も試します highが来ない: AI がhigh以外の表記を返すと「それ以外」へ進みます。「最近の実行」で出力を確認し、指示で表記を指定し直します
よくある質問
更新やコメントでも通知できますか
「New Zendesk Ticket」は新しいチケットだけです。更新を拾うなら、Zendesk のトリガーの条件を変える公式連携か Webhook の道になります。
Slack からチケットに返信できますか
この手順は通知だけです。
急ぎ以外もカテゴリごとに分けられますか
できます。category を「振り分ける値」にし、値ごとに別の通知先を置きます。