メニュー

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はカスタマーコミュニケーションのデザイン、デプロイ、およびスケールを行うためのビジュアルインターフェイスです。 Twilio Engagement Cloudに新しく加わったTwilio Studioは、何百万という組織横断的なチームメンバーがカスタマーコミュニケーションをデザイン、デプロイ、スケーリングを行うパワーをもたらします。 これにより企業は、全組織におけるクリエイティブな才能を活用して顧客エンゲージメントのロードマップをすばやくトラッキングできるようになります。

Twilio Studioの使用シーン

Twilio Studioはチーム内のどなたでも、素早く簡単にフローを作成および変更できます。 Studioは組織横断的なチームによる使用を念頭に設計されており、チームの全員が必要な業務を遂行するための共通フレームワークを提供します。 デザイナーは迅速にUXの変更を行い、コピーライターは自身のメッセージを組み込み、そして開発者は他のメンバーに作業を任せて(通話Functionsのような)より複雑な機能の構築に専念できます。

Studioの機能

  • SMSの受信、音声通話の着信、およびワークフローからFlowをトリガーする
  • Create, Modify, and Deploy Flows (Workflows)
  • Import and Export Flows
  • Transition (遷移) を追加および削除する
  • インスペクターパネルでWidget設定を管理する
  • Transitionを定義してFlowのユーザーを前進させる
  • 変数を作成し、それを渡す
  • View Executions (Individual runs through flows)
  • 複数のFlowに分離してユースケースおよびロジックを整理する

はじめましょう

You can start using Studio by logging in and visiting the Studio homepage in the Twilio console.

用語集

以下に、Studioを使いはじめるに当たって役立つ重要な用語をいくつかご紹介します:

用語

定義

Flow

Flowは作成された個々のワークフローです。 ひとつ以上のユースケースを処理できます。

録音済みのメッセージを再生して音声通話を処理するFlowを作成できます。

Widget

WidgetはFlowのキャンバス上にドラッグ可能な個々のアイテムです。 これらはひとつのロジックであり、Transitionによって互いに接続できます。

Send Message Widgetを使用してFlow内のユーザーにSMSを送信できます。

Transition

Transitionは特定の条件に基づいてFlowがあるWidgetから次のWidgetにどのように前進するかを定義します。

You might have a Transition based on the condition of an incoming message; you could handle specific text inputs and route them to a Split Based On... Widget.

Step

StepはWidgetの実行時の処理であり、Widgetに入ったタイミングで開始されます。 Stepの最後では変数が設定されます。

ユーザーにテキスト入力をプロンプトする際、そのユーザーがSMSを受信すると、Wedgetを退出する(返信を行うかタイムアウトに達する)までそのユーザーはStep内に存在していることになります。 プロンプトが変数の設定を意図している場合、これは最後に行われます。

Execution

An Execution represents a specific person’s run through a Flow. An Execution is active while the user is in the Flow, and it is considered ended when they stop or are kicked out of the Flow.

When I call the Twilio number connected to a Flow, an Execution is created to represent my call to that number / path through the Flow. The owner of the Flow can see my Execution, as well as the Executions of other users who have run through the Flow.

Data retention in Studio

Log data is persisted in Studio for 90 days after an execution ends. This relates to all execution step data persisted by the application. Data relating to underlying products used via Studio, such as SMS or voice call logs, are not automatically deleted at the same time as execution data. Data generated by other products is retained / deleted in line with those products data policies. Details of individual product data retention policies can be found in the specific product documentation, such as here for SMS and here for voice calls.

Handling concurrent calls from the same number in Studio

Note: This functionality changed on October 1st 2018. New flows created after this date will handle concurrent calls from the same caller ID by default. For flows created before that date, the switch must be made manually in the call trigger (see screenshot below).

By default, Studio flows can handle inbound concurrent calls from the same number. The Send and Wait For Reply widget cannot be attached anywhere downstream of the Incoming Call trigger point. This is because if multiple users are calling from the same number, Studio can't uniquely text back one user in an active execution and correctly identify a reply, because callers all share the same number.

