コールと関連する Microsoft Dynamics のレコードを関連付ける
コンタクトセンターでCRM連携経由で対応を行っている場合、CRM変数を使用したワークフローにより、対応後の処理を自動化することが可能です。例えば、電話対応中に、エージェントは関連するケース、タスク、または連絡先を表示することができます。 エージェントが電話の情報を手動で入力したり、通話記録をその他関連レコードにリンクさせたりする必要はなく、ワークフローを起動する前に、コミュニケーションウィジェットで関連するレコードにチェックを入れるだけで済みます。これにより、ワークフローが実行され、エージェントが選択済みのすべての関連レコードへのリンクを含む、情報が完全に記入された通話記録がCRMに作成されます。
前提条件
まだ設定がお済みでない場合は、 Microsoft Dynamics 統合 の設定を済ませておいてください。
重要:エージェントがインタラクション中に関連レコードを表示・選択できるようにするには、統合で Communicatorウィジェットを使用する必要があります。従来の ユニバーサル・リピーターではなく、Communicator Widgetを使用する必要があります。を使用してはなりません。そのため、 CIFアプリ のチャンネルURLは、以下の形式である必要があります。
https://<TENANTDOMAIN>/agent/communicator/adapters/msdyn365.html?crmDomain=org<ID>.crm.dynamics.com
です。例:
https://example.brightpattern.com/agent/communicator/adapters/msdyn365.html?crmDomain=org12345678.crm.dynamics.com
ステップ 1. インバウンド音声サービスの設定
インバウンド音声サービスの設定例、テンプレートからのシナリオ、およびシナリオエントリーについては、以下を参照してください。 インバウンド音声サービスの設定を参照してください。
- Contact Center 管理者にログインし、「サービスとキャンペーン」に移動してください。
- CRMレコードを保存したいサービス(例:サポートホットライン)を設定します。
重要:「プロパティ」タブで「dispositionを使用」を有効にすると、エージェントがACW中にワークフローをトリガーできるようになります。
- 「シナリオ」>「音声」に移動し、発信元と関連付けられた連絡先を識別するシナリオを作成または再利用します。詳細は 「シナリオの概要」 の「シナリオの概要」を参照してください。
- [シナリオエントリ] > [ダイヤルイン] に移動し、シナリオとサービスを関連付けるシナリオエントリーを作成してください。詳細については、 「ダイヤルイン」をご参照ください。

シナリオの概要

以下のテンプレートは、連絡先識別シナリオの例となります。クリックしてダウンロードしてください。 「連絡先の検索とスクリーンポップ」 シナリオテンプレートをダウンロードし、コンタクトセンターにインポートしてください。なお、このシナリオで定義されている $(D365.contactid) 変数は、 「ステップ 2. 電話およびレコードを処理するワークフローの作成」 で使用されます。
シナリオのロジックは以下の通りです:
- コールを受け付けます。
- 数秒間待機します。
- コールを応答します。
- Microsoft Dynamics アカウントの選択:目的の Microsoft Dynamics 統合を選択します。
- 変数の設定:isNewCaller を
falseに設定します。 - Microsoft Dynamics オブジェクトの検索:Microsoft Dynamics の「連絡先」テーブルで発信元の電話番号を検索し、発信元の連絡先 id を特定しようと試行します。

- 「オブジェクトの種類」ドロップダウンメニューから「連絡先」を選択し、「連絡先」テーブルを検索してください。
- 「クエリ」フィールドに、以下を入力してください:
$select=contactid&$filter=contains(telephone1,'$(item.from)') - 「レコードセット名」フィールドに、クエリの結果を格納する変数名(例:D365)を入力してください。連絡先 ID は $(D365.contactid) に格納されます。
- 「オブジェクトの種類」ドロップダウンメニューから「連絡先」を選択し、「連絡先」テーブルを検索してください。
- その電話番号を持つ連絡先が存在しない場合:
- 変数の設定:isNewCaller を
trueに設定します。 - Microsoft Dynamics オブジェクトの作成:この電話番号を持つ新規の連絡先を作成します。

