[Twilio+Slack] Slack コマンドで音声読み上げ通話を自動発信する: SQS+Lambda での非同期処理構成 [3/3]

[Twilio+Slack] Slack コマンドで音声読み上げ通話を自動発信する: SQS+Lambda での非同期処理構成 [3/3]

Slack 上で /voice [電話番号] [読み上げ内容] のようにコマンドを入力すると、Twilio の音声 API を使って自動で通話を発信し、指定した内容を読み上げる仕組みを構築します。本シリーズでは、Twilio Programmable Voice・AWS Lambda・Amazon SQS・API Gateway を活用し、Slack からの指示を安全かつ非同期に処理する構成を解説します。第 3 回では、Slack アプリの作成とスラッシュコマンドの設定、署名検証に必要な Signing Secret の取得、そして実際の動作確認を行います。
2025.05.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。


対象読者

  • 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 側の設定(赤枠部分)を中心に解説します。

15


Slack アプリの設定

Signing Secret の取得

署名検証に使う Signing Secret は、Slack アプリ作成後の Basic Information ページから取得できます。

  1. Slack API にアクセス
  2. Create New App → From scratch
    12
  3. 名前とワークスペースを指定してアプリ作成
  4. 左メニュー Basic Information → App Credentials から Signing Secret をコピー
    13

スラッシュコマンドの作成

Slack アプリ左メニュー Slash Commands → Create New Command を選択し、以下のように設定:
14

項目 値
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 の構成は拡張性が高く、さまざまな業務自動化に応用できます。ぜひご活用ください。



Twilioの導入支援はクラスメソッドにお任せください!

クラスメソッドでは、Twilioの導入から運用までしっかりサポートいたします。
コミュニケーションツールの導入や最適化をお考えの方は、ぜひお気軽にご相談ください。

Twilioの詳細を見る

この記事をシェアする

関連記事