整合 Webex 聯絡中心與服務新 (版本 1 — 舊版)

list-menu意見回饋?
將 Webex 聯絡中心與 ServiceNow CRM 主控台整合時,您可以從 ServiceNow 中啟動 Webex 聯絡中心桌面。

先決條件

軟體電話介面支援的最小大小為 500px。 任何低於 500 像素的值都可能導致顯示或功能問題。

在將 Webex Contact Center 與 ServiceNow CRM 控制台整合之前,請確保您具備以下各項:

  • 訪問 Webex Contact Center。

  • 位於 https://admin.webex.com 和 Webex Contact Center Management Portal 的管理員存取權限。 Management Portal 的 URL 為您所在的地區所特有。

  • 可存取桌面的代理。 桌面的 URL 是您所在地區特有的。

  • 代理存取內容安全原則允許清單中新增的以下域:

    • *.service-now.com

    有關如何定義允許清單的詳細資訊,請參閱文章 Webex Contact Center 的安全設置。

  • 一個 ServiceNow 開發人員入口網站帳戶。 若要創建帳戶,請 轉到 https://developer.servicenow.com/dev.do 處的 ServiceNow 開發人員門戶,然後按兩下 「註冊並開始構建」。

  • 在 https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 存取以下檔案:

    • ServiceNow 更新集 (XML)

    • ServiceNow Contact Center 桌面排列 (JSON)

  • Webex Contact Center 支援的 ServiceNow 版本是溫哥華,猶他州,托基亞,華盛頓和世外桃源。 有關更多資訊,請參見 Webex Contact Center 與 ServiceNow 集成。

請遵循以下兩種方法之一:

  • 對於開發人員實例,我們建議按照開發人員實例指南中的步驟操作。
  • 如果您擁有企業許可實例,請遵循企業許可實例的準則。

我們不建議將企業許可的應用與開發人員沙盒實例混合使用。

CRM 連接器不支援聊天和電子郵件等數位通道。 這適用於使用這些連接器的所有 CRM 集成。 請相應地規劃您的部署和客戶參與工作流。

以下部分介紹了為開發人員實例安裝 ServiceNow 連接器的步驟。

1

登錄到您的 ServiceNow 開發人員門戶帳戶並 打開管理 控制台。

2

在帳戶功能表的我的 實例 區域 中,單擊 開始構建 。

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

在開發人員實例上,從視窗左上角的 篩選器導航器 欄位中,導航到 外掛程式。

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

搜索標題 為 Openframe 的 Openframe 外掛程式。 您可能需要捲動清單。

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

按兩下 安裝 以安裝 Openframe 外掛程式。

6

在“啟動外掛程式 ”對話框中,按兩下 “啟動”。

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

外掛程式啟動完成後,按兩下 外掛程式啟動 對話框中的關閉並重新載入表單 。

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

要驗證外掛程式啟動,請從視窗左上角的 過濾器導航器 欄位中導航到 OpenFrame。

9

單擊 配置 並確保 OpenFrame 外掛程式出現在 OpenFrame 配置 清單中。

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

下載 github 儲存庫上最新的系統更新集 XML 檔:https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow。

檔案名稱:webexcc-servicenow-update-setV (X).XML

Github repo screenshot for Webex Contact Center CRM integrations – ServiceNow.

2

在 ServiceNow 實例上,從視窗左上角的「 篩選器導航器 」欄位中,導航到 “系統更新集 ”> “要提交的更新集”。

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘Update set’ and ‘Update Sets to Commit’ option highlighted.

3

單擊“ 從 XML 導入更新集”連結。

ServiceNow developer instance on the Update Sets results page with ‘Related Links: Import Update Set from XML’ highlighted.

4

單擊“ 選擇檔”,選擇“系統更新集 XML”檔,然後按兩下“上傳 ”。

ServiceNow developer instance import XML screen.

ServiceNow developer portal retrieved update sets list.

更新集將顯示在 「檢索到的更新集 」清單中,並且處於 「已載入」 狀態。
5

從「 檢索到的更新集 」清單中,按兩下更新集檔名 (連結) 以打開更新集。

ServiceNow developer portal retrieved update sets list for an updated file.

6

在視窗的右上角,按兩下 預覽更新集 以檢查更新集是否存在問題。

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Preview Update Set’ button highlighted.

7

預覽完成後,按兩下 更新集預覽對話框中的關閉 。

ServiceNow developer portal with the update set preview success notification.

8

按兩下 提交更新集”

ServiceNow developer portal retrieved update sets list for an updated file with the ‘Commit Update Set’ button highlighted.

9

完成更新集提交後,按兩下「 更新集提交 」對話框中的「關閉 」。

ServiceNow developer portal with the update set commit success notification.

1

在視窗左上角的「過濾器導航器 」欄位中,鍵入 sys_properties.list 並按 Enter 鍵。

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

在「 系統屬性 」頁上,按更新日期對屬性進行排序。 確保可以看到以下 Webex Contact Center 屬性:

ServiceNow developer instance system properties page.

3

按兩下 agentdesktop_url 以打開「 系統屬性 agentdesktop_url 」頁。

4

在「值 」 欄位中,根據操作區域輸入 Webex Contact Center 桌面的 URL。

ServiceNow developer instance system property details for agentdesktop_url.

5

按一下 「更新」 以儲存變更。

6

(選用)若要更改“活動”表名稱,請根據需要編輯 webexccactivitytable 屬性。

在「系統屬性 」頁上,按一下 webexccactivitytable。

視需要變更「 值 」欄位。

ServiceNow developer instance system property details for webexactivitytable.

7

(選用)透過以下方式新增使用者群組:

  1. 在視窗左上角的「過濾器導航器 」欄位中,導航到 「系統安全性」下的「組 」。

    ServiceNow developer instance filter navigator search for ‘Groups’ under ‘System Security’
  2. 建立新的使用者群組或使用現有的使用者群組。

    ServiceNow developer instance group page for WebexccAgentsGroup.

  3. 按一下編輯。

  4. 在「集合」 下 搜索 sn_openframe_user ,並將其移動到您的使用者組。

    ServiceNow developer instance group edit members page showing a search for a collection.

    ServiceNow developer instance group edit members page showing a collection moved into the roles list.

  5. 按一下儲存。

  6. 將使用者新增為群組成員。

    ServiceNow developer instance group page with user roles assigned.

