[Twilio+Slack] Slack コマンドで音声読み上げ通話を自動発信する: SQS+Lambda での非同期処理構成 [3/3]
- 第 1 回: 構成と Twilio 初期設定
- 第 3 回: Slack アプリの設定と動作確認
対象読者
- Slack スラッシュコマンドから電話発信を行いたい方
- Twilio の音声読み上げ通話機能(TwiML
Say)を試したい方 - AWS Lambda + SQS + API Gateway の連携例を学びたい方
- Slack の 3 秒タイムアウト制限を回避したい方
- Twilio 利用時の課金リスク回避設計にも関心がある方
参考記事
検証環境
バージョン
node: 22.13.1
npm: 10.9.2
node_modules/twilio: 5.5.1
node_modules/aws-sdk: 2.1692.0
概要
本記事では、Slack のスラッシュコマンド /voice を使って、Twilio 経由で自動音声通話を発信する仕組みの仕上げとして、Slack アプリの作成とコマンド設定、署名検証用シークレットの取得、そして実際の動作確認を行います。
構成図における Slack 側の設定(赤枠部分)を中心に解説します。

Slack アプリの設定
Signing Secret の取得
署名検証に使う Signing Secret は、Slack アプリ作成後の Basic Information ページから取得できます。
- Slack API にアクセス
Create New App→From scratch

- 名前とワークスペースを指定してアプリ作成
- 左メニュー
Basic Information→App CredentialsからSigning Secretをコピー

スラッシュコマンドの作成
Slack アプリ左メニュー Slash Commands → Create New Command を選択し、以下のように設定:

| 項目 | 値 |
|---|---|
| Command | voice |
| Request URL | API Gateway のエンドポイント |
| Short Description | 認証コードなどを音声で読み上げます |
| Usage Hint | +81XXXXXXXXXX 認証コードは1234です |
アプリのインストール
左メニュー Install App → Install to Workspace をクリックし、権限を許可してインストールします。
動作確認
Slack 上で次のようにコマンドを入力します:
/voice +819012345678 認証コードは1234です
Lambda 関数が署名を検証し、SQS にメッセージを送信。後段の Lambda によって Twilio API が呼び出され、音声読み上げ通話が実行されます。
トラブルシューティング
Lambda のログ確認
CloudWatch Logs のロググループから、Slack リクエスト処理関数や通話発信関数のログを確認してください。console.log() を仕込むと詳細な状態がわかります。
SQS の状態確認
SQS コンソール → 対象キュー → 「モニタリング」タブで以下を確認できます:
| メトリクス名 | 説明 |
|---|---|
| ApproximateNumberOfMessagesVisible | 処理待ちメッセージ数 |
| ApproximateAgeOfOldestMessage | 最古のメッセージの滞留時間 |
まとめ
第 3 回では、Slack 側の設定と動作確認を行い、Slack コマンド /voice → Twilio 音声通話までの全体構成が完成しました。
- Slack アプリの作成と署名検証の導入
- スラッシュコマンド
/voiceによる発信リクエストの実行 - SAFE_MODE やホワイトリストで課金リスクを回避
次のステップとしては、以下の応用が考えられます:
- 音声メッセージのテンプレート化や多言語対応
- 発信結果を Slack に通知する機能の追加
- 音声合成 (
Say) の代わりに録音済み音声 (Play) を使った高度な IVR
Slack + Twilio + AWS Lambda の構成は拡張性が高く、さまざまな業務自動化に応用できます。ぜひご活用ください。
- 第 1 回: 構成と Twilio 初期設定
- 第 3 回: Slack アプリの設定と動作確認