- 「オブジェクトの種類」ドロップダウンメニューから「連絡先」を選択してください。
- 「オブジェクト ID の変数名」フィールドに「D365.contactid」と入力します。これにより、新規の連絡先か既存の連絡先かに関わらず、連絡先 ID が同じ変数に保存されるようになります。
- 現在の発信元の電話番号を、その連絡先のメイン電話番号として設定します。
注: シナリオの後半で、エージェントに新規連絡先の名前を入力するよう求められます。{ "telephone1": "$(item.from)" }
- 「オブジェクトの種類」ドロップダウンメニューから「連絡先」を選択してください。
- 変数の設定:isNewCaller を
- Microsoft Dynamics スクリーンポップ:先ほど検索または作成された連絡先をエージェントに表示します。いずれの場合も、連絡先 ID は変数 $(D365.contactid) に格納され、これは「オブジェクト識別子」フィールドによって参照されます。

- エージェントの検索
- 条件: isNewCaller が true に設定されているかどうかを確認します。

- コールを接続
- 終了
ステップ 2. 電話通話とレコードを処理するワークフローを作成する
次に、Microsoft Dynamics インスタンス内に新規の「電話通話」オブジェクトを作成してデータを設定し、その「電話通話」を、エージェントがインタラクションに関連があるとマークしたレコードにリンクさせるワークフローを設定する必要があります。サポートホットラインのインタラクションは CRM 統合経由で処理されるため、このワークフローでは次のような CRM 変数を使用できます。 $(associatedRecords)などのCRM変数を使用できます。クリックしてダウンロードします。 「レコードをコールに関連付ける」 のサンプルシナリオをクリックしてダウンロードし、コンタクトセンターにインポートするか、以下のステップに従って一から作成してください。
- 「ワークフロー」に移動し、左下の「ワークフローを追加」をクリックして、ワークフロービルダーを開きます。
- ワークフロービルダーの左上で、新規のワークフローに名前を付けます。
- ご希望の統合アカウントを選択してください。
- 現在のエージェントの Microsoft Dynamics ユーザー id を確認してください。
- ワークフローに「Microsoft Dynamics Search Object」ブロックを追加してください。

- [オブジェクトタイプ] フィールドに「systemusers」と入力し、[ユーザー (SystemUser)] テーブルを検索してください。
注: 「systemusers」は、Microsoft Dynamics における [ユーザー (SystemUser)] テーブルの EntitySetName です。詳細については、こちらをご覧くださいユーザー (SystemUser) テーブル/エンティティ参照 (Microsoft Dataverse)。
- [クエリ] フィールドを使用して、ユーザー (SystemUser) テーブルから現在のエージェントのユーザー id を検索します。その名前(ファーストネームと姓)は、 $(ユーザー.firstName) および $(user.lastName)に格納されているため、User (SystemUser) テーブルを検索して、現在のエージェントのユーザー ID を特定します。 にそれぞれ格納されています。
- 「レコードセット名」フィールドに、「agent」などのわかりやすい変数名を入力してください。エージェントのユーザー ID は $(agent.systemuserid) に格納されます。
$select=systemuserid&$filter=contains(lastname,'$(user.lastName)')&$filter=contains(firstname,'$(user.firstName)')
- ワークフローに「Microsoft Dynamics Search Object」ブロックを追加してください。
- Microsoft Dynamics からアクセスできるように、コール時刻、日付、および duration をフォーマットする変数を設定します。詳細については、Bright Pattern のドキュメント「 ワークフロー変数 および 組み込み関数に関するBright Patternのドキュメントをご参照ください。
- 変数名前 time_start、値
=formatdatetime(applytimezone((now()-$(duration)),"America/Los_Angeles"), "h:mm a")を持つ「変数の設定」ブロックを追加します。 これにより、コールセンターのタイムゾーンにおけるコールの開始時刻が保存され、使用される。 「電話通話」 オブジェクトの「Subject」フィールドで使用されます。
注:$(duration) はコール時間を秒単位で取得します。now()、applytimezone()、および formatdatetime() は、時刻情報を取得および設定するための組み込み関数です。 ご自身のワークフローでは、「America/Los_Angeles」を「Area/Location」の形式で関連するタイムゾーンに置き換えてください。
- 変数名前「time_end」、値「
=formatdatetime(applytimezone(now(),"America/Los_Angeles"), "yyyy-MM-dd'T'HH:mm'Z'")」の「変数の設定」ブロックを追加してください。 これにより、Phone Call オブジェクトの ActualEnd フィールドで必須とされる通り、コール終了日時が ISO 8601 フォーマットで保存されます。
注:「America/Los_Angeles」を、「Area/Location」のフォーマットで適切なタイムゾーンに置き換えてください。
- 変数名「duration_min」、値「
=($(duration)/60)」の「変数の設定」ブロックを追加します。これにより、Phone Call オブジェクトの ActualDurationMinutes フィールドで必須とされる通り、通話時間が分単位で計算されます。
- 変数名前 time_start、値
- このホットラインコール用に、新規の「Phone Call」CRMオブジェクトを作成してください。
- 「Microsoft Dynamics オブジェクトの作成」ブロックを追加してください。