For certain specific use cases, where you know callers to a Studio flow will always have a unique visible caller ID, you can disable the concurrent calls mode via the Advanced Features dropdown in the Trigger widget (see below). When disabled, you will be able to add the Send and Wait for Reply widget to incoming call trigger connected flows. This is only recommended for advanced users who know that their flow is triggered from visible unique caller IDs.

Enabling Concurrent Calls in Studio

Studioの使用

Flowを作成する

FlowはConsole上で「+」ボタンをクリックして作成できます

「+」ボタンのクリックにより新規Studio Flowを作成する

様々なユースケースに対応したり、ロジックを整理する手段としてのFlowを数多く持つことができます。

Navigating the Canvas

キャンバスはFlowを組み立てる場所です。 まずTrigger Widgetから始まり、それからWedgetをドラッグ&ドロップしてユースケースに合致したFlowを構築できます。

素の状態のStudioキャンバス

時には(特に複雑なFlowでは!)キャンバスが散らかってくることがあるため、フォーカスする場所をコントロールできることが重要です。 マウスを使用してキャンバスをドラッグし位置を変更したり、ズームイン/アウトのリンクを使用して縮尺を変更できます。 またトラックパッドを使用している場合はピンチしたり押し込んだりして、ズームを行うこともできます。

Working With Widgets

WidgetはFlowの構成部品です。 これらを使用して着信/受信のアクションを処理して応答したり、メッセージを送信したり、ユーザーをFlowの別の箇所にルーティングしたり、情報を取得したりといったことが行えます。

Flowキャンバスの右側にWidgetライブラリーパネルが見つかり、そこにはすぐにドラッグ&ドロップ可能なWidgetがいくつかあります。 Widgetを選択すると、このパネルはインスペクターパネルに変化します。

これらのWidgetをキャンバスにドラッグし、新規または既存のFlowに接続するだけです。 個々のWidgetをクリックすると、同じ右側のパネルに構成オプションが表示されます。

say/play widget

Keyboard shortcuts are available if you'd like to duplicate widgets on the canvas. Simply select a widget (it will highlight in blue) and then copy (Cmd + C on Mac or Ctrl +C on Windows) and paste (Cmd + V on Mac or Ctrl + V on Windows).

Widgetはインスペクターパネル(Widgetライブラリーと同じ右側のパネル)から構成できます。 Widgetをクリックするだけで、構成オプションを表示できます。Widgetにカスタムの名前をつけることができます。 括弧内にWidgetのタイプが表示されるため、その役割が常に分かるようになっています。Widget名は一意でなければならず、また英文字から開始し、空白文字またはピリオドを含むことはできません。 単語を区切るには、アンダースコア文字を使用します。

Do not use Personally Identifiable Information in Flow names or Widget names

You should not use directly identifying information (aka personally identifiable information or PII) like a person's name, home address, email or phone number, etc., in Flow names or Widget Names because the systems that will process this attribute assume it is not directly identifying information. You can read more about how we process your data in our privacy policy.

Widgetsの一部は構成の設定が必要になります。 これらは赤いアスタリスク (*) 、および下記のWidgetライブラリーリファレンスで明示されています。 必須の構成が不足しているか無効な場合は、Flowを保存することができません。

Transitionの定義

Transitionはイベントおよび指定された条件に基づいて、どのようにFlowがあるWidgetから次のWidgetへと前進するかを定義します。 キャンバスから、New from a WidgetをタップしてTransitionオプションを呼び出すことができます。

transitions

また右側のインスペクターパネルでNew Transitionをクリックすることで、Transitionを設定することもできます。 しばしばTransitionはWidgetの種類に基づいてあらかじめ設定済みの場合があり、通常は通話またはメッセージの状態を反映します。 -- レスポンスが受信されたか? 通話がタイムアウトしたか? メッセージの送信に成功したか、といった具合です。

