- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- ST-DBP-002 - 多数の引数
- ST-DBP-003 - 空の catch ブロック
- ST-DBP-007 - 複数のフローチャートレイヤー
- ST-DPB-010 - [ワークフロー] または [テスト ケース] の複数のインスタンス
- ST-DBP-020 - 未定義の出力プロパティ
- ST-DBP-021 - ハードコードされたタイムアウト
- ST-DBP-023 - 空のワークフロー
- ST-DBP-024 - 永続性アクティビティの確認
- ST-DBP-025 - 変数のシリアル化の前提条件
- ST-DBP-026 - [待機] アクティビティの使用
- ST-DBP-027 - Persistence のベスト プラクティス
- ST-DBP-028 - 引数のシリアル化の前提条件
- ST-USG-005 - ハードコードされたアクティビティ引数
- ST-USG-009 - 未使用の変数
- ST-USG-010 - 未使用の依存関係
- ST-USG-014 - パッケージの制限
- ST-USG-017 - パラメーターの修飾子が無効
- ST-USG-020 - 最小ログ メッセージ
- ST-USG-024 - 未使用で保存されたままの値
- ST-USG-025 - 保存した値の誤用
- ST-USG-026 - アクティビティの制限
- ST-USG-027 - 必要なパッケージ
- ST-USG-028 - ファイル テンプレートの呼び出しの制限
- ST-USG-027 - 必須のタグ
- ST-USG-034 - Automation Hub URL
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- トリガー ベースの有人オートメーション
- 概要
- コンタクト センターとトリガー ベースの有人オートメーション
- 製品ガイド ツアーを作成する
- 既存のアプリの検証を設計する
- オブジェクト リポジトリ
- ScreenScrapeJavaSupport ツール
- 拡張機能
- Studio でのテスト
- トラブルシューティング

Studio ガイド
コンタクト センターとトリガー ベースの有人オートメーション
このチュートリアルでは、同じフォームの複数のインスタンスを同時に操作する方法を説明します。このシナリオは、複数の顧客から同時に着信した電話に応対するコンタクト センター担当者に関係します。このシナリオでは、フォームとトリガーを使用することにより、コンタクト センター担当者が現在通話している顧客の情報を表示しながら、顧客に対してさまざまなアクション (アカウントのパスワードの変更、ライセンス プランの更新、支払いの遅延など) を実行できるようにします。
このオートメーション プロセスは、着信通話を監視して顧客に関する必要な情報すべてをコンタクト センター担当者に提供することにより、カスタマー サービスのユーザー エクスペリエンスを効率化します。このプロセスでは、顧客データを Data Service エンティティから取得してフォームに表示します。フォームは通話終了後も開いたままなので、担当者はフォームに再度アクセスして追加の操作を実行できます。また、25 秒以上保留になっている顧客を優先し、その顧客に切り替えるか、通話を無視するかを促すフォームを表示します。このプロセスは、担当者が複数の通話を同時に処理できるようにすることにより、効率を最適化し、カスタマー サービスの総合品質を向上させます。
前提条件
- Form.Activities 23.4.3 をインストールする
- System.Activities 23.4.2 をインストールする
- UIAutomation.Activities 23.4.5 をインストールする
サンプル アプリ
このチュートリアルを同じコンタクト センター担当者アプリケーションで試してみたい場合は、こちらからサンプル アプリをダウンロードできます。
サンプル ワークフロー
この手順に従ってアイデアをご自身でテストするには、こちらからサンプル プロジェクトをダウンロードします。

