エキスパートワークフローを使用すると、高度な通話ルーティングシステムを構築できます。完全にカスタマイズ可能なエキスパートワークフローは、基本的なメニューや提案を超え、発信者のニーズに基づいた最適な通話体験を実現します。
以下、詳細をご参照ください。
対象ユーザー
ワークフローは、すべてのプランでご利用いただけます。
エキスパートワークフローは、プロフェッショナルサービスチームによって有効化される必要があります。
Note
[External API] ステップは、標準ワークフロービルダーで利用できます。エキスパートワークフローでも外部 API を使用できますが、標準の [External API] ステップの使用を推奨します。
エキスパートワークフローでできること
多くの構成オプションを備えたエキスパートワークフローでは、以下のようにワークフローを個別にカスタマイズできます:
発信者データの収集:音声プロンプトを使って発信者から情報を取得し、その後のコールフローで利用できるように保存します。
パーソナライズされた判断:発信者の回答や保存されたデータに基づいて、最適なエージェントまたはグループへルーティングします。
外部データへのアクセス:他のシステムと接続して発信者情報を取得し、通話体験をパーソナライズします。
通知の送信:通話フロー中にメールで通知を送信し、発信者に状況を知らせます。
タスクの実行:サービスチケットの作成や、顧客の注文情報の取得・変更など、特定の業務を実行します。
Note
基本的な概要を説明していますが、複雑なエキスパートワークフローを作成するには、一定の技術的知識が必要なため、初めての場合は、カスタムワークフローソリューションの構築支援について、Dialpad のプロフェショナルサービスチームに相談することを推奨します(英語対応)。
エキスパートワークフローへのアクセス
プロフェショナルサービスによってエキスパートワークフローが有効化されると、ワークフロービルダー内に [エキスパート] ステップが表示されます。

[エキスパート] ステップを作成して名前をつけた後、[Expert を起動] を選択して、エキスパートワークフロービルダーを開きます。

エキスパートワークフロービルダーでは、ドラッグ&ドロップのインターフェースを使用して、様々な要素(ノード)を作成し、ルーティング用のフローチャートを作成できます。
ノードを追加するには:
ノードメニューからコンポーネントを選択します。
キャンバス上の位置にドラッグ&ドロップします。
.png)
ノードを選択して、ウィジェットやルーティングの詳細を追加します。
ノードに名前を付け、説明を追加します(オプション)。

各ノードの上部と下部にある丸(出力)と四角(入力)のコネクタを使ってノードを接続します。
丸(出力)から四角(入力)に向かってドラッグすることで接続します。
接続を解除するには、四角(入力)を選択してキャンバス上のスペースまでドラッグします。
接続を変更するには、接続を選択し、片方を別のノードへドラッグします。

[Expert を公開] を選択して、ワークフローを保存します。
ワークフロービルダーの機能
エキスパートワークフローには、複雑なワークフローの作成をサポートする様々な機能が組み込まれています。
主な機能は以下の通りです。
ローカル変更ツルバー
ローカル変更ツルバーは、ワークフローの開発を管理するためのツールで、現在の編集セッションにのみ適用されます。

以下の操作が可能です:
変更内容の取り消しとやり直し
任意のタイミングでワークフローのローカルチェックポイントを保存
ミスをした場合、最後に保存されたローカルチェックポイントに復元
不要になったローカルチェックポイントを削除
ワークフローを画像ファイルとして印刷
重要
変更を保存すると、即座に本番環境に反映されるため、保存する前に内容を十分に確認してください。
ナビゲーションコントロール
キャンバスの上部にあるナビゲーションコントロールを使って、ズームイン・ズームアウトや、キャバス全体の移動ができ、より見やすくなります。

マウスを長押しすることで、表示画面内のキャンバスをドラッグして移動できます。
クイックペースト
クイックペーストボタンを使うと、直前にコピーまたはカットされた要素をすぐに貼り付けることができ、ワークフロー内で要素を簡単に複製できます。