1

從過濾器導航器 欄位中,導航到 OpenFrame > Configurations。

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

按一下新增。

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

輸入 URL 的下列屬性:

  • 名稱:Webex Contact Center 桌面

  • 標題:Webex Contact Center

  • 寬度:550 (推薦)

  • 身高:600 (推薦)

4

在 URL 欄位的 右側,點按 鎖定 按鈕,然後添加 agentdesktop.do 作為 URL。 (執行此步驟以將配置指向 UI 頁面)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(選用)選取要指定組態的使用者/代理群組。

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

按一下遞交。 URL 即會顯示為連結。

ServiceNow developer instance OpenFrame Configurations – New Record page showing the URL link that appears after submitting the user group selections.

7

在您嘗試使用 OpenFrame 電話之前,請確定您是將 ServiceNow 自訂桌面配置 JSON 檔案上載至 Webex Contact Center Management Portal。 有關詳細資訊,請參閱 在 Webex Contact Center 上設置 ServiceNow 桌面佈局。

1

請從 https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 下載 ServiceNow 的桌面版面配置。

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

如果需要,更新桌面佈局檔中的屬性。

3

前往 Webex Contact Center 管理入口網站。

4

從 Management Portal 導航欄中,選擇 “置備 > 桌面佈局”。

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

按下 新建佈局 並輸入桌面佈局的詳細資訊。

6

上傳 ServiceNow 桌面配置 JSON 檔案。

7

按一下 儲存 ,以儲存組態。

您現在可以在 ServiceNow 控制台中啟動 Webex Contact Center 桌面。

8

從篩選器導航器 欄位中,導航到 服務操作工作區。

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

以下部分介紹為許可的企業實例安裝 ServiceNow 連接器的步驟。

1

登錄到您的 ServiceNow 開發人員門戶帳戶並 打開管理 控制台。

2

在帳戶功能表的我的 實例 區域 中,單擊 開始構建 。

ServiceNow developer portal screenshot with ‘Start Building’ button highlighted.

3

在開發人員實例上,從視窗左上角的 篩選器導航器 欄位中,導航到 外掛程式。

ServiceNow developer instance showing a search for ‘plugins’ filter navigator.

4

搜索標題 為 Openframe 的 Openframe 外掛程式。 您可能需要捲動清單。

ServiceNow developer instance on the Applications screen, showing the search and results for ‘OpenFrame.’

5

按兩下 安裝 以安裝 Openframe 外掛程式。

6

在“啟動外掛程式 ”對話框中,按兩下 “啟動”。

ServiceNow developer instance showing OpenFrame plugin popup with the ‘Activate’ button highlighted.

7

外掛程式啟動完成後,按兩下 外掛程式啟動 對話框中的關閉並重新載入表單 。

ServiceNow developer instance showing OpenFrame plugin activation loading.

ServiceNow developer instance showing OpenFrame plugin activation success window with the ‘Close & Reload Form’ button highlighted.

8

要驗證外掛程式啟動,請從視窗左上角的 過濾器導航器 欄位中導航到 OpenFrame。

9

單擊 配置 並確保 OpenFrame 外掛程式出現在 OpenFrame 配置 清單中。

ServiceNow developer instance showing OpenFrame Configurations in the filter navigator search.

1

在視窗左上角的「過濾器導航器 」欄位中,輸入 sys_properties.list。

ServiceNow developer instance showing a search in the filter navigator on the ‘All’ tab for ‘sys_properties.list’

2

在「 系統屬性 」頁上,按更新日期對屬性進行排序。 確保可以看到以下 Webex Contact Center 屬性:

ServiceNow developer instance system properties page results.

3

按兩下 agentdesktop_url 以打開「 系統屬性 agentdesktop_url 」頁。

4

在「值 」 欄位中,根據操作區域輸入 Webex Contact Center 桌面的 URL。

ServiceNow developer instance system property details page for agentdesktop_url.

5

按一下 「更新」 以儲存變更。

6

(選用)若要更改活動表名稱,請根據需要編輯 x_caci_webexcc.webexccactivitytable 屬性。

  1. 在「 系統屬性 」頁上,按一下 x_caci_webexcc.webexccactivitytable。

    ServiceNow developer instance system properties page results for x_caci_webexcc.webexccactivitytable.

  2. 視需要變更「 值 」欄位。

    ServiceNow developer instance system property page for x_caci_webexcc.webexccactivitytable.

7

(選用)透過以下方式新增使用者群組:

  1. 在視窗左上角的「過濾器導航器 」欄位中,導航到 「系統安全性 」下的 「組」。

    ServiceNow developer instance filter navigator results for ‘Groups.’

    SeviceNow developer instance group page for webexccagentsgroup.

  2. 點選 編輯 並新增以下角色:

    • sn_openframe_user

    • x_caci_webexcc.代理

    • agent_workspace_user

    • x_caci_webexcc.webexcc_imp_activity_user

    • x_caci_webexcc.webex_contact_center

    SeviceNow developer instance group page for webexccagentsgroup with rolls added.

1

從過濾器導航器 欄位中,導航到 OpenFrame > Configurations。

ServiceNow developer instance filters navigator with ‘openframe’ in the search field and ‘Configurations’ under ‘OpenFrame’ highlighted in the results.

2

按一下新增。

ServiceNow developer instance OpenFrame Configurations page with ‘New’ highlighted.

3

輸入 URL 的下列屬性:

  • 名稱:Webex Contact Center 桌面

  • 標題:Webex Contact Center

  • 寬度:550 (推薦)

  • 身高:600 (推薦)

4

在 URL 欄位的 右側,點按鎖定 按鈕並將 x_caci_webexcc_agentdesktop.do 新增 為 URL。 (執行此步驟以將配置指向 UI 頁面)

ServiceNow developer instance OpenFrame Configurations – New Record page with the lock icon highlighted.

5

(選用)選取要指定組態的使用者/代理群組。

ServiceNow developer instance OpenFrame Configurations – New Record user group selection.

6

按一下遞交。 URL 即會顯示為連結。

ServiceNow developer instance OpenFrame Configurations – New Record with URL added.