サンプル プロジェクトには以下のファイルが含まれます。
| ワークフロー | チュートリアル |
|---|---|
| Main.xaml (エントリ ポイント) | 手順 1: Main ワークフローを作成する |
| Customer Data.uiform | 手順 2: 顧客データのフォームを作成する |
| on incoming call.xaml | 手順 3: 着信通話用のワークフローを作成する |
| on current call.xaml | 手順 4: 現在の通話用のワークフローを作成する |
| on ignore click.xaml | 手順 5: 顧客の通話を無視するワークフローを作成する |
| on resume click.xaml | 手順 6: 顧客との通話を再開するワークフローを作成する |
| Too long to hold.uiform | 手順 7: 顧客の保留時間が長すぎる場合のフォームを作成する |
| check on hold times.xaml | 手順 8: 保留時間を確認するためのワークフローを作成する |
| on ignore click.xaml | 手順 9: 保留中の通話を無視するワークフローを作成する |
| on switch cliked.xaml | 手順 10: 保留中の通話に切り替えるワークフローを作成する |
手順 1: Main ワークフローを作成する
このワークフローは、プロジェクトのエントリ ポイント、およびすべてのトリガーを開始するワークフローを表します。
-
[データ テーブルを構築] アクティビティを追加し、次の列が含まれるテーブルを構築します。
- 発信者 (
String) – 顧客の電話番号を保存します。 - Since (
DateTime) – 顧客からの電話に応答した時間を保存します。 - 無視 (
Boolean) - 顧客の問い合わせが無視されたかどうかを記録します。
- 発信者 (
-
このデータ テーブルを
callersという名前のグローバル変数に格納します。 -
プロジェクト内のすべてのトリガーを同時に開始するために、[ローカル トリガーを実行] アクティビティを追加します。

手順 2: 顧客データのフォームを作成する
電話をかけてきている顧客、またはコンタクト センター担当者が通話中の顧客に関する情報を取得して表示するフォームを作成します (Customer Data)。
-
Studio の [デザイン] リボンから新しいフォーム ファイルを作成します。名前を Customer Data とします。
-
電話をかけてきている顧客の名前、ID、支払ステータスを保持する 3 つの ラベル/ヘッダー コンポーネントを追加します。これらを以下のように編集します。
- 最初のラベル/ヘッダー - [コンテンツ] フィールドに「読み込み中...」と入力し、[プロパティ名] フィールドでプロパティ名を
customerNameに設定します。 - 2 番目のラベル/ヘッダー - [コンテンツ] フィールドに「発信者 ID:」と入力します。[プロパティ名] フィールドで、プロパティ名を
callerIdに設定します。 - 3 番目のラベル/ヘッダー – [コンテンツ] フィールドに「Payment Status: Loading... (支払ステータス: 読み込み中...)」と入力し、プロパティ名を
paymentStatusに設定します。
- 最初のラベル/ヘッダー - [コンテンツ] フィールドに「読み込み中...」と入力し、[プロパティ名] フィールドでプロパティ名を
-
特定のアクション イベントをトリガーする 6 つのボタン コンポーネントを追加します。この例では、以下のアクション イベントのボタンを作成します ([アクション] ドロップダウンを使用)。
- パスワードを変更
- Reset 5G
- Service request
- Update plan
- Address Change
- Delay payment

手順 3: 着信通話用のワークフローを作成する
このワークフローは、顧客からの着信通話がある場合のシナリオを表します (on incoming call.xaml)。
-
着信通話アプリ イベントのアプリケーション イベント トリガーを追加します。
- イベントの種類 – 出現
- スケジュール モード – 順次
-
コンタクト センター担当者アプリにフォーカスして顧客に関する情報を取得するために、[アプリケーション/ブラウザーを使用] アクティビティを追加します。
- [ テキストを取得 ] アクティビティを追加し、電話番号を指定します。これを
incomingCallerという名前のグローバル変数に保存します。 - [ フォームを表示 ] アクティビティを追加し、以前に取得した情報を使用して Customer Data フォームを表示します。[インスタンス名] を「
incomingCaller」に設定します。Arguments コレクションで、顧客の電話番号を渡します。

- [ テキストを取得 ] アクティビティを追加し、電話番号を指定します。これを
-
この例では、Data Service エンティティに追加のクライアント データをクエリします。クエリされたデータを「
clientData」という名前のローカル変数に保存します。
-
取得したクライアント データを同じ Customer Data フォーム インスタンスに追加するために、[フォームの値を設定] アクティビティを追加します。この例では、名前、請求書番号、支払ステータスの引数を渡します。

-
フォーム インスタンスをパーソナライズするために、[フォームのプロパティを変更] アクティビティを追加し、クエリされたクライアント データに基づいて、実行時にタイトルを変更します。
- フォームを選択 – Customer Data
- タイトル –
clientData.FullName
手順 4: 現在の通話用のワークフローを作成する
このワークフローは、顧客からの電話に応答する場合と、顧客と現在通話している場合のシナリオを表します (on current call.xaml)。
-
現在の通話イベントの [アプリケーション イベント トリガー] アクティビティを追加します。
- イベントの種類 – 出現
- スケジュール モード – 同時接続
-
コンタクト センター担当者アプリにフォーカスして顧客に関する情報を取得するために、[アプリケーション/ブラウザーを使用] アクティビティを追加します。
- [ テキストを取得 ] アクティビティを追加し、電話番号を指定します。これを
callerという名前のグローバル変数に保存します。 - 現在通話している顧客をグローバル変数
callersに追加します。ここに Main ワークフローのデータ テーブルを格納します。

- [フォームをフォアグラウンドに移動] アクティビティを追加して [顧客データ] フォームを前面に表示させ、話している顧客に集中できるようにします。フォームのインスタンス名として
callerという名前のグローバル変数を追加します。
- [ テキストを取得 ] アクティビティを追加し、電話番号を指定します。これを
手順 5: 顧客の通話を無視するワークフローを作成する
このワークフローは、コンタクト センター担当者が顧客からの着信通話で [Ignore] をクリックする場合のシナリオを表します (on ignore call)。
-
[Ignore] ボタンに [クリック トリガー] アクティビティを追加します。

- マウス ボタン – 左
- トリガー モード – マウス ダウン
- スケジュール モード – 同時接続
-
通話を無視した顧客に割り当てられている顧客フォームを閉じるために、[フォームを閉じる] アクティビティを追加します。

手順 6: 顧客との通話を再開するワークフローを作成する
このワークフローは、コンタクト センター担当者が保留中だった顧客との通話を再開するシナリオを表します (on resume click)。
-
[Resume] ボタンに [クリック トリガー] アクティビティを追加します。

- マウス ボタン – 左
- トリガー モード – マウス ダウン
- スケジュール モード – 同時接続
-
コンタクト センター担当者アプリにフォーカスして、通話を再開した顧客に関する情報を取得するために、[アプリケーション/ブラウザーを使用] アクティビティを追加します。
- 電話番号を取得するために、[テキストを取得] アクティビティを追加します。
- 割り当てられた顧客データ フォームを最前面に戻すために、[フォームをフォアグラウンドに移動] アクティビティを追加します。[インスタンス名] として
callerグローバル変数を設定します。

手順 7: 顧客の保留時間が長すぎる場合のフォームを作成する
このワークフローは、コンタクト センター担当者の顧客の保留時間が長すぎる場合のシナリオを表します (Too long on hold.uiform)。
-
Studio の [デザイン] リボンから新しいフォーム ファイルを作成します。名前を Too long to hold とします。 デザイナー パネルでフォーム ビルダーが開きます。
-
ラベル/ヘッダーコンポーネントを追加して、顧客の保留時間が長すぎる場合のメッセージを表示します。[プロパティ名] を
messageに設定します。 -
コンタクト センター担当者が、保留時間が長すぎる顧客に切り替えたり、顧客の電話を無視したりできるようにするために、ボタン コンポーネントを 2 つ追加します。
- 最初のボタン – [ラベル] を [Switch] に設定し、[アクション] を [イベント] に設定します。
- 2 つ目のボタン – [ラベル] を [Ingore] に設定し、[アクション] を [イベント] に設定します。
-
[非表示] コンポーネントを追加し、[プロパティ名] を
callerに設定します。そこには、保留にしすぎた顧客の電話番号が表示されます。
手順 8: 保留時間を確認するためのワークフローを作成する
このワークフローは、顧客の保留時間を追跡します。
-
顧客の保留時間を絶えず確認するために、[トリガーを繰り返し] アクティビティを追加します。この例では、[間隔] を 5 秒に設定します。
-
顧客に関するデータを格納するために使用したグローバル変数
caller内で、顧客の保留時間を検索します。この例では、顧客の保留時間が 25 秒を超えると、[Too long on hold] フォームが表示されます。
手順 9: 保留中の通話を無視するワークフローを作成する
このワークフローは、コンタクト センター担当者が [Too long to hold] フォームで [Ignore] をクリックする場合のシナリオを表します。
-
[Ignore] ボタンがクリックされたときに他のアクティビティをトリガーするために、[フォーム イベント トリガー] アクティビティを追加します。
- フォームを選択 – Too long to hold
- イベント – Ignore のクリック
-
保留時間が長すぎる顧客の電話番号を取得するために、[フォームの値を取得] アクティビティを追加します。

-
手順 2 で取得した顧客の電話番号を
callersデータ テーブルに追加します。
-
[Ignore] ボタンがクリックされたら [Too long on hold] フォームを閉じるために、[フォームを閉じる] アクティビティを追加します。
手順 10: 保留中の通話に切り替えるワークフローを作成する
このワークフローは、コンタクト センター担当者が [Too long to hold] フォームで [Switch] をクリックする場合のシナリオを表します。
-
[Switch] ボタンがクリックされたときに他のアクティビティをトリガーするために、[フォーム イベント トリガー] アクティビティを追加します。
- フォームを選択 – Too long on hold
- イベント – Switch のクリック
-
保留時間が長すぎる顧客の電話番号を取得するために、[フォームの値を取得] アクティビティを追加します。
-
[Too long on hold] フォームを閉じるために、[フォームを閉じる] アクティビティを追加します。

-
コンタクト センター担当者アプリにフォーカスを移動して [Too long on hold] フォームから顧客との通話を再開するために、[アプリケーション/ブラウザーを使用] アクティビティを追加します。
-
以下を行う [条件分岐 (if)] アクティビティを追加します。
- 保留中の顧客がコンタクト センター担当者アプリで利用可能な場合、[クリック] アクティビティを使用して、コンタクト センター担当者アプリで [Resume] をクリックする。
- [項目を選択] アクティビティを使用して、切り替え先の顧客の電話番号を選択する。

-
結果
このオートメーションの結果は以下のようになります。
- コンタクト センターに同時に電話をかけているすべての顧客のフォームを表示する。
- 操作可能なフォームを表示する。たとえば、コンタクト センター担当者は、このフォームを使用して支払いを遅らせたり、特定の顧客の住所を変更したりできます。
- 現在通話中の顧客に基づいてフォームを表示する。このためには、その特定の顧客のフォームを前面に移動する必要があります。
- 顧客が電話を切った場合でも、フォーム ファイルを表示し続ける。これにより、顧客データが失われるのを防ぎます。
このオートメーションの動作を確認するには、以下のビデオをご覧ください。