- [オブジェクトの種類] フィールドに「phonecalls」と入力し、新規の Phone Call オブジェクトを作成します。
注: 「phonecalls」は、Microsoft Dynamics における Phone Call (PhoneCall) テーブルの EntitySetName です。詳細については、こちらをご覧くださいPhone Call (PhoneCall) テーブル/エンティティのリファレンス (Microsoft Dataverse)。
- 「オブジェクト id の変数名」フィールドに、わかりやすい名前を入力してください。この例では、「call_new」を使用します。
- 「JSON」フィールドに、電話通話レコードの関連データを入力し、以下のフォーマットで顧客の連絡先 id およびエージェントのユーザー id にバインドしてください。
注: このフィールドでは'、上記で定義したシナリオの $(D365.contactid) 変数が使用されます'。participationtypemask: 1 は発信元を、2 は宛先'を示します'。directioncode: false はインバウンドを、true はアウトバンドを意味します。{ "phonenumber": "$(item.from)", "件名": "$(time_start) に新規のホットラインコールが発生しました", "説明": "$(disposition)\n$(メモ)", "directioncode": false, "actualdurationminutes": "$(duration_min)", "actualend": "$(time_end)", "phonecall_activity_parties": [ { "participationtypemask": 2, "partyid_systemuser@odata.bind": "/systemusers($(agent.systemuserid))" }, { "participationtypemask": 1, "partyid_contact@odata.bind": "/contacts($(D365.contactid))" } ] }
- 「Microsoft Dynamics オブジェクトの作成」ブロックを追加してください。
- 電話通話を完了としてマークします。
- Microsoft Dynamics Update Object ブロックを追加します。

- 「オブジェクトの種類」フィールドに「phonecalls」と入力してください。

- 「オブジェクト識別子」フィールドに「$(call_new)」と入力し、上記ステップ 6 で作成されたオブジェクトを指定します。
- 「JSON」フィールドで、更新します。
- 「オブジェクト識別子」フィールドに「$(call_new)」と入力し、上記ステップ 6 で作成されたオブジェクトを指定します。 状態 および ステータスコードをstateおよび を次のように更新してください:
{ "statecode": 1, "statuscode": 2 }
- Microsoft Dynamics Update Object ブロックを追加します。
- エージェントは、コールに関連付けるレコードを複数選択できるため、配列内のレコード数をチェックし、それぞれを「Phone Call」オブジェクトに紐付けるループを設定する必要があります。 複数のレコードが選択済の場合、ワークフローは配列内の各レコードに対してループを1回ずつ実行します。レコードが1つだけ選択済の場合、ワークフローはループを1回実行した後、停止します。レコードが選択されていない場合、ワークフローはループを完全にスキップします。
- 変数名「i」、値「
0」の「変数の設定」ブロックを追加します。これにより、インデックス0の最初のレコードから順に配列を順次処理するためのインデックス変数が作成されます。
- $(i) の現在のインデックスが、$(associatedRecords) JSON 配列の長さよりも小さいかどうかを確認する「If」ブロックを追加します。