エキスパートワークフローノード
9 種類のエキスパートワークフローノードが提供され、それぞれに名前と説明をカスタマイズできます。
以下に各ノードの種類を紹介します。
Prompt and Wait(プロンプトと待機)
メッセージの送信とメッセージの待機を組み合わせたノードで、発信者にメッセージを再生し、その入力を取得します。
Send a Message(メッセージを送信)
このノードは、ウィジェット、インフォメーションバブル、プログレスメッセージの3種類の手段で、録音されたメッセージを再生します。
Widget (ウィジェット):メッセージの再生、転送、通話の切断など、通話コントロール機能を提供します。
Information Bubble(インフォメーションバブル):音声通話におけるデバッグ用マイルストーンであり、発信者には再生されませんが、バックエンドのログに表示されます。
Prompt and Wait ノードと一緒に使用すると、入力待ち状態が発生し、ワークフローが停止しますので、ご留意ください。
Progress(プログレス):発信者には聞こえない進行メッセージです。カスタムレポート用のタグを作成するために使用されます。カスタムレポート機能が有効な場合、特定の形式の文字列として記録されますが、Prompt and Wait ノードと一緒に使用しないでください。
プログレスメッセージは、Send Message ノードと一緒にのみ使用します
レポート出力用フォーマット:
Workflow-^Name of Workflow>::Step-^<Step Name or desc>。ここで [-^] および [::] はレポートメッセージ内の区切り文字です。プログレスメッセージはレポートに含まれる際に、データ種類として [Task] を選択します。
Wait for Message(入力待ち)
発信者からの入力があるまでワークフローを一時停止させます。
タイムアウトを必ず設定してください。設定しないと、ワークフローが無期限に停止されます。
ワークスローを設計する際には、Send a Message と Wait for Message を別々に使う必要がありません。
Voice Widget(ボイスウィジェット)
Voice Widget を使うことで、通話中に音声制御を実行できます。以下の11種類のウィジェットから選択可能です:
Voice Call-Park | 処理中に通話を保留状態にします |
Voice Call-Record | 通話を録音します |
Voice Call-Resume | 保留状態の通話を再開します |
Voice Call-Terminate | 通話を終了します |
Voice Call-Transfer | 通話を別のグループ、ユーザー、外部番号などへ転送します |
Voice Call-IVR-Collect | 発信者から入力を収集します |
Voice Call-IVR-Menu | 発信者にメニューから選択させます |
Voice Media-Wait | メディアを再生し、終了まで待機します |
Voice Play-Media | メディアファイルを再生します |
Voice Play-Prompt | テキスト読み上げ(TTS)プロンプトを再生します |
Voice Prompt-Wait | TTS プロンプトを再生し、入力を待ちます |
Note
一部のウィジェットには、[Wait for Message] ノードを追加する必要があります。
このノード自体には入力機能が含まれていないため、[Voice Call-Park] 以外の音声コントロールには [Wait for Message] または [Prompt and Wait] を追加する必要があります。
Goto Another(他のワークフローへ移動)
Goto Another ノードは、発信者をシステム内の別のワークフローに転送します。
転送先ワークフローが通話を終了しない場合は、転送先ワークフローの終了後に次のノードへ進みます。
Goto Another ノードを作成する際は、転送先ワークフローの詳細を入力する必要があります。
転送先ワークフローの URL 名を生成するには:
ワークフロー名 (スペースなし)
例:Acme Sales
ワークフロー ID (転送先ワークフローのURL中の “workflow_” 以降の文字列)
例:
https://dialpad.com/ivrworkflows/workflow_IVR555555-4444444444
転送先 URL を生成します:
IVR/<IVR ID>/<IVR Name without spaces>
上記の例に基づくと、対象のワークフロー URL は以下のようになります:
IVR/IVR555555-4444444444/AcmeSales
この値を Target Workflow Name 欄に入力します。
Assign(割り当て)
Assign ノードは、通話中に情報を保存するための変数を作成または更新し、パーソナライズを可能にします。
変数が存在しない場合は、新たに作成され、指定された値が割り当てられます。
新しい変数名は、英文字のみ利用可能で、スペースやアンダースコアは使用できません。
すでに変数が存在する場合は、その変数の現在の値が上書きされます。
Notes
このノード自体には入力機能が含まれていないため、[Voice Call-Park] 以外の音声コントロールには [Wait for Message] または [Prompt and Wait] を追加する必要があります。
Conditional Branch(条件分岐)
Conditional Branch ノードは、発信者の入力、変数、または条件式に基づいて、通話のルートを分岐させます。これにより、待ち時間の短縮、VIP の優先対応、必要な情報の効率的な提供が可能になります。
3種類の条件分岐タイプを提供しています:
発信者入力:発信者が最後に入力した変数に基づいて分岐します
コンテキスト変数:通話フロー内で作成または割り当てられた変数に基づいて分岐します
customer.businessid.phoneのようなシステム生成変数
式:正規表現の組み合わせに基づいて分岐します
条件分岐を設定すると、その変数に応じて異なるステップへとルーティングする複数のワークフローブランチを作成できます。
External API (外部 API / サーバー)
External API ノードは、外部サーバーと動的に通信して情報の取得や更新を行うノードです。JSON 形式の REST API が必要です。
API コールを行うと、JSON レスポンスを解析して特定の属性をワークフロー内に保存することも可能です。
API コールの応答時間は 2〜3 秒以内に設定することが推奨されます。音声通話中にAPI の応答が長引く場合は、API コールの前に Voice Call-Park を使用し、API 完了後に Voice Call-Resume を行うことで、タイムアウトによる通話切断やフォールバックオプション(ボイスメールなど)へのルーティングを防げます。
GET、POST、および PUT の REST API メソッドのみがサポートされています。
Notes
API アクセスを制限するには、認証ヘッダーを使用するか、トラフィックをファイアウォールで制限できるよう公開ゲートウェイ IP の提供を弊社にご依頼ください。
API コールは Dialpad のクラウドから実行されるため、API エンドポイントはクラウドからアクセス可能である必要があります。
API が SSL で保護されている場合は、基準の SSL 署名証明書が必要です。カスタム SSL の HTTP 認証局はサポートされていません。
レスポンスの解析における変数名や属性名は大文字・小文字を区別します。
API 起動のキャンペーンでは、通話転送を行うために、発信に使用するパワーダイアラーへ電話番号を割り当てる必要があります。
Close Session(セッション終了)
Close Session ノードは、通話セッションを終了します。
エキスパート外部 API
Dialpad エキスパートモードでは、外部 API ノードを使用して REST API を介してCRM などのプラットフォームからデータを取得できます。以下では、より複雑なワークフローを導入するためのガイドです。
API リクエストをローカルで参照・テスト
API がパブリックインターネット経由でアクセスできることを確認してください。Postman や curl リクエストを用いたコマンドラインなどのツールを使用し、外部 API コンポーネントがどのように動作するかを模倣します。
ローカル環境で API をテストした後、以下を把握している必要があります:
リクエスト URL
リクエストメソッド (GET、POST、または PUT)
リクエストボディ (該当する場合)
リクエストヘッダー (API で必要)
Note
ヘッダーは JSON オブジェクトとして構成されます。
レスポンスボディの可能性
Tip
Sublime Text や Notepad++ など、JSON のテキストエディターを使用して、これらのレスポンスをローカルに保存してください。
ワークフローを作成する
ワークフローを作成するには、管理者設定を開きます。
[チャネル & ワークフロー] > [ワークフロー] を選択します。
[ワークフローを作成] を選択し、ワークフロー名を入力します。
Note
ワークフローの名前に使用できるのは英数字とスペースのみです。
[+] を選択してステップを追加します。
[ステップを追加] ウィンドウで、[ロジック] > [エキスパート] を選択します。
[Expert を起動] をクリックし、以下のエキスパートステップのコンポーネントを順番に追加し、接続します:
Call Park | Voice Widget コンポーネントで利用できます。[voice/call-park] のウィジェットドロップダウンを選択します |
Send a Message | リクエストパラメータを記録するために使用します |
External API (Server) | API リクエストを実行するために使用します |
Call Resume | [Prompt and Wait] コンポーネントを使用し、[voice/call-resume] ウィジェットを選択します |
Send a Message | レスポンスパラメータを記録するために使用します |
[Expert を公開] を選択し、[ワークフローを公開] を選択します。エキスパートフローは下図のような構成になります。