各Transitionは別のWidgetに接続します。 各トランジションについて接続先を異なるWidgetに設定したり、あるいは(例として、番号の「1」を声に出して話したユーザーを、プッシュボタンで「1」キーを押したユーザーと同じWidgetにマッピングする場合など)、2つ以上のTransitionを同一のWidgetに向かうように設定したりといったように選択できます。

To remove a Transition, click on the widget that starts the Transition and drag the line away. You can also click on the widget, select the Transitions tab on the configuration pane and click on the "..." next to the Transition you would like to remove, then click on the Disconnect Transition option from the dropdown menu.

Flowをトリガーする

Flowの開始をトリガーする方法は3つあります:

  • incomingMessage
  • 着信通話
  • REST API (受信リクエスト)

All three of these appear in the Trigger Widget, and you can drag-and-drop from one or more to reflect the needs of your use case.

flow-url

Note: Triggering outbound flows requires hitting the REST API, not the webhook URL. See the Studio REST API docs for more details.

Configuring Your Twilio Number for Studio

Flowが満足行く状態に仕上がったら、Twilio電話番号にそれを接続して、人々がやり取りできるようにしましょう! 続いて、Console > 電話番号 > 番号の管理に移動し、Flowに接続したい電話番号を選択します。 続いて(音声用には)通話着信時、(SMS用には)メッセージ受信時のStudio Flowを選択します。 ドロップダウンからFlowを選択し、保存すると接続は完了です。

You can also copy-paste the Webhook URL onto any Twilio resource that takes a callback URL, including Messaging Services, Short Codes, and Channels. Depending on the product, this can be done in the Console, via API, or both.

Note: A Twilio phone number can only route inbound messages and calls to a single Studio Flow (one-to-one), but that Flow can process messages and calls from multiple phone numbers (one-to-many).

studio-to-phone-number


Important: For Voice Flows, add the Studio Flow Webhook URL to the Call Status Changes field to ensure Studio can correctly detect the end of the call.

Studio Webhook Call Status Changes

Now, try calling the number in the screenshot -- if you hear a message referencing this guide, it’s powered by a Studio Flow!

変数を使用する

Flowが実行されると、Flowコンテキストと呼ばれる場所に状態が保存されます。 Flowコンテキスト内のデータはWidgetから構成フィールドまたはテキストエリアの変数置換を使用し、変数としてアクセスできます。

Studioは出力タグとロジックタグの両方をサポートするリキットテンプレート言語に対応しています。 例えば、連絡先名を含めてテキストメッセージを送信する場合は、下記のように変数を使用できます:

Hello {{flow.data.first_name}}

さらに洗練されたロジックもサポートされます。 この例では、連絡先名の参照を試みる前に、それを実際に知っているか確認しています:

{% if flow.data.first_name %}

Hello {{flow.data.first_name}}

{% else %}

Hello friend

{% endif %}

コンテキスト変数

コンテキストに保存されるデータは4種類あります:

  • Flow: Flowに属するデータです。 Flowに関連づけられた電話番号などです
  • Trigger: 最初の受信メッセージ、着信通話、あるいはREST APIなど、Flowの初期化時に設定されるデータです。
  • Widgets: 各Widgetが自身に設定するデータ、およびコンテキストが実行されるとそれに追加されるデータです。 ユーザーが押したプッシュボタンの番号や、受信メッセージの本文などです。
  • Contact: 現在Flowとやり取りを行なっている相手の連絡先に関するデータで、電話番号などが該当します

Flow変数には下記が含まれます:

Flowのアドレス(たとえばTwilio電話番号) flow.channel.address

連絡先の変数には以下が含まれます:

エンドユーザーのアドレス(たとえば携帯電話番号) contact.channel.address

After execution, many widgets publish data variables to the Execution context, and these variables may be referenced by subsequent widgets. For example, when the Send Message widget step completes, it will have stored the following variables:

