
Twilioで定時のSMS通知を構築してみた
こんにちは、昴です。
今回はTwilioでStudioを使ったSMSの定時通知を構築してみます。
はじめに
Twilioは電話やSMS、チャットなどのコミュニケーション機能を組み込むためのクラウドベースのAPIプラットフォームです。TwilioのAPIを利用することで通信ソリューションを自由にカスタマイズして構築することができます。
今回はTwilioの機能の中でもTwilio Studioに注目していきたいと思います。本来Studioでは受信に対してフローが実行されるため、定時に通知するSMSを構築する場合はStudioよりもMessaging APIを活用する方がよくある利用方法かと思われます。しかし実際には有給休暇や祝日など人によって勤務日や勤務時間が異なる現代を考えて、出勤時にSMSで送信し、そのユーザーに対して定時をSMSで通知する仕組み(今回は8時間経過を知らせる通知)をStudioで構築してみようと思います。
設定
フロー構築
それではフローを構築していきます。
まずコンソールのStudioに移動し、Create new Flowを選択します。
フローの名前は「定時通知」と入力し、フローを初めから構築するため「Start from scratch」を選択します。
フローの初期画面は下記のようになっており、Incoming MessageはSMS、Incoming Callは電話を受信した後のフローを下に構築していきます。
Split Based On...
まず初めにSplit Based On... Widgetを使用します。TriggerのIncoming MassageからSplit Based On... Widgetに接続します。Split Based On... Widgetの設定を開き、ConfigタブのVariable to testでtrigger.message.Bodyを入力します。これにより、送信されたSMSのメッセージの内容に応じてフローを分岐することができます。
次にTransitionsタブのNew Conditionから分岐を作成していきます。Equal Toには「出勤」と入力し、これによりSMSにて「出勤」と入力した場合にフローを進めることができます。入力が完了したらWidgetをSaveで保存します。
Send and wait for reply
次にSend and wait for reply Widgetを設定します。先ほど設定したSplit Based On... WidgetのIf value equal_to 出勤を繋げます。Widgetの設定を開き、Message bodyに確認を返信する内容のメッセージを入力します。次にWait for replyにどのくらい時間経過したら通知を送信するか秒数で設定します。今回は60秒で設定して検証を行います。(8時間の場合は28,800秒)入力が完了したらWidgetをSaveで保存します。
Send Message
次にSend Message Widgetを設定していきます。1つ前のSend and wait for reply Widgetは返信があった場合と〇秒返信がなかった場合に分岐することができます。今回のケースでは返信があった場合は通知の取り消しを伝える旨のメッセージ、返信が無かった場合は8時間後に定時を知らせる旨のメッセージをそれぞれ設定していきます。
Widgetを2つ用意し、それぞれのMessage bodyを入力した後、Reply(返信があった場合)とNo Reply(返信が無い場合)にそれぞれ繋げます。入力が完了したらWidgetをSaveで保存します。
最後に Widgetに接続し、フローは完了です。Publishを選択してフローを公開していきます。
電話番号に接続
フローが完成したら電話番号に接続していきます。コンソール画面のPhone Numbers > Manage > Active numbersへ移動し、接続したい電話番号を選択します。Messaging ConfigurationにてA message comes inをStudio Flowに設定し、Flowには先ほど作成したフローを設定していきます。
最後にsave configurationで保存し設定は完了となります。
確認
それでは実際に「出勤」とSMSで送信し、動作を確認します。送信後、設定した時間が経過した後(今回は60秒で設定)、下記のように業務終了の通知が届きました。
続いて業務終了の通知の前に、「早退」と入力し送信してみます。すると下記のように通知の取り消しのメッセージが届きました。
まとめ
今回はTwilioでStudioを使ったSMSの定時通知を構築してみました。StudioやMessageを使用すると時間を決めたSMS送信も実現することができます。
本ブログが少しでも参考になれば幸いです。
告知
Twilio/SendGridセミナーを毎月開催しています
クラスメソッドでは毎月Twilio/SendGridのセミナーを実施しています。
クラスメソッドではTwilio/SendGridのセミナーを毎月開催しております。いずれもTwilio及びSendGridを良く知らない方向けに基本的な部分から解説する内容となっておりますので、今後Twilio/SendGridの導入を検討している方や、既に導入済で改めて基本的な部分を勉強したいと考える方は、是非お気軽にご参加いただければと思います。