7

從篩選器導航器 欄位中,導航到 服務操作工作區。

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

8

(選用)在“使用者群組 ” 清單中,將可以訪問 Webex Contact Center 桌面的使用者群組從 “可用 ”移至 “已選取”。

9

在您嘗試使用 OpenFrame 電話之前,請確定您是將 ServiceNow 自訂桌面配置 JSON 檔案上載至 Webex Contact Center Management Portal。 有關詳細資訊,請參閱 在 Webex Contact Center 上設置 ServiceNow 桌面佈局。

1

請從 https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow 下載 ServiceNow 的桌面版面配置。

Github screen for Webex Contact Center CRM Integrations – Desktop Layouts – ServiceNow.

2

如果需要,更新桌面佈局檔中的屬性。

3

前往 Webex Contact Center 管理入口網站。

4

從 Management Portal 導航欄中,選擇 “置備 > 桌面佈局”。

Webex Contact Center Management Portal provisioning page with Desktop Layout highlighted in the left navigation.

5

按下 新建佈局 並輸入桌面佈局的詳細資訊。

6

上傳 ServiceNow 桌面配置 JSON 檔案。

7

按一下 儲存 ,以儲存組態。

您現在可以在 ServiceNow 控制台中啟動 Webex Contact Center 桌面。

8

從篩選器導航器 欄位中,導航到 服務操作工作區。

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

1

從篩選器導航器 欄位中,導航到 事件 >打開事件。

2

在來電者欄位上按一下滑鼠右鍵,然後按一下「 設定字典」。

ServiceNow developer instance Incidents window with the Configure Directory option highlighted.

3

添加逗號分隔的 屬性“ref_contributions=show_phone,。

ServiceNow developer instance call incident window for a Directory Entry.

您現在可以開始在 ServiceNow 控制台中使用 Webex Contact Center 桌面了。

4

從篩選器導航器 欄位中,導航到 服務操作工作區。

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

  • 我們僅支援使用 WebRTC for Salesforce (SFDC) 和 Microsoft Dynamics (MS Dynamics) 連接器登入 Agent Desktop。
  • 目前,此功能僅適用於代理。

Agent Desktop 在 ServiceNow 控制台中

在進行撥出通話之前,請確保執行以下操作:

  • 創建外撥入口點並設置外撥入口點策略。

  • 為代理設定檔啟用撥出 ANI。

  • 將撥出 ANI 設定為撥出號碼到進入點對映。

有關詳細資訊,請參閱 《Cisco Webex Contact Center 設置和管理指南 》的“預配 ”一章。

從篩選器導航器 欄位中,導航到 服務操作工作區。

ServiceNow home page with Webex Contact Center Agent Desktop integrated with ServiceNow.

有關如何使用桌面的資訊,請參閱 Webex Contact Center 説明中的代理 Tab。

概覽

本文介紹了為 ServiceNow CRM 連接器自定義業務規則的幾種方法。 它詳細介紹了如何根據特定於 ServiceNow 的業務規則自定義用例。

客戶必須在 ServiceNow 上自行管理這些用例。 該配置特定於 ServiceNow 而非 Webex Contact Center 軟體或專業技能。

這是説明修改業務規則的參考文檔。 ServiceNow 開發人員將創建和管理業務規則,並提供支援。

Cisco 僅提供範例文件。

以下部分提供了有關如何為開發人員和企業實例設置、啟用和管理操作小組件的詳細資訊。

提交操作小組件的更新集

對於已授權的企業實例,請從 ServiceNow 商店安裝最新的 Webex Contact Center 應用程式。

要為開發人員實例設置操作小組件,請下載 github 儲存庫上提供的最新系統更新集 XML 檔,網址為: https://github.com/CiscoDevNet/webex-contact-center-crm-integrations/tree/main/ServiceNow/ActionsWidget。 檔案名稱為 webexcc-servicenow-update-setv7-1-ActionsWidget.XML。 要提交操作小組件的更新集,請參閱提交更新集中 的步驟 2 到 9。

開啟動作小組件

使用 isWidgetDisplayEnabled 屬性啟用動作 widget。 您不得在自訂桌面佈局的無頭部分中修改此屬性的值。 該屬性在自定義桌面佈局的無外設部分中始終設置為 false。 應僅在自定義桌面佈局的面板部分中更新屬性的值。

在自訂桌面佈局中啟用「操作」小組件後,可以執行以下操作:

  • 管理活動記錄 - 單擊 「查看/編輯活動記錄 」以查看與呼叫者關聯的活動記錄清單。
  • 關聯 CRM 物件 - 單擊「 關聯到活動記錄 」以將 CRM 物件 (如呼叫類型 (入站或出站)、呼叫物件、呼叫記錄等) 添加到活動記錄中。
  • 管理事件 - 按兩下 建立事件。 將創建一個新事件,並預先填充呼叫者詳細資訊。 可以對事件進行所需的更新。 您可以根據需要選擇從事件到案例、HR 模組等修改記錄類型。 要更改記錄類型,請在操作小組件配置中修改 typeOfRecord 屬性的值 。 例如:
    {
                  "comp": "md-tab-panel",
                  "attributes": { "slot": "panel", "class": "widget-pane" },
                  "children": [
                    {
                      "comp": "agentx-custom-desktop",
                      "script": "https://cx-crmconnector.ciscoccservice.com/servicenow/v5/dist/index.js",
                      "properties": {
                        "isWidgetDisplayEnabled": true,
                        "typeOfRecord" : "Create Incident" 
                      },
                      "wrapper": {
                        "title": "SNOW Actions !",
                        "maximizeAreaName": "app-maximize-area"
                      }
                    }
                  ]
                }
  • 新增即時通話備註 -- 您可以在文字區域中擷取有關通話的其他資訊並整理通話。 您可以在活動記錄中看到這些作為通話筆記添加的註釋。

服務現在的代碼變更