エキスパートノードを使用する際の注意事項:
すべてのエキスパートノードは、[Send a Message] ノードで終了する必要があります。
エキスパートブランチノードで一致がない場合は、いずれかのノードにマッピングする必要があります。
POST の JSON Body の値は、保存または更新できるよう、引用符で囲む必要があります。
テスト用コンタクトセンターまたはグループを作成
ワークフローをテストするには:
有効な電話番号を持つグループまたはコンタクトセンターにワークフローを割り当てます。
Note
テスト用ルーティンググループが存在しない場合は、新規に作成してください。電話番号を追加し、通話ルーティング設定を変更して新しいワークフローを指すように設定します。
ワークフローを割り当てた後、初回テスト通話を行い、新しいルーティンググループが正常に新しいワークフローへ到達することを確認します。
ワークフローのログは会話履歴から確認できます。
API 詳細をワークフローに追加する
基本的な API を設定したら、API リクエストの詳細を追加します。
URL | コピーした URL をテキストフィールドに貼り付けます。必要に応じて、URL 内に変数を使用できます (変数は二重中括弧で囲みます)。URL の先頭 (https://) は必ず URL に含めてください。 |
Method | リクエストで使用するメソッドです。有効なオプションは GET、POST、PUT のみです。 |
Additional Headers | ヘッダーフィールドでは、ヘッダー名をキーとする有効な JSON オブジェクトを作成します。
|
CSV JSONPath フィールドの編集
外部 API ノードは JSONPath を使用して API レスポンスからデータを取得し、レスポンス内の値をワークフロー変数に割り当てます。形式は [ワークフロー変数名]:[JSON Path] です。 複数ある場合は、カンマで区切りで記録する必要があります。
この変数:JSONPath のコンマ区切りリストを作成するには、jsonpath.com などの外部ツールを使用し、API レスポンスから必要な値をすべて特定します。
JSON レスポンスの例
{
"firstName": "John",
"lastName": "doe",
"age": 26,
"address": {
"streetAddress": "naist street",
"city": "Nara",
"postalCode": "630-0192"
},
"phoneNumbers": [
{
"type": "iPhone",
"number": "0123-4567-8888"
},
{
"type": "home",
"number": "0123-4567-8910"
}
]
}JSONPath を編集するには:
API レスポンスの本文を JSONPath テスターにコピーし、抽出する必要がある各変数の JSON Path を確認します。
変数名を選択します。変数名を最初に入力し、その後ににコロンを入れ、続けて JSONPath 式を記録します。以下の例をご参照ください:
JSONPath 式
first:firstName, (= "John")
last:lastName, (="doe")
streetAddress:address.streetAddress
city:address.city
phoneNo1:phoneNumbers[0].number
phoneType1:phoneNumbers[0].type
phoneNo2:phoneNumbers[1].number
phoneType2:phoneNumbers[1].typefirst:firstName, (= "John")改行を削除すると、外部 API ノードの CSV JSONPath テキストフィールドは以下の例のようになります:
外部 API ノードの CSV JSONPath
first:firstName,last:lastName,streetAddress:address.streetAddress,city:address.city,phoneNo1:phoneNumbers[0].number,phoneType1:phoneNumbers[0].type ,phoneNo2:phoneNumbers[1].number,phoneType2:phoneNumbers[1].typeこれをテキストフィールドに追加し、 [保存] を選択します。
ワークフローを公開します。
Note
POST の JSON Body の値は、保存または更新できるようにするため、引用符で囲む必要があります。
変数
変数は、URL エンコードにするか、JSON に埋め込むことができます。
以下は、JSON API で使用できる変数の一部です:
JSON:
{{exampleVariableName|type=json}}URL エンコード:
{{exampleURLString|type=urlqueryvalue}}JSON Body の値で数値として扱う場合:
"{{num|type=jsonnumber}}"JSON Body の値でブール値として扱う場合:
"bool":"{{bool|type=jsonboolean}}"
ログの追加
次に、ログを追加する必要があります。API リクエストの前後にある 2 つの [Send a Message] ノードは、トラブルシューティング用に一部のデータを会話履歴に記録するために使用されます。
API リクエストで変数が使用されている場合は、最初のリクエストにそれらを含めるだけでなく、レスポンスも含めます。
response.status と response.code の 2 つの組み込み変数を必ずレスポンスメッセージに記録します。さらに、CSV JSONPath で作成されたすべての変数もログに残します。

テストとアドオン
初回のテスト通話を実行し、その通話を会話履歴で確認します。ワークフローの出力は、ログ内でレスポンス値として表示されます。
ワークフローのレスポンス値を確認するには:
会話履歴を開きます。
[会話タイプ] を [デジタルのみ] に設定します。

会話を選択し、 [トランスクリプト] を選択します。

Note
ワークフローセッション履歴は別のブラウザタブまたはウィンドウで開き、基本情報を表示します。
必要に応じて、エキスパートノード内または外部にブランチを追加し、API が成功したかどうかに応じてプロンプトやメッセージを追加できます。
注意点
エキスパートワークフローの重要なポイント:
最終のノード:ワークフローの最終のノードは入力ノードにしないこと
代わりに、Send a Message ノードでトレース用のメッセージを再生するようにします
長時間の API コール:数秒以上かかる可能性のある API コールには、事前に Voice Call-Park、完了後に Voice Call-Resume を使用してください
エキスパートワークフロー外の条件分岐:条件分岐は標準ワークフローでも使用できます。エキスパートワークフロー内で設定された変数は、標準ワークフローの分岐でもアクセスできます。
外部 API の要件:JSON 形式の REST API を使用し、エンドポイントがインターネット経由で到着可能であること。SSL 使用時は標準の SSL 証明書である必要があります。
API 起動のキャンペーン:通話転送を行うために、発信に使用するパワーダイアラーへ電話番号を割り当てる必要があります。
FAQs
エキスパートワークフローがグレーアウトしているのはなぜですか?
エキスパートワークフローは、Dialpad のプロフェッショナルサービスチームによる設定が必要です。詳細については、カスタマーサクセスマネージャーまたは営業チームにお問い合わせください。
API コール中のタイムアウトを防ぐには?
API の応答を待つ間のタイムアウトを防ぐには、Voice Call-Park と Voice Call-Resume を使用してください。
