![[Zendesk+Slack] Slack スラッシュコマンドから Zendesk チケットを起票する仕組みを構築する [3/3]](https://images.ctfassets.net/ct0aopd36mqt/wp-refcat-img-33098e3060a89f1c4f152caf13031377/b9c4f4176d3a17b807896cfc754c76ab/zendesk-logo-core-kale-2019.png)
[Zendesk+Slack] Slack スラッシュコマンドから Zendesk チケットを起票する仕組みを構築する [3/3]
- 第 1 回:構成の説明と Zendesk 側セットアップ
- 第 2 回:Lambda 関数と SQS を使った非同期処理の実装
対象読者
- Slack から問い合わせを起票する仕組みを自前で構築したい方
- AWS Lambda や Amazon SQS を使って非同期処理を実装したい方
- Zendesk の API を活用したカスタム連携を検討している方
参考記事
検証環境
バージョン
node: 22.13.1
npm: 10.9.2
概要
本記事では、Slack のスラッシュコマンドを使って、Zendesk チケットを起票する仕組みの仕上げとして、Slack アプリの作成とコマンド設定、署名検証用シークレットの取得、そして実際の動作確認を行います。
構成図における Slack 側の設定(赤枠部分)を中心に解説します。
Slack アプリの設定
Signing Secret の取得
署名検証に使う Signing Secret
は、Slack アプリ作成後の Basic Information
ページから取得できます。
- Slack API にアクセス
Create New App
→From scratch
- アプリ名とワークスペースを指定
Basic Information
→App Credentials
→Signing Secret
をコピー
スラッシュコマンドの作成
左メニュー Slash Commands
→ Create New Command
を選択し、以下のように設定:
項目 | 値 |
---|---|
Command | /zendesk-create-ticket (任意) |
Request URL | API Gateway のエンドポイント URL |
Short Description | Zendesk チケットを起票します |
Usage Hint | 問い合わせ内容を入力 |
アプリのインストール
左メニュー Install App
→ Install to Workspace
をクリックし、権限を許可してインストールします。
動作確認
Slack 上で次のようにコマンドを入力します:
/zendesk-create-ticket 今すぐ対応が必要な問い合わせです!
Lambda 関数が署名を検証し、SQS にメッセージを送信。後段の Lambda によって Zendesk API が呼び出され、チケットが作成されます。
正しく動作していれば、下記のようにチケットが起票されます。
トラブルシューティング
Lambda のログ確認
CloudWatch Logs で、署名検証やメッセージ送信、Zendesk API 呼び出しのログを確認します。console.log()
によるログ出力を活用してください。
SQS の状態確認
SQS コンソール → 対象キュー → 「モニタリング」タブにてメッセージ滞留や再試行の有無を確認します。
メトリクス名 | 説明 |
---|---|
ApproximateNumberOfMessagesVisible | 処理待ちメッセージ数 |
ApproximateAgeOfOldestMessage | 最古のメッセージの滞留時間 |
まとめ
本シリーズでは、Slack のスラッシュコマンドから Zendesk に問い合わせチケットを起票する非同期フローを、AWS Lambda と SQS を使って構築しました。
この構成には以下のような特徴があります:
- Slack の 3 秒制限と Zendesk API の応答遅延を両立する堅牢な非同期処理
- 署名検証や SAFE_MODE による安全性の確保
- SQS を中継とした構成による将来的な拡張のしやすさ(通知追加、DB 書き込み、監視との連携など)
実装はシンプルですが、日々の業務オペレーションに直結する自動化のひとつとして、非常に効果的です。
特に「Slack でやり取りして終わりがちな情報」をチケット化し、トラッキング可能な形に変換できる点は、問い合わせ対応の属人化を防ぎ、チーム運営の土台強化にもつながります。
今後の展開
今回構築した基盤は、以下のような方向にも発展できます:
- 問い合わせ内容の自動分類や優先度設定
- Slack コマンド入力のキーワードによって、Zendesk のカスタムフィールドを自動設定する
- Slack 側へのチケット番号・URL の返信機能
- 起票完了後に即時で「チケット #12345 を作成しました」と返すことでユーザー体験を改善
- タグやユーザー情報の付与による分析基盤との連携
- 「誰から」「どのチャンネルで」「どんな頻度で」などの情報をログとして活用
- GitHub Issues や Jira など他サービスとの並列起票
- SQS メッセージを複数サービスに展開することで、開発・サポートチーム間の連携も強化可能
業務の入り口を「Slack コマンド」に寄せることで、非エンジニアを含むすべてのメンバーがシステムと自然に連携できる仕組みが実現します。
この構成をベースに、ぜひ自社業務に合わせたカスタマイズや自動化を進めてみてください。
- 第 1 回:構成の説明と Zendesk 側セットアップ
- 第 2 回:Lambda 関数と SQS を使った非同期処理の実装