指令檔包含變更
  1. 移至過濾器導航器並搜尋 指令檔包括.

    選擇「系統 UI」 下的 「腳本包括」。

  2. 過濾名稱 , 然後搜尋 propUtils.

  3. 變更方法 UserGetSysId 在腳本 中。

    目前:

    UserGetSysId : function () {
    var opened_for;
    var user = new GlideRecord("sys_user");
    user.addQuery(this.getParameter('field'),this.getParameter('value'));
    user.query();
    if (user.next())
    opened_for=user.sys_id;
    var grInt = new GlideRecord('interaction');
    grInt.initialize();
    grInt.assigned_to= gs.getUserID();
    grInt.type= 'phone';
    grInt.opened_for= opened_for;
    var sysid=grInt.insert();
    return sysid;
    },

    事件的新範例代碼:

    UserGetSysId : function () {
                var opened_for;
    
            //Incident related changes
                 var sysidlist = {};
                var user = new GlideRecordSecure("sys_user");
                  user.addQuery(this.getParameter('field'),this.getParameter('value'));
                  user.query();
                  if(user.next()) {
                     opened_for=user.sys_id;//return user.sys_id;
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);
            },

UI 頁面上的方法變更
  1. 轉到篩選器導航器並搜索 UI 頁面。

    選擇 「系統 UI」下的 「UI」 頁。

  2. 過濾名稱 , 然後搜尋 代理桌面.

  3. 變更 螢幕彈出 用戶端腳本 中的函數。

    目前功能:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
    
    
    
    if(callerani===callSessionInfo.phoneNumber){
    callerani=stripPrefixes(callerani);
    }
    var gaout = new GlideAjax('propUtils');
    gaout.addParam('sysparm_name', 'UserGetSysId');
    gaout.addParam('field', 'phone');
    gaout.addParam('value', callerani);
    gaout.getXMLWait();
    
    
    var sysid = gaout.getAnswer();
      
    openFrameAPI.openServiceNowForm({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });

    事件的範例代碼:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
       
    
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.getXMLWait();
    
    // For Incident-related change
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid //'a2ba0ba62fd121106446cc96f699b6b8'  
           });
        }
       
    }

如果 CRM 中存在呼叫者資訊,並且此聯繫人已打開新事件,則應用程式將打開進行中事件

如果 CRM 中不存在呼叫者資訊,則應用程式將打開一個新事件

如果 CRM 中存在呼叫者資訊,則應用程式將打開一個包含預填充詳細資訊的新事件

概覽

此用例詳細介紹了向 ServiceNow 表添加額外列的過程 - webexcc_imp_activity 並在安裝 Webex CC for ServiceNow CRM 連接器時創建 sn_openframe_phone_log。

默認情況下,該表包含某些現成的系統欄位和值。

您可以在 WebexCC Flow 設計器中創建更多業務特定變數 (CAD 變數),並將 CAD 變數新增到 ServiceNow POST 通話活動日誌中,並將其保存到 POST 通話活動表資料中。

這隻是一個參考文檔 - 並展示了如何對名為“客戶名稱”的示例 CAD 變數執行此操作,該變數將客戶名稱存儲在 IVR 中並將其發佈到 ServiceNow。

預計合作夥伴 + 客戶 ServiceNow 開發人員將配置和管理此配置,因為它是對現有連接器的自定義。

Cisco 僅提供有關如何自定義和擴展連接器的技術。

截至本文,Cisco 團隊已驗證支援使用下述技術將 CAD 變數添加到活動日誌和活動表:

新增欄至 WebexCC IMP 活動

  1. 在 ServiceNow 的開發人員版本中編輯該表。

    ServiceNow developer instance WebexCC IMP activity table.

  2. 轉到過濾器導航器並搜索工作室。

    ServiceNow developer instance filter navigator on the All tab with ‘studio’ entered in the filter.

    選取 Webex Contact Center

    Studio app for ServiceNow with the Select Application window open.

    或

    Studio app for ServiceNow with the Select Application window open and ‘Select Store App to Customize’ selected.

    Studio app for ServiceNow with the ‘Select Store App to Customize’ window open and ‘Webex Contact Center’ selected.

    Studio app for ServiceNow with Webex Contact Center application file details.

  3. 選取 WebexCC IMP 活動 桌子

    Studio app for ServiceNow WebexCC IMP Activity table.

  4. 新增一欄例如, 客戶名稱

    Studio app for ServiceNow WebexCC IMP Activity table new column example.

    Studio app for ServiceNow WebexCC IMP Activity table new column example with new column added.

新增欄到電話紀錄

  1. 編輯電話日誌表。

    ServiceNow developer instance search for a phone log table.

    ServiceNow developer instance phone log table.

  2. 新增一欄例如, 客戶名稱.

    ServiceNow developer instance phone log table new column examples.

    ServiceNow developer instance phone log table new column example with new column added.

WebexCC 活動轉換對應

Studio app for ServiceNow WebexCC Activity Transform Map.

新增一欄例如, 客戶名稱 欄位映射。

Studio app for ServiceNow WebexCC Activity Transform Map new column example for CustomerName field mapping.

Studio app for ServiceNow WebexCC Activity Transform Map new column example with CustomeName selected in the Target field.

個人化清單欄

Studio app for ServiceNow WebexCC Activity Transform Map with popup window to personalized list columns. Choice action option is highlighted in the Selected column.

按照「服務立即」的建議,將“選擇”操作從“創建”更改為“忽略”。

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column, showing the dropdown to choose ‘ignore’ or ‘create.’

Studio app for ServiceNow WebexCC Activity Transform Map with the Choice action column and ‘ignore’ highlighted for the customer name source field.

設定電話紀錄清單

Studio app for ServiceNow configuring phone log list with CustomerName highlighted in the Selected column.

移至文稿包含

僅新增一行 webexcc.u_customername=actInfo.CustomerName 到道具。

ServiceNow developer instance filter navigator search for ‘script includes.’

ServiceNow developer instance Script Includes page.

範例文稿

請參閱以下行: webexcc.u_customername=actInfo.CustomerName; 帶有支持評論。

