コンタクト センター AI プラットフォーム(CCAI プラットフォーム)は、ServiceNow CRM との統合を提供します。
ServiceNow デベロッパー設定
推奨される ServiceNow の最小バージョン要件: Tokyo patch 1
基本認証ユーザーを設定する
ServiceNow 管理者アカウントで 2 段階認証プロセスが有効になっており、そのユーザーに関連付けられている可能性があります。そのため、CCAI Platform で管理者権限を取得するために使用することはできません。この目的で ServiceNow にユーザー アカウントを作成する必要があります。
認証情報を使用して基本ユーザーを作成します。
[User] > [New] に移動します。
詳細を入力し、[Web service access only] を選択します。
ユーザー ID とパスワードをメモしておきます。
ServiceNow で必要なロール
ServiceNow のデフォルト ロールは、プラットフォーム内で特定のアクセスと権限を提供するように事前構成されています。管理者は、特定の権限を付与するロールを作成して構成できます。このロールは、そのロールを持つユーザーとグループが実行できる操作を制御します。
この統合を行うには、ServiceNow で次のロールが必要です。
user_admin: このロールは、ServiceNow インスタンス内のユーザー、グループ、ロケーション、会社を管理する必要がある管理者を対象としています。
sn_incident_read: このロールは、インシデント管理アプリケーションとその関連機能に対する読み取り専用アクセス権を付与します。ユーザーはインシデント レコードを表示できます。
sn_incident_write: このロールは、インシデント管理アプリケーションとその関連機能への書き込みアクセス権を付与し、ユーザーがインシデント レコードを作成および変更できるようにします。
personalize_dictionary: このロールを使用すると、特定のビジネス要件に合わせて辞書のエントリとラベルをカスタマイズできます。
function_field_admin: このロールは、レポート デザイナー内で関数フィールドの作成、編集、表示を行う必要があるユーザーを対象としています。プラットフォーム リストまたはフォームから関数フィールドを作成または削除する機能は提供されません。
インスタンス ビューを構成する
以降のセクションでは、インスタンス ビューに必要な構成の変更について説明します。
(省略可)お気に入りを追加する
お気に入りは、ServiceNow インスタンス内で最もよく使用するリンクをすばやく見つける方法です。お気に入りを追加するには、ナビゲーション パネルのフィールドの横にあるスターアイコンを選択します。後でナビゲータ パネルをフィルタして、お気に入りのみを表示する場合は、ナビゲータ パネルのフィルタ ナビゲータ フィールドのすぐ下にある星アイコンを選択します。
便利な「お気に入り」の例:
- インシデント: カスタム CRM のレコードへの関連付け。
- ユーザー: カスタム CRM のアカウントとの関連付け。
- Rest API Explorer: API をテストするのに適した方法です。
カスタム フィールドを手動で追加する
変更するオブジェクト ビューの左上にある展開アイコン(3 本の横線)を選択します。この操作は、[セルフサービス ビュー] または [デフォルト ビュー] で行うことができます。
メニューで [Configure] > [Form Design] を選択して、フォーム デザイナーを開きます。
左側の列で [Field Types] タブを選択します。
追加するカスタム フィールドのタイプをドラッグします。
フィールド タイプを目的のセクションにドロップしたら、歯車アイコンを選択して [設定] を表示します。
ウィンドウ内でラベルを変更し、名前をメモします。この名前は、CCAI Platform アプリの設定で使用します。
画面の右上にある [保存] を選択します。
セッション データを CRM にマッピングする
Dialogflow を使用して CCAIP から適切なセッション データをマッピングし、次のパラメータを使用する必要があります。
仮想エージェントのデータ
{
"ujet": {
"session_variable": {
"capture_target": "payload",
"payload": {
"value_one": "$session.params.payload_value_one"
};
"capture_type": [ "comment", "field" ] // optional, default of ["comment"]
}
}
}
メタデータ
https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dsys_user https://INSTANCE.service-now.com/api/now/table/sys_dictionary?sysparm_query=name%3Dincident
ラベル: column_label
API キー: element
カスタム フィールドは、sys_user または incident のレスポンスの標準フィールドと同じレベルにあります。
CCAI プラットフォームから CRM にファイルをアップロードする
https://INSTANCE_URL.service-now.com/api/now/attachment/upload
メソッド: POST
リクエスト データ形式: property
レスポンス データの場所: data.result
タイプ: Multi-part form
添付ファイルのタイプ: Attachment Url
添付ファイルの URL: download_link
パラメータ: table below
リクエストの例:
{
file: FILE_DATA,
table_name: incident,
table_sys_id: RECORD_ID
}
エージェント アダプタを統合する(カスタムフォーム)
次の手順では、ServiceNow インスタンスでエージェント アダプタと [クリックして通話] 機能を有効にするプロセスについて説明します。
OpenFrame をインストールして構成する
[All] > [System Applications] > [All Available Applications] > [All] に移動します。
OpenFrame を検索します。
OpenFrame をインストールします。
インストールが完了したら、[すべて > OpenFrame > 構成] に移動します。
URL を使用して構成を作成します。Servicenow インスタンス内に複数の構成がある場合、ユーザーが新しく作成された構成にアクセスできないことがあります。グループと OpenFrame 構成オーダーのリストを確認して、ユーザーが使用している構成を特定します。
検索に
sys_properties.listと入力します。glide.ui.concourse.onmessage_enforce_same_origin_whitelistを編集します。新しい URL を値のリストに追加します。
sn_openframe.cross.origin.accessを編集します。値のリストに
autoplayを追加します。
ユーザー向けに次世代 UI エクスペリエンスを有効にする
ナビゲーション バーに「
sys_properties.list」と入力し、Enter キーを押します。システム プロパティ
glide.ui.polaris.experienceを true に設定します。システムのユーザー設定
glide.ui.polaris.useを false に設定します。ユーザーのユーザー設定
glide.ui.polaris.useを true に設定します。(ユーザー設定の行を作成できます)。
システム プロパティを更新する
ナビゲーション バーに「
sys_properties.list」と入力して、Enter キーを押します。glide.ui.concourse.onmessage_enforce_same_origin_whitelistを編集します。URL を値のリストに追加します。複数の値を指定する場合は、カンマで区切る必要があります。
sn_openframe.cross.origin.accessを編集します。値のリストに自動再生を追加します。
glide.ui.polaris.experienceを編集します。有効にすると一部の機能が動作しないため、false に変更します。
フォームの上部に Click-to-Call を追加する
[System UI] > [UI Actions] に移動します。
[Create New Action] を選択します。
図に示すフォームで、このクリック トゥ コールが属するテーブルを選択します。

