TwilioでSMSチャットボット(入力フォーム)
エンドユーザーが親しみやすい、ショートメッセージ(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