var propUtils = Class.create();
propUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
         getWebexccProp : function () {
           var webexccprop = {};
           webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
           webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
          // webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
           return  JSON.stringify(webexccprop);
      
        },
        UserGetSysId : function () {
            var opened_for;
            var user = new GlideRecord("sys_user");
              user.addQuery(this.getParameter('field'),this.getParameter('value'));
              user.query();
              if (user.next())
                 opened_for=user.sys_id;//return user.sys_id;
//            else
//               return null;
            var grInt = new GlideRecord('interaction');
                grInt.initialize();
                grInt.assigned_to= gs.getUserID();
                grInt.type= 'phone';
                grInt.opened_for= opened_for;
            var sysid=grInt.insert();
            return sysid;
        },
        setWebexcctable : function () {
            var sys_id=0;
             
            var actInfo = JSON.parse(this.getParameter('actInfo'));
            var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
            webexcc.addQuery("callobject", actInfo.CallObject);
            webexcc.query();
            if(!webexcc.next()) {
                webexcc.ani = actInfo.ani;
                webexcc.dnis =actInfo.dnis;
                webexcc.queuename =actInfo.queuename;
                webexcc.wrapuptime =actInfo.wrapuptime;
                webexcc.callduration =actInfo.CallDurationInSeconds;
                webexcc.ringingtime =actInfo.ringingtime;
                webexcc.activitydate =actInfo.ActivityDate;
                webexcc.callobject =actInfo.CallObject;
                webexcc.calltype =actInfo.CallType;
                webexcc.calldisposition=actInfo.CallDisposition;
                 
                // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
                 
                sys_id=webexcc.insert();
 
                //Activities on Incident record;
                var actInfoString =this.getParameter('actInfo');
                var suser = new GlideRecordSecure("sys_user");
                    suser.addQuery("phone", this.getParameter('ani'));
                    suser.query();
                    if(suser.next()) {
                    var inc = new GlideRecordSecure('incident');
                            inc.addQuery('caller_id', suser.sys_id);
                            inc.orderByDesc('sys_created_on');
                            inc.query();
                                if (inc.next()) {
                                    var jsonPretty = JSON.stringify(JSON.parse(actInfoString),null,2); 
                                    inc.comments =jsonPretty;
                                inc.update();
     
                            }
                    }
            }  
            return sys_id;
       },
 
    type: 'propUtils'
});

在 Flow 設計器中建立 CAD 變數

Webex Contact Center CAD variable flow designer with Add Flow Variable popup for CustomerName.

將 CAD 變數新增到桌面佈局

範例

"CadName1:SnowField1,CadName2:SnowField2"
 CadName1 is CustomerName
 SnowField1 is also used as CustomerName which is part of sample scirpt showen above "actInfo.CustomerName".

Example source code for adding the CAD variable to the Desktop Layout.

簡報截圖

在 WebexCC 活動表格中檢視新新增的 CAD 變數。

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘Customer Name’ in the Cisco WebexCC popup.

ServiceNow example of the newly added CAD variable in the WebexCC Activity table, showing ‘CustomerName’ in the comments section under ‘Activity’ and ‘System Administrator.’

ServiceNow developer instance example of the newly added CAD variable in the WebexCC Activity table, showing the ‘CustomerName’ column.

為 Flow Designer 建立 CAD 變數

事件緊急性

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

事件影響

Webex Contact Center flow designer create CAD variable screen showing the edit flow variable popup for an incident urgency flow variable.

立即服務指令碼更新

對文稿的更新包括

  1. 移至篩選器導航器並搜尋 文稿包含

    選擇「系統 UI」 下的 「腳本包含」選項。

    ServiceNow developer instance filter navigator search for ‘script includes’

  2. 使用 propUtils 過濾 名稱。

    ServiceNow developer instance Script Includes name filter by ‘propUtils’

  3. 變更方法 UserGetSysId 在「腳本 」 欄位中。

    ServiceNow developer instance Script Includes – propUtils details page.

    目前文稿:

    UserGetSysId : function () {
    var opened_for;
    var user = new GlideRecord("sys_user");
    user.addQuery(this.getParameter('field'),this.getParameter('value'));
    user.query();
    if (user.next())
    opened_for=user.sys_id;
    var grInt = new GlideRecord('interaction');
    grInt.initialize();
    grInt.assigned_to= gs.getUserID();
    grInt.type= 'phone';
    grInt.opened_for= opened_for;
    var sysid=grInt.insert();
    return sysid;
    },

    事件的新範例代碼:

    UserGetSysId : function () {
                var opened_for;
                
                var sysidlist = {};
                var user = new GlideRecordSecure("sys_user");
                  user.addQuery(this.getParameter('field'),this.getParameter('value'));
                  user.query();
                  if(user.next()) {
                     opened_for=user.sys_id;//return user.sys_id;
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', opened_for);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        sysidlist.incsysid=inc.getUniqueValue();
                                   }else{
                                        inc.initialize();
                                        inc.caller_id=opened_for;
                                        inc.contact_type='phone';
                                        inc.urgency=this.getParameter('IncUrgency');
                                        inc.impact=this.getParameter('Impact');
                                        inc.short_description='Call Received From '+ this.getParameter('value');
                                        sysidlist.incsysid=inc.insert();
                                    }
                  } 
                var grInt = new GlideRecordSecure('interaction');
                    grInt.initialize(); 
                    grInt.assigned_to= gs.getUserID(); 
                    grInt.type= 'phone'; 
                    grInt.opened_for= opened_for; 
                var sysid=grInt.insert();
                sysidlist.sysid=sysid;
                
                return JSON.stringify(sysidlist);//sysid;
            },

UI 頁面上的方法變更
  1. 轉到篩選器導航器並搜索 UI 頁面。

    選擇「系統 UI」下的 「 UI 頁面 」 選項。

    ServiceNow developer instance filter navigator search for ‘Ui page’

  2. 使用名稱過濾 UI 頁面 並搜尋 代理桌面 。

    ServiceNow developer instance UI Pages name filter to search ‘agentdesktop’

  3. 變更 螢幕彈出 指令檔欄位中的函數。

    ServiceNow developer instance UI Page – agentdesktop details page.

    目前功能:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
    
    
    if(callerani===callSessionInfo.phoneNumber){
    callerani=stripPrefixes(callerani);
    }
    var gaout = new GlideAjax('propUtils');
    gaout.addParam('sysparm_name', 'UserGetSysId');
    gaout.addParam('field', 'phone');
    gaout.addParam('value', callerani);
    gaout.getXMLWait();
    
    
    var sysid = gaout.getAnswer();
      
    openFrameAPI.openServiceNowForm({
    entity: 'interaction',
    query: 'sys_id='+sysid
    });
    
    }

    事件的範例代碼:

    // screen pop
    function screenpop(callerani,callSessionInfo) {
       
        var Impact=3;
        if(callSessionInfo.callAssociatedData.Impact != null && callSessionInfo.callAssociatedData.Impact != undefined)
        {
            Impact=callSessionInfo.callAssociatedData.Impact.value;
        }
        var IncUrgency=3;
        if(callSessionInfo.callAssociatedData.Urgency != null && callSessionInfo.callAssociatedData.Urgency != undefined)
        {
            IncUrgency=callSessionInfo.callAssociatedData.Urgency.value;
        }
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.addParam('IncUrgency', IncUrgency);
            gaout.addParam('Impact', Impact);
            gaout.getXMLWait();
          // var sysid = gaout.getAnswer();
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
       
    }