連絡先またはユーザーを参照するフォームの場合、
g_form.getReferenceAPI を使用してユーザーの電話番号にアクセスします。カスタム テーブルの場合、参照 ID と結果の属性が異なることがあります。CCAI プラットフォームとの通信は同じであるため、ペイロードとデータ構造は次のものと同一である必要があります。function clickToDial() { var user = g_form.getReference('caller_id',function(res) { var phone = res.phone || res.mobile_phone; var payload = {"name": "clicktodial", "number": phone}; var data = {"payload": payload, "method": "openframe_communication" }; CustomEvent.fireAll("openframe_request", data); }); }フォーム内に電話番号が含まれているフォームの場合は、
g_form.getValueAPI を使用して関連する値を取得します。これは、Users テーブルの UI アクションの例です。カスタム テーブルの場合、フォーム フィールドの名前が異なることがあります。CCAI プラットフォームとの通信は同じであるため、ペイロードとデータ構造は次のものと同一のままにする必要があります。function clickToDial() { var phone = g_form.getValue('phone') || g_form.getValue('mobile_phone'); var payload = {"name": "clicktodial", "number": phone}; var context = {"payload": payload, "method" : "openframe_communication" }; CustomEvent.fireAll("openframe_request", context); }
参照の横に Click-to-Call を追加
連絡先への参照の横にある通話ボタンは、フォーム内で編集する必要があります。フィールドを右クリックして、[Configure Dictionary] に移動します。属性の場合は、
ref_contributions値にshow_phoneまたはshow_phone_customer_serviceのいずれかの値を追加します。UI マクロで、
show_phoneとshow_phone_customer_serviceを編集します。次のように置き換えます。
変更前:
var task = {"entity": p.attr('data-task-table'), "query" :"sys_id="+p.attr('data-task-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-task-value'),"label":p.attr('data-task-label')};
var company = {"entity": p.attr('data-company-table'),"query":"sys_id="+p.attr('data-company-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-company-value'),"label":p.attr('data-company-label')};
var caller = {"entity": p.attr('data-caller-table'),"query": "sys_id="+p.attr('data-caller-id')+"$[AMP]sysparm_view="+p.attr('data-task-view'),"value":p.attr('data-caller-value'),"label":p.attr('data-caller-label')};
var callContext = [];
callContext.push(task);
callContext.push(company);
callContext.push(caller);
var metaData = {"phoneNumber":p.attr('data-caller-phone'),"taskId":p.attr('data-task-id')};
var data = {"metaData":metaData , "data": callContext};
var payload = {"type": "OUTGOING_CALL", "data" : data};
var createInteractionData ={};
createInteractionData.interactionSysId = -1;
createInteractionData.direction = 'outbound';
createInteractionData.context_document = p.attr('data-task-id');
createInteractionData.context_table = p.attr('data-task-table');
createInteractionData.account = p.attr('data-company-id');
if(p.attr('data-caller-table') === 'customer_contact')
createInteractionData.contact = p.attr('data-caller-id');
createInteractionData.opened_for = p.attr('data-caller-id');
var ga = new GlideAjax('sn_openframe.OpenFrameAjaxUtility');
ga.addParam('sysparm_name', 'createInteractionWithPropertyCheck');
ga.addParam('context', JSON.stringify(createInteractionData));
ga.getXML(function(serverResponse) {
var result = serverResponse.responseXML.getElementsByTagName("result");
var output = JSON.parse(result[0].getAttribute("data"));
if(output.status == "success"){
var interaction = {"entity": "interaction", "query" :"sys_id="+output.fields.interactionSysId, "value":output.fields.number, "label":"Interaction", "display":false};
payload.data.data.push(interaction);
}
var context = {"payload": payload, "method" : "openframe_communication" };
jslog("context with interaction : "+ JSON.stringify(context));
CustomEvent.fireAll("openframe_request", context);
});
新規:
var phone = p.attr('data-caller-phone')
var payload = {"name": "clicktodial", "number": phone};
var data = {"payload": payload, "method": "openframe_communication" };
CustomEvent.fireAll("openframe_request", data);
CRM の設定
次の手順では、CCAI Platform ポータルを使用して API を ServiceNow に接続する方法について説明します。
CCAI Platform ポータルで、[設定] > [デベロッパー設定] > [CRM] に移動します。
[エージェント プラットフォーム] セクションで、[ServiceNow] を選択します。
[ServiceNow Domain] フィールドに ServiceNow ドメイン情報を入力します。これは必要に応じてデベロッパー インスタンスまたはベンダー インスタンスになりますが、インスタンスに直接関連付けられており、ServiceNow ポータル ウェブアドレスの URL の最初の部分(
https://{your instance}.servicenow.com)になります。[ServiceNow Cloud Selection] フィールドで、基本的なチケット タイプとして
Incidentを選択します。Customを選択すると、追加のオプションが表示されます。インシデントはタスク テーブルの拡張機能です。カスタム オブジェクトはインシデントの拡張機能である必要があります。[Authentication Credentials] フィールドに、ユーザー名とパスワードを入力します。
[Cloud Selection Field] のタイプとして
Incidentを選択した場合、次のフィールドが表示されます。- Lookup Account Object には、
Object Type、Phone Number lookup fields、Phone number primary fieldの 3 つのプルダウン フィールドが含まれています。
- Lookup Account Object には、
[Cloud Selection Field] のタイプとして
Customを選択した場合、次のフィールドが表示されます。- Lookup Record Object(レコード オブジェクトの検索):
- ベース レコード オブジェクト タイプ:
taskまたはincidentのテーブルタイプを選択します。 - レコード オブジェクト タイプ: インシデント テーブルが拡張されている場合、このフィールドにデータが入力されます。必要に応じて選択できます。
- ベース レコード オブジェクト タイプ:
- Lookup Account Object には、
Object Type、Phone Number lookup fields、Phone number primary fieldの 3 つのプルダウン フィールドが含まれています。
- Lookup Record Object(レコード オブジェクトの検索):
カスタム ユーザー ID フィールド: モバイルまたはウェブ SDK セッションのカスタム ユーザー検索フィールドを有効にする場合は、このチェックボックスをオンにします。
電話番号の形式: 電話番号の表示に使用する形式を選択できます。
セッション メタデータ ファイル: このチェックボックスをオンにすると、セッション メタデータが CRM レコードに添付されます。
[保存] をクリックして、選択内容を保存します。[カスタム ユーザー ID フィールド] チェックボックスをオンにすると、レコードのカスタム フィールドを作成するオプションが表示されます。これにより、各 ServiceNow インシデントの下部にある [解決コード] セクションと [解決メモ] セクションの下に、カスタム フィールドのタブが追加されます。
レコードのカスタム フィールド
これらは、フォーム デザイナーで ServiceNow インスタンス用にすでに作成されているカスタム フィールドです。他のカスタム フィールドの作成方法については、ServiceNow のドキュメントの ServiceNow CRM の設定のセクション カスタム フィールドを手動で追加するをご覧ください。
| フィールド | タイプ | 定義 |
|---|---|---|
u_ujet_custom_field_after_call_work |
文字列 | 通話後の作業時間 |
u_ujet_custom_field_call_duration |
文字列 | 通話時間 |
u_ujet_custom_field_comm_id |
Integer | 連絡先の種類に応じた通話またはチャットの ID |
u_ujet_custom_field_rating |
Integer | CSAT スコア |
u_ujet_custom_field_email_via_web |
文字列 | ウェブから送信されたメール |
u_ujet_custom_field_feedback |
文字列 | フィードバック |
u_ujet_custom_field_from_phone_number |
文字列 | 発信者の電話番号 |
u_ujet_custom_field_hold_duration |
文字列 | 合計保留時間 |
u_ujet_custom_field_menu_path |
文字列 | メニュー選択 |
u_ujet_custom_field_queue_name |
文字列 | キューの名前 |
u_ujet_custom_field_session_type |
文字列 | セッション タイプ |
u_ujet_custom_field_verification |
正しい / 誤り | 確認が完了したことを確認する |
u_ujet_custom_field_wait_time |
文字列 | 合計待機時間 |
OAuth を設定する
OAuth を構成するには、ServiceNow で OAuth アプリケーションを作成する手順を行います。次に、[Developer Settings > CRM > Authentication Method] で認証情報(OAuth クライアント ID と OAuth クライアント シークレット)を入力します。
Service Now で OAuth アプリケーションを作成する
ServiceNow アカウントで、[All] > [System OAuth] > [Application Registry] に移動します。
OAuth アプリケーションを作成し、[Create an OAuth API endpoint for external clients] を選択します。
次のフィールドを構成します。
名前: 一意の名前を入力します。
クライアント ID: クライアント ID は ServiceNow OAuth サーバーによって自動的に生成されます。
クライアント シークレット: OAuth アプリケーションのクライアント シークレットです。自動生成する場合は空欄のままにします。
リフレッシュ トークンの有効期間: リフレッシュ トークンが有効になる時間(秒単位)。
アクセス トークンの有効期間: アクセス トークンが有効な時間(秒単位)。
Redirect URL: 環境 URL とサブディレクトリを入力します。例:
https://servicenow.yourcompany.co/v1/servicenow/oauth_callbackEnforce Token Restriction: アクセス トークンの使用を、ServiceNow ドキュメントに記載されている REST API アクセス ポリシーで定義されている API に制限します。このオプションの選択を解除すると、他の REST API でアクセス トークンを使用できるようになります。
[送信] をクリックします。
アプリケーションを作成したら、レコードに戻り、クライアント ID と新しく作成されたクライアント シークレットを取得します。
デベロッパー設定で設定を更新する
[Developer Settings] > [CRM] に移動します。
設定が入力され、前の手順に沿って構成されていることを確認します。
認証方法で [OAuth] をクリックします。
OAuth クライアント ID と OAuth クライアント シークレットを入力します。(上記の手順 5 を参照)。
[保存] をクリックします。
[link credentials] をクリックします。
Virtual Agent のカスタム フィールド マッピング
Virtual Agent を使用している場合は、[Custom Field Mappings] 画面でこのフィールドを構成します。これにより、バーチャル エージェントの変数をバーチャル エージェント セッションのペイロードから ServiceNow に転送できます。変数名には任意の文字列を使用できます。ここに記載されているフィールド ラベルは一例です。
[Custom Field Mappings] 画面で、最初のバーチャル エージェントの構成で使用したペイロード定義によって作成された変数と、ServiceNow 内の関連する変数との間の接続を構成します。
| フィールド マッピングのタイトル | CRM フィールド ラベル | カスタムデータ フィールドのラベル |
|---|---|---|
| 仮想エージェントのフィードバック | ccaip_custom_field_incident_feedback |
va_feedback |
その他の設定を構成する
CCAI Platform を ServiceNow インスタンスに適切に統合するためのその他の設定は、[設定] プルダウン メニューにあります。各セクションの設定の詳細については、次のリストのリンクを参照してください。
テスト出力
CCAI Platform ポータルの画面上部にある該当するボタンをクリックして、通話フローとチャットフローの機能を確認できるようになりました。このテストを実行する際は、ポップアップ ブロッカーが無効になっていることを確認してください。
ServiceNow でインシデントが作成され、通話またはチャットの連絡先がインシデントの [アクティビティ] セクションに表示されます。この情報はインシデントのコメントではなく、作業メモとして表示されるようにする必要があります。これにより、このバックエンド アクティビティはお客様に表示されなくなります。
ケースの説明には「Call using CCAI Platform」または「Chat using CCAI Platform」が自動的に入力されますが、エージェントが更新する必要がある場合があります。
通話またはチャットの結果に満足したら、解決コードとメモを入力(ServiceNow の解決コードとメモのフィールドが構成されている場合)して、ケースを閉じます。
ケースがクローズされたことを確認するには、ブラウザの back ナビゲーション ボタンをクリックする必要がある場合があります。ServiceNow インスタンスでは、ケースを解決すると自動的にクローズされ、顧客レコード ページに移動するのが想定される動作です。