📨

TwilioでSMSチャットボット(入力フォーム)

2022/02/21に公開

エンドユーザーが親しみやすい、ショートメッセージ(SMS)のチャットで申し込みをすると、担当者にSlackの通知が飛ぶようにしてみました。

SMSチャットボットによる入力フォームのイメージ

動作概要

UserがSMSを送ると、チャットボットとやり取りして、結果をSlackで通知する。

ソースコード

参考文献

【1】Twilio日本語チュートリアル SMS - アラートと通知
【2】Twilio日本語チュートリアル チャットボット
【3】Twilio英語チュートリアル Slackに通知
【4】Slack WebHook
【5】Twilio widgetの返り値

手順詳細

SMS受信用の電話番号を取得する

【1】Twilio日本語チュートリアル SMS - アラートと通知
を参照して、アメリカの電話番号をゲットします。+1xxxxx

チャットボットのFlowを作る

【2】[Twilio日本語チュートリアル チャットボット]
を参照して、「名前」と「プラン」を聞くSMSチャットボットを作ります。

1 Triger_Incoming Message

SMSを受信したら=Incoming Message

2 Get_user_name

SMSを受信したら、「名前を入力してね」とSMSを返信して、回答を待ちます。

Send & Wait For Reply Widgetを張り付けて、Incoming Messageのコネクタとつなぎ、
Send & Wait For Reply WidgetのBODYに「名前を入力してね」と記載します。

3 Get_requested_plane

同じ感じで、名前を受信したら、「プランを選んでね」とSMSを返信して、回答を待ちます。

4 Send_message_1

プランを受信したら、「ありがとう」とSMSを返信します。

Slackに通知する

【3】Twilio英語チュートリアル Slackに通知
を参照して、 HTTP Request Widgetを使い、SMSで受信した「名前」と「プラン」をSlackに通知します。

5 Post_to_Slack

まずは、Slackの自分のチャンネルに通知するための、SlackのWebHook用URLを取得します。
【4】Slack WebHook
を参照ください。

チャットボットが受信したSMSのBody部をJSON形式で書きます。

・発信者の電話番号:最初のSMSのFrom:trigger.message.From
・発信者の名前:Get_user_nameのBody:widgets.Get_user_name.outbound.Body
・選択したプラン:Get_requested_planeのBody:widgets.Get_requested_plane.outbound.Body

そうすると、Slackにこんな感じで通知されます。

返り値はtwilioのヘルプを見ると、見つけられます。
【5】Twilio widgetの返り値

電話番号とFlowを紐づける

取得した米国の番号を選んで、A MESSAGE COMES INを変更します。

以上で+1xxxxあてに、スマホからショートメッセージを送るとチャットボットが動き出します。

Discussion