如果 CRM 中存在呼叫者資訊,並且沒有新的或正在進行的事件,則應用程式將打開一個新事件

ServiceNow example of an incident.

ServiceNow example of an interaction.

變更 ServiceNow 上的代碼

新增欄至 WebexCC IMP 活動 桌子

開啟 WebexCC IMP 活動 桌子

ServiceNow developer instance WebexCC Activity TransformMap.

ServiceNow developer instance WebexCC Activity TransformMap details page.

新增欄 - 互動次數

ServiceNow developer instance WebexCC Activity TransformMap new column, InteractionNumber.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘interactionnumber’ column added.

新增欄位 - 事件編號

ServiceNow developer instance WebexCC Activity TransformMap details page showing adding a new ‘incidentnumber’ column.

點擊更新 。

ServiceNow developer instance WebexCC Activity TransformMap details page showing editing the max length for the IncidentNumber column.

ServiceNow developer instance WebexCC Activity TransformMap details page showing the new ‘incidentnumber’ column added.

新增欄至 電話記錄 桌子

開啟 電話記錄 桌子

ServiceNow developer instance Phone Log table.

新增欄 - 互動次數

ServiceNow developer instance Directory Entry – New Record page showing a new column for InteractionsNumber.

ServiceNow Developer instance Phone Log table with InteractionsNumber column added.

新增欄位 - 事件編號

ServiceNow developer instance Directory Entry – New Record page showing a new column for IncidentNumber.

ServiceNow Developer instance Phone Log table with IncidentNumber column added.

WebexCC 活動轉換對應

開啟 轉換地圖 從過濾器導航器

ServiceNow developer instance filter navigator search for ‘transform map’

ServiceNow developer instance Table Transform Maps showing WebexCC Activity TransformMap in results.

點擊 WebexCC 活動轉換圖

ServiceNow developer instance WebexCC Activity TransformMap.

新增 - 用於互動號碼對應

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ entered into the ‘Target field’

ServiceNow developer instance WebexCC Activity TransformMap with ‘InteractionNumber’ added.

新增 - 用於事件編號圖

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ entered into the ‘Target field’

按一下更新。

ServiceNow developer instance WebexCC Activity TransformMap with ‘IncidentNumber’ added.

對文稿的變更包括

  1. 轉到過濾器導航器並搜索「腳本包含」。

    選擇「系統 UI」 下的 「腳本包括」。

    ServiceNow developer instance filter navigator with search for ‘script includes’

  2. 過濾 名稱 以 propUtils.

    ServiceNow developer instance Script Includes with Name filter applied to search and  ‘propUtils’ entered into the search field.

  3. 變更方法 設定網路可執行.

    ServiceNow developer instance Script includes - propUtils page

    事件的新範例代碼:

    setWebexcctable : function () {
                var sys_id=0;
                
                var actInfo = JSON.parse(this.getParameter('actInfo'));
                var webexcc = new GlideRecordSecure(gs.getProperty('webexccactivitytable'));
                webexcc.addQuery("u_callobject", actInfo.CallObject);
                webexcc.query();
                if(!webexcc.next()) {
                    
                    //Activities on Incident record;
                    //var actInfoString =this.getParameter('actInfo');
                    var incsysid=actInfo.incident_sys_id;
                    var interactionsysid=actInfo.interaction_sys_id;
                    var incnum="";
                    var intenum="";
                    delete actInfo['interaction_sys_id'];
                    delete actInfo['incident_sys_id'];
                    if( interactionsysid!= null && interactionsysid != undefined){
                        var inte = new GlideRecordSecure('interaction');
                        //inte.get('sys_id', interactionsysid );
                        
                        inte.addQuery('sys_id', interactionsysid );
                        inte.query();
                        if (inte.next()) {
                            intenum=inte.number;
                           // inte.setValue('state','Closed Complete');
                            inte.work_notes='Update State to closed.';
                            inte.update();
        
                        }
                    }
                    if( incsysid!= null && incsysid != undefined){
                        var inci = new GlideRecordSecure('incident');
                        inci.addQuery('sys_id', incsysid );
                        inci.query();
                        if (inci.next()) {
                            incnum=inci.number;
                            var jsonPretty = JSON.stringify(actInfo,null,2); //JSON.stringify(JSON.parse(actInfoString),null,2);  
                            inci.comments =jsonPretty;
                            inci.update();
        
                        }
                    }else{
                      var suser = new GlideRecordSecure("sys_user");
                        suser.addQuery("phone", this.getParameter('ani'));
                        suser.query();
                        if(suser.next()) {
                        var inc = new GlideRecordSecure('incident');
                                inc.addQuery('caller_id', suser.sys_id);
                                inc.addQuery('state','IN','1,2');
                                inc.orderByDesc('sys_created_on');
                                inc.query();
                                    if (inc.next()) {
                                        var jsonPretty = JSON.stringify(actInfo,null,2);  
                                        inc.comments =jsonPretty;
                                    inc.update();
        
                                }
                        } 
                    }
                   
                    
                    webexcc.u_ani = actInfo.ani;
                    webexcc.u_dnis =actInfo.dnis;
                    webexcc.u_queuename =actInfo.queuename;
                    webexcc.u_wrapuptime =actInfo.wrapuptime;
                    webexcc.u_callduration =actInfo.CallDurationInSeconds;
                    webexcc.u_ringingtime =actInfo.ringingtime;
                    webexcc.u_activitydate =actInfo.ActivityDate;
                    webexcc.u_callobject =actInfo.CallObject;
                    webexcc.u_calltype =actInfo.CallType;
                    webexcc.u_calldisposition=actInfo.CallDisposition;
                    webexcc.u_incidentnumber=incnum;
                    webexcc.u_interactionsnumber=intenum;
                    sys_id=webexcc.insert();
    
                    
                                
                }    
                return sys_id;
           },