- 「配列の走査」ブランチ内に、Microsoft Dynamics の「オブジェクトの作成」ブロックを追加します。現時点では、内容を空のままにしておきます。
- 「オブジェクトの作成」ブロックの下に、変数名前「i」、値「
=$(i)+1」の「変数の設定」ブロックをもう 1 つ追加してください。これにより、インデックス変数が 1 ずつ増加します。 - 「変数の設定」ブロックの下に、「Goto」ブロックを追加してください。 右端のパネルで、「If」ブロックを選択し、ループの先頭に戻るように設定します。
- 変数名「i」、値「
- 手順 8c で追加した Microsoft Dynamics の「オブジェクト作成」ブロックに戻り、「電話通話」と配列内の現在のレコードとの間に「接続」を作成します。

- [オブジェクトの種類] フィールドに「接続」と入力し、新規の接続レコードを作成します。
- [オブジェクト ID の変数名] フィールドに、わかりやすい名前を入力します。この例では、「conn_new」を使用します。
- 「JSON」フィールドで、「record1」を「電話通話」に、「record2」を現在関連付けられているレコードにバインドし、接続ステータスを「アクティブ」に設定してください。
注: 接続のプロパティに関する詳細については、以下を参照してください接続テーブル/エンティティ参照 (Microsoft Dataverse)。{ "record1id_phonecall@odata.bind": "/phonecalls($(call_new))", "record2id_$(associatedRecords.$(i).objectType)@odata.bind": "/$(associatedRecords.$(i).objectType)s($(associatedRecords.$(i).objectId))", "statecode": 0, "statuscode": 1 }
- [オブジェクトの種類] フィールドに「接続」と入力し、新規の接続レコードを作成します。
- ワークフローを終了するには、If ブロックの下、かつ配列のトラバーサル分岐の外側に Exit ブロックを追加してください。

- ページ下部の「保存」ボタンをクリックしてください。
ステップ 3. ワークフローエントリを作成する
あとは、ワークフローをサポートホットラインサービスに経由で接続するだけ ワークフローエントリを介してワークフローをサポートホットラインサービスに接続し、1つ以上のトリガーを設定するだけです。
- 新規ワークフローの [ワークフローエントリ] タブをクリックしてください。
- ワークフローエントリにわかりやすい名前を付けます。
- ドロップダウンメニューから、先ほど作成したサービスを選択してください。

- 1つ以上のワークフロートリガーを設定してください。詳細については、 「トリガー」 の「ワークフロービルダーの概要」を参照してください。

- [エージェントが disposition を指定してインタラクションを完了] を選択すると、通話に参加した各エージェントに対してワークフローが実行され、エージェントセグメントごとに通話レコードが作成されます。
- 「最後の disposition 結果でインタラクションが終了したとき」を選択すると、インタラクションが完了した時点でこのワークフローが実行され、インタラクション全体に対して単一のコールオブジェクトが作成されます。
- 2番目のドロップダウンメニューから希望のディスポジションを選択するか、「任意のディスポジション」を選択すると、サポートホットラインサービスへのコール後、いつでもワークフローが実行されます。
- [エージェントが disposition を指定してインタラクションを完了] を選択すると、通話に参加した各エージェントに対してワークフローが実行され、エージェントセグメントごとに通話レコードが作成されます。
- [適用] をクリックしてください。
ステップ 4. ワークフローのトリガー
- サポートホットラインサービスに割り当てられたエージェントが「受付可能」状態になります。
- エージェントが着信を受け付けます。インタラクション中、エージェントは連絡先、ケース、タスク、アカウントなどの関連レコードを表示できます。これらのレコードは、ウィジェットの [レコード] タブに表示されます。

- 対応が終了した後、エージェントは以下の操作を行うことができます:
- [完了] を押して送信します。
Microsoft Dynamics での接続の表示
このワークフローによって作成された関連付けは、「電話通話」レコードおよびエージェントが選択済みのレコードで表示できます。






