メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Twilio Studioで予約リマインダーを送信する

Twilio Studioを使用すれば、予約リマインダーがあっという間に出来上がります! REST API経由で皆さんのアプリケーションに接続し、確認メッセージ付きのリマインダーSMSを送信する簡単なFlowを構築する方法について見ていきましょう。

Flowを作成する

素の状態のTwilio Studio Flowから開始します。 Twilioアカウントにログインし、Studioダッシュボードに移動し、+アイコンをタップして新規Flowを作成します。 Flowにお好きな名前を付けることができます。 このサンプルではAppointment Reminderという名前にすることにします。

Appointment Reminder Flow

キャンバスにはすでにWidgetが配置されています。 これはTrigger Widgetであり、指定されたTriggerが発動したときにこのFlowが開始されます。 今回は、TriggerをREST APIの呼び出しにしましょう。 この’呼び出しの方法については、StudioユーザーガイドのREST APIセクションを参照してください。

REST API Trigger

Send & Wait For Reply

まず、Send & Wait For Reply Widgetをキャンバスにドラッグすることから始めます。 続いて赤い点を新しいWidgetの端にある灰色の点にドラッグしてREST API Triggerに接続します。 このWidgetを使用すると、エンドユーザーに返信を促すSMSを送信できます。 今回の場合は、API呼び出しからvalue (time) を使用し、メッセージの本文が「{{flow.data.appointment_time}}に予約があります。 確定する場合は1を、キャンセルする場合は2を返信してください。」という内容になるようにします。 Stduioでは、Flowを通じて動的コンテンツを読み込むのに役立つLiquidテンプレート言語をサポートしています。 これにより、何らかの基準に基づいてふたつの中括弧に挟まれたテキストを動的に解釈するようにStudioに伝えることになります。 今回の場合はリクエストからのappointment_timeの値になります。

予約時間を確定する

返信に基づいて分岐する

We’re expecting the user to reply to this text message to confirm or cancel their appointment. We’ll need some logic that will help us know which choice the user would like to make. We’ll use the Split Based On... widget to help handle that. Drag it onto the canvas and connect it to the dangling Reply dot from our Send & Wait For Reply widget.

Split based on Reply

まずは、(条件分岐の)テストに使用する変数の構成が必要になります。 今回の場合はエンドユーザーの返信が問題となっているため、confirm_apptを、そして右側のパネルのドロップダウンからinbound.bodyを選択します(皆さんのSend & Wait For Reply Widgetがconfirm_apptという名前ではない場合、異なる名前になっている可能性があります)。

テスト用のSplit変数

TransitionのCondition (条件) を設定する

Next, we’ll need to declare the choices we’re looking for in those text replies -- the digits 1 and 2. Tap the red New at the bottom of the Split widget to reveal the Transition On... dropdown menu. Select Condition Matches to create a new Transition.

Split confirmation condition

右側のサイドバーで、先ほど作成した新規Transitionを見つけ、ドロップダウンからEqual To(等号)を選択します。 これからこの値を1に設定し、予約を確定します。 新規Transitionを保存すると、これがWidget上に表示されます。

1に等しくなるCondition

Next, we’ll need a condition for if the user has pressed 2 to cancel the appointment. Just as with the first Transition, we’re going to tap New, then select Condition Matches...., then set the value equal to 2 in the sidebar and save. Our widget should look like this, with No Matches, 1, and 2 dangling from the bottom:

Confirmation Split Widget

HTTPリクエストを送信する

続いて、サーバーにリクエストを戻すことで予約の確定を処理することにします。 これを行うには、HTTP Request Widgetをキャンバスにドラッグし、右側のサイドバーで必要なフィールド(Request MethodおよびRequest URL)を入力します。 このサンプルでは、http://example.comを使用することにしますが、皆さんのアプリケーションに対するエンドポイントに合うよう設定した方がよいでしょう。 リクエストBodyまたはパラメーターを送信したい場合は、こちらも右側のサイドバーで設定できます。

HTTPリクエストを送信する

リクエストの送信に成功したら、エンドユーザーにお礼のメッセージを送信しましょう。 これを行うには、Send Messagae Widgetをキャンバスにドラッグし、エンドユーザー向けの短い返信をMessage Body(メッセージ本文)に入力します。

お礼メッセージ


キャンセル用の経路

ここで、先の手順をもう一度繰り返します。 今度はキャンセル用のものです。 HTTP Request Widgetをキャンバスにドラッグし、これをSplit Widgetからぶら下がっている「2」に接続して、キャンセル用のエンドポイントにリクエストを送信し、ユーザーに受領メッセージを送信します。

キャンセル用の経路

一致なしCondition(条件)

しかし、エンドユーザーが1または2(すなわち確定とキャンセル)以外のテキストを入力した場合はどうでしょうか? 組み込み済みのNo Match(一致なし)Conditionを活用して、エンドユーザーにリマインダーを再送して入力を促せます。 Send Message Widgetをキャンバスにドラッグし、これをNo Matchesの点に接続、続いてお好みのエラーメッセージを入力します。 さらに、Send Message WidgetのSentの点を元々のSend & Wait For Reply Widgetにドラッグする事で、エンドユーザーに最初のメッセージで再入力を促すことができます。

No matches Condition


完成版のプロダクト

The final state of the canvas is that we have our Trigger widget take a REST API request, prompt the user to confirm or cancel with a Send & Wait For Reply widget, routed responses through a Split Based On... widget, used HTTP Request widgets to POST cancellations and confirmations back to our own endpoint, and used Send Message widgets to acknowledge the user’s response.

予約リマインダーの最終形のキャンバス

テストしましょう!皆さんのAPIからStduioへのリクエストを作成してこの予約リマインダーFlowをスタートします。 それから確定またはキャンセルを返信します。 エンドポイントの詳細、パラメーター、およびサンプルのcurlリクエストについては、Studio User GuideのREST APIセクションを参照してください。 皆さんのカレンダーを、お客様の予定と同期する準備をしましょう!




Brent Schooley
Rate this page:

ヘルプが必要ですか?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.