UI 頁面上的方法變更

  1. 移至過濾器導航器並搜尋 UI 頁面

    選擇「系統 UI」下的 「 UI 頁面 」 選項。

    ServiceNow developer instance filter navigator with search for ‘Ui page’

  2. 使用 名稱 過濾 UI 頁面並搜尋 代理桌面。

    ServiceNow developer instance UI Pages with Name filter applied to search.

  3. 變更 Now 活動與螢幕彈出 腳本中的函數。

    ServiceNow developer instance UI Page – agentdesktop.

    目前功能:

    function nowActivities(actInfo, ani) {
        
        var gaout = new GlideAjax('propUtils');
        gaout.addParam('sysparm_name', 'setWebexcctable');
        gaout.addParam('actInfo', JSON.stringify(actInfo));
        gaout.addParam('ani', stripPrefixes(ani));
        gaout.getXML(SetCCsysId);
    
    
    }

    事件的範例代碼:

    function nowActivities(actInfo, ani) {
        var sysObjstr = window.localStorage.getItem("screenpopinteraction");
        if(sysObjstr != null && sysObjstr != undefined)
        {
            var sysObjjson=JSON.parse(sysObjstr);
            actInfo.interaction_sys_id=sysObjjson.sysid;
            actInfo.incident_sys_id=sysObjjson.incsysid;
        }
        var gaout = new GlideAjax('propUtils');
        gaout.addParam('sysparm_name', 'setWebexcctable');
        gaout.addParam('actInfo', JSON.stringify(actInfo));
        gaout.addParam('ani', stripPrefixes(ani));
        gaout.getXML(SetCCsysId);
    
    
    }
    
    function screenpop(callerani,callSessionInfo) {
       
    
        if(callerani===callSessionInfo.phoneNumber){
            callerani=stripPrefixes(callerani);
        }
        
        var gaout = new GlideAjax('propUtils');
            gaout.addParam('sysparm_name', 'UserGetSysId');
            gaout.addParam('field', 'phone');
            gaout.addParam('value', callerani);
            gaout.getXMLWait();
          // var sysid = gaout.getAnswer();
          var sysObj = JSON.parse(gaout.getAnswer());
        
        if(sysObj.incsysid){
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id='+sysObj.incsysid, 
            'interaction_sys_id': sysObj.sysid  
           });
        }else{
            openFrameAPI.openServiceNowForm({
            entity: 'incident',
            query: 'sys_id=-1',
            'interaction_sys_id': sysObj.sysid  
           });
        }
        window.localStorage.setItem("screenpopinteraction",JSON.stringify(sysObj));
            
       
    }
    
    

更新後的結果

ServiceNow developer instance Phone Logs page.

以下自定義適用於版本 1.0.5 及更低版本。 對於較新版本 1.0.7 及更高版本的自定義,請執行上述步驟。

自訂 # 1 - 為呼叫流用例新增自訂業務規則

為每個呼叫建立新的事件記錄

每當有新通話進入 ServiceNow 中的 WebexCC CRM 連接器時,皆需建立新的事件記錄。

  1. 在篩選器導航器上搜尋業務規則

    ServiceNow developer instance Business Rules page header.
  2. 點撃新增。

    ServiceNow developer instance Business Rule – New Record.

    範例代碼供參考:

    function customcti() {
                var url = null;
                var name = sysparm_caller_name;
                eid = sysparm_caller_id;
                var phone = sysparm_caller_phone;
                var taskID = sysparm_task_id;
                var fQuery = sysparm_query;
                if (fQuery == null)
                   fQuery = '';
                var view = sysparm_view;
                if (view == null || view == '')
                    view = "itil";
     
                var userID = null;
                if (eid != null && eid != '') {
                    userID = UserGetSysId("employee_number",eid);
                }
                if (userID == null && name != null && name != '') {
                    userID = UserGetSysId("name", name);                
                }
                if (userID == null && phone != null && phone != '') {
                    userID = UserGetSysId("phone", phone);
                }
     
                if (userID != null) {
                    if (fQuery.length > 0)
                        fQuery += "^";
                    fQuery += "caller_id=" + userID;
                }
                if (url == null) {
                    url = "incident.do?sys_id=-1";
                    if (fQuery != null)
                       url += "&sysparm_query=" + fQuery;
                }
                answer = url;
                return url;
    }
     
    function UserGetSysId(field, value) {
      var user = new GlideRecord("sys_user");
      user.addQuery(field, value);
      user.query();
      if (user.next())
         return user.sys_id;
      else
         return null;
    }

    商務規則的範例設定

    ServiceNow developer instance Business Rule – CTI Processing For Incident page as a sample configuration of the business rule.
  3. 開啟用戶端可呼叫

    ServiceNow developer instance Business Rules page with the Personalized List Columns popup screen showing ‘Client callable’ in the ‘Selected’ column.

    電腦電話整合 (CTI) 事件 處理標記為 True。

    ServiceNow developer instance Business Rules page showing the Client callable column with options to select ‘true’ or ‘false’
  4. 使用自訂 CTI 規則 “cti.do?sysparm_cti_rule=createIncident& sysparm_caller_phone=”更新螢幕彈出 URL

    System Property page for screenpop_url showing update to the custom CTI rule in the ‘Value’ field.
範例

sysparm_cti_rule=name ,其中“name”是函數 的名稱 ,將調用 CTI 處理 ,而不是使用預設腳本。

在標記為 用戶端可調用 的 sys_script 條目中定義函數。

如果必須 Insert、更新或刪除函數中的任何 GlideRecords,請調用單獨的非用戶端可調用函數來執行更新。

若要使腳本用戶端可調用,必須選中顯示 sys_script 條目時顯示的表單上的用戶端可調用複選框。

默認情況下,用戶端可調用複選框不顯示。 若要查看,必須使用齒輪圖示和雪泥桶機制修改窗體上顯示的欄位。

