Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now

メニュー

Expand
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でアンケートを実施する

ユーザーからのご意見はビジネスを行っていく上で不可欠ですが、紙のアンケートはごちゃごちゃしていて非効率です。 REST API経由で皆さんのアプリケーションに接続し、簡単なSMSアンケートを実施するTwilio Studio Flowの構築方法を見ていきましょう。

Flowを作成する

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

Simple Survey flow

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

REST API Trigger


アンケートの設問を構築する

アンケートでは、Send & Wait For Reply Widgetをキャンバス上にドラッグし、新しいWidgetの隅の赤い点を灰色の点に接続してこれをREST API Triggerに接続することから始めましょう。 このWidgetを使用して、エンドユーザーに返信すべきアンケートの設問を記したSMSを送信します。

アンケート設問プロンプト

応答に応じて分岐する

We’ll expect the user to reply with a number between 1 and 10. To check this, we’ll drag a Split Based On... widget onto the canvas. First, we’ll set the variable to test in the right sidebar. Find the Send & Wait For Reply widget in the dropdown (in this example, it’s called first_question), and select inbound.Body from the list to capture the reply to your prompt.

応答に応じて分岐する

Next, we’ll need to declare the choices we’re looking for in the user’s responses -- numbers between 1 and 10. 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.

新規の条件一致



右側のサイドバーで、先ほど作成した新規Transitionを見つけ、ドロップダウンからRegex(正規表現)を選択します。 値は、^(?:[1-9]|0[1-9]|10)$(1から10までの整数に評価される正規表現)に設定します。 新規Transitionを保存すると、これがWidget上に表示されます。

1〜10に対する正規表現


エンドユーザーによって、アンケートFlowが認識する何らかの値(すなわち1〜10までの数字)が入力されたら、次の設問に回答するよう指示します。 キャンバスにSend & Wait For Replay Widgetをもうひとつドラッグして、直前の手順を繰り返して設問の追加とレスポンスの評価を行います。 アンケートの各設問に対して手順を繰り返し、回答に想定される形式に基づいてそれぞれTransitionの条件を調整します。

設問シーケンス

一致なしのCondition

エンドユーザーが1〜10の範囲の番号以外のものを入力した場合はどうでしょうか。 Split WidgetのNo Matches(一致なし)Condtionを使用して、こうしたケースに対処します。 理想的には、正しい形式で入力するよう丁寧に提案し、エンドユーザーを誘導してあげるのが良いでしょう。 Send Message Widgetをキャンバスにドラッグし、Message Body(メッセージ本文)を「申し訳ございません。 理解できませんでした。 1〜10までの番号を入力してください。」という内容に設定し、この新規WidgetをNo Matches(一致なし) Conditionに追加します。 続いて、Send Message WidgetからSent(送信済み)Condtionを元の設問への接続に戻し、エンドユーザーに再度の回答の機会を与えます。

No Matches(一致なし)Condition


HTTPリクエストを送信する

これでアンケートの設問、および予期しない入力に対する簡単なハンドラーの用意ができたので、アンケートデータを皆さんのサーバーに返送する準備ができました。 HTTP Request Widgetをキャンバスにドラッグし、これを最後の設問のSplit Widgetに接続します。 Request URLをエンドポイントのものに設定します(このサンプルでは http://example.com/survey を使用しますが、皆さんのものは異なっているでしょう)。 続いて、アンケートの各設問について、右側のサイドバーをHTTP Parametersまで下方向にスクロールし、設問用のフィールドを追加します。 対応するあたいは、その設問に対するSplit Widget内でテストしたものと同じ変数になります。 これを中括弧二つで囲んで、下記のように整形します。 {{widgets.first_question.inbound.Body}} Stduioでは、Flowを通じて動的コンテンツを読み込むのに役立つLiquidテンプレート言語をサポートしています。 これにより、何らかの基準に基づいて二つの中括弧に挟まれたテキストを動的に解釈するようにStudioに伝えることになります。 今回の場合は設問に対してユーザーから受信したSMSの応答のメッセージ本文 (Body) となります。HTTPリクエストの送信時は、アンケートデータを伴うパラメーターが含まれ、結果を追跡できるようになります。

Survey HTTP Widget


完成版のプロダクト

The final state of our canvas is that we have a Trigger widget that receives an incoming REST API request, then sets of Send & Wait For Reply, Split Based On..., and Send Message widgets to prompt the user with questions and evaluate their responses for format. Finally, an HTTP Request widget allows us to send the survey responses back to our servers.

Survey Flow

テストしましょう! ご自身のAPIからStudioにリクエストを送信し、このアンケートFlowを開始します。 そして各設問に対する回答をSMSで返信します(1〜10の間の番号以外のものを入力して、No Matches Conditionもテストしましょう)。 エンドポイントの詳細、パラメーター、およびサンプルのcurlリクエストについては、Studio User GuideのREST APIセクションを参照してください。 エンドユーザーからのご意見をSMSですぐに入手する準備をしましょう!

Brent Schooley David Prothero
Rate this page:

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。