Sid widgets.MY_WIDGET_NAME.message.Sid

To widgets.MY_WIDGET_NAME.message.To

From widgets.MY_WIDGET_NAME.message.From

Body widgets.MY_WIDGET_NAME.message.Body

Note the casing of variable names, and remember that widget names must be unique, must start with a letter and cannot include spaces or additional periods. Any variables that come from an external source, such as a status callback or Twilio API call, are cased according to the relevant spec for that callback. For example, an incoming message will have a "Body" parameter, where we keep the capitalized "Body" like in the Twilio SMS API. Variables specific to the flow, trigger, and widgets context are lower cased.

Flowが受信リクエスト (REST API) 経由でトリガーされるとき、リクエスト時に変数を渡すことができます。

Flowの公開と版履歴 (Revision History)

Note: This functionality has recently been updated. Previously, Flow edits published automatically for users on the Studio starter plan. We've now added the below Draft/Edit functionality for all Studio plan users, including the free Starter tier.

Changes are automatically saved but will not be made live for consumers until you explicitly click "Publish". This lets you safely make changes and when you're happy with the final product, publish them for everyone.

Studio Publishボタン

Studio also includes Revision History. You will be able to see a list of every change made to your flow and the differences between the currently published version and the latest draft.

Testing draft flows is easy with Studio -- you just need to whitelist your phone number to go through the latest draft version instead of the published version. Click the Trigger widget and you can add as many phone numbers as you would like, separated with commas, to experience the latest draft version of the flow.

Studio Test Usersダイアログ

結果に満足したら、Publish (公開) をクリックしてエンドユーザーがアクセスできるようにします。

Renaming Flows

To change the name of your Flow, click on the Trigger widget. The right-side configuration panel includes a field for Flow Name. Enter the desired name, and click Save to rename your Flow.

Renaming Studio Flows

Duplicating Flows

To make a copy of an existing Flow, navigate to your list of Flows and locate the one you'd like to copy. Click on Duplicate Flow and a new copy of the Flow will be created and automatically opened.

Duplicate a Studio Flow

Deleting Flows

If you'd like to delete a Flow, navigate to your list of Flows and locate the one you'd like to remove. Click on Delete Flow to remove the Flow.

Delete a Studio flow

Importing and Exporting Flows

Use this functionality to export flow definitions as JSON and import them to other Twilio accounts. It's best to use Duplicate flow for simply creating a copy of a Flow in the same account. Import / Export of Flows is intended for exporting a flow to store elsewhere, .e.g. source control and/or to move flows between Twilio accounts.

Your Studio Flow definition may reference other Twilio resources (like phone numbers, Functions, etc.). These references are not automatically copied when the Flow is imported to another account, and you may need to make manual updates to your Flow to refresh references to those resources.

Exporting Flow Data

Click on the Trigger widget and select Show Flow JSON.

Export Flow Trigger

This will display the JSON data that defines your flow. You can copy this data out and store it elsewhere.

Flow JSON

Importing Flow Data

Create a new Flow, and select Import from JSON.

New flow from JSON

Click Next. You will be presented with a code window to paste valid Flow JSON.

Paste import JSON

Click Next to create the new Flow once the JSON definition is added.

トラブルシューティング

Studioのトラブルシューティングを行う中で留意すべき注意事項について以下に示します:

  • 無限ループが起こり得ます! 組み込み済みの制限があるため、Flowが永遠に動作し続けることはありません。 最終的には自動で停止します。 とはいえ自分自身にループバックされるようなTransitionを作らないようご注意ください。
  • HTTP RequestまたはFunction WidgetからのカスタムTwiMLの返却はまだサポートされていません。 もうじき登場します。
  • 2010-04-01以降のAPIバージョンのみがサポートされます。 廃止予定の2008年版APIを既定で使用するようアカウントが構成されている場合は、電話番号で新しいAPIを使用するようアップグレードするようにしてください。

ヘルプが必要ですか?

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.