參考資料

自訂 # 2 - 在 Webex Contact Center 活動表中新增 CAD 變數

概覽

本文詳細介紹了向 ServiceNow 表添加其他列的過程 - webexcc_activity 在安裝 Webex CC for ServiceNow CRM 連接器時創建。

默認情況下,該表包含現成的系統欄位和值。

您可以在 WebexCC Flow 設計器中建立更多業務特定變數 (CAD 變數),並將這些 CAD 變數新增到 ServiceNow POST 通話活動紀錄中,並將其保存在 POST 通話活動表格資料 中。

  • 這隻是參考文檔 - 並展示了如何對名為「客戶名稱」的示例 CAD 變數執行此操作,該變數將客戶名稱存儲在 IVR 中並將其發佈到 ServiceNow。

  • 合作夥伴 + 客戶服務現在開發人員將配置和管理此配置,因為它是對現有連接器的自定義。

  • Cisco 將僅提供有關如何自定義和擴展連接器的技術。

  • 截至本文,Cisco 團隊已驗證支援使用下述技術將 CAD 變數添加到活動日誌和活動表。

新增欄至 WebexCC 活動
  1. 在 ServiceNow 的開發人員版本中編輯該表。

    ServiceNow developer instance Table – WebexCC Activity page.
  2. 轉到 工作室 > Webex Contact Center。

    ServiceNow developer instance filter navigator search for ‘studio’  highlighting the cross launch search result for ‘App Engine Studio’

    App Engine Studio Select Application screen showing Webex Contact Center in the search results.

    App Engine Studio Webex Contact Center screen.

  3. 選擇 「WebexCC 活動 」表格。

    App Engine Studio WebexCC Activity table.
  4. 例如, CustomerName。

    App Engine Studio WebexCC Activity table column edit example for ‘CustomerName’ column.

    App Engine Studio WebexCC Activity table screen.

  5. 選擇 WebexCC 活動 的清單佈局。

    App Engine Studio WebexCC Activity table list layout showing ‘CustomerName’ highlighted in the ‘Selected’ column.
建立新指令檔包括

如果您使用的是更新集 XML - 只需將一行“webexcc.u_customername=actInfo.CustomerName”添加到 propUtils,則不需要此步驟。

ServiceNow developer instance filter navigator search for ‘script includes’

ServiceNow developer instance Script Includes page with ‘Application’ in the filter.

ServiceNow developer instance Script Includes – New Record page.

範例文稿

請參閱以下行:webexcc.u_customername=actInfo.CustomerName; 帶有支持評論。

var propUtils2 = Class.create();
propUtils2.prototype = Object.extendsObject(global.AbstractAjaxProcessor,{
         getWebexccProp : function () {
           var webexccprop = {};
           webexccprop.instanceurl= 'https://'+gs.getProperty('instance_name')+'.service-now.com/';
           webexccprop.url=gs.getProperty('x_caci_webexcc.agentdesktop_url');
           webexccprop.popupurl=gs.getProperty('x_caci_webexcc.screenpop_url');
           return  JSON.stringify(webexccprop);
      
        },
        setWebexcctable : function () {
            var sys_id=0;
             
            var actInfo = JSON.parse(this.getParameter('actInfo'));
            var webexcc = new GlideRecordSecure(gs.getProperty('x_caci_webexcc.webexccactivitytable'));
            webexcc.addQuery("callobject", actInfo.CallObject);
            webexcc.query();
            if(!webexcc.next()) {
                webexcc.ani = actInfo.ani;
                webexcc.dnis =actInfo.dnis; 
                webexcc.queuename =actInfo.queuename;
                webexcc.wrapuptime =actInfo.wrapuptime;
                webexcc.callduration =actInfo.CallDurationInSeconds;
                webexcc.ringingtime =actInfo.ringingtime;
                webexcc.activitydate =actInfo.ActivityDate;
                webexcc.callobject =actInfo.CallObject;
                webexcc.calltype =actInfo.CallType;
                webexcc.calldisposition=actInfo.CallDisposition;
 
               // This line is Added - to capture it in the Activity Log
               webexcc.u_customername=actInfo.CustomerName;
 
                sys_id=webexcc.insert();
  
                // Activities on Incident record;
                var actInfoString =this.getParameter('actInfo');
                var suser = new GlideRecordSecure("sys_user");
                    suser.addQuery("phone", this.getParameter('ani'));
                    suser.query();
                    if(suser.next()) {
                    var inc = new GlideRecordSecure('incident');
                            inc.addQuery('caller_id', suser.sys_id);
                            inc.orderByDesc('sys_created_on');
                            inc.query();
                                if (inc.next()) {
                                    var jsonPretty = JSON.stringify(JSON.parse(acting string),null,2);  
                                    inc.comments =jsonPretty;
                                inc.update();
                                 }
                    } 
            }    
            return sys_id;
       },
 
    type: 'propUtils2'
});
使用新文稿名稱編輯 UI 頁面App Engine Studio agentdesktop UI page with new script name.

在 Flow 設計器中建立 CAD 變數Webex Contact Center flow designer with Add Flow Variable popup showing adding a CustomerName variable.

將 CAD 變數新增到桌面佈局Webex Contact Center CAD variable to the desktop layout script with ‘CustomerName:CustomerName’ highlighted.

簡報截圖

在 WebexCC 活動表格中檢視新新增的 CAD 變數。

ServiceNow developer instance showing newly added CAD variable in the WebexCC Activity table.

ServiceNow developer instance WebexCC Activities screen.

CRM 連接器基於桌面佈局 JSON 中指定的小組件版本運行。 確保桌面佈局中的小部件版本保持更新非常重要。

管理員應確保此 CRM 連接器的所有桌面佈局都使用此小部件版本。 如果未更新佈局以使用最新版本,則功能將不再受支援,並且可能會停止正常工作。

  • Last ServiceNow update—ServiceNow_Desktop_0.1.0_v5.0.3.json。 截至 2024 年 3 月,套件版本為 1.0.9
  • 上次 XML 更新—webexcc-servicenow-update-setv7-1-ActionsWidget.XML,2024 年 6 月

本文是否有幫助?
本文是否有幫助?