共用方式為


在 ServiceNow 中整合預先設定的服務代理程式

您可以將預先設定的服務代理程式直接嵌入到 ServiceNow 桌面中,並具備底層平台的上下文感知能力。 這種整合有助於應用程式提供更好的回應,並有助於進一步簡化 AI 代理程式的工作流程。

必要條件

在開始之前,您必須具有以下環境和控制台:

  • 連接到 ServiceNow 環境的服務用 Copilot 執行個體。
  • ServiceNow 生產環境或試用環境。

此外,為了讓您的客戶服務代表能夠使用 ServiceNow 中的代理程式,您必須為他們指派基本使用者和全通路代理程式角色。 如需進一步了解,請參閱為使用者指派資訊安全角色

在 ServiceNow 中整合代理程式

  1. 複製服務用 Copilot 小工具 URL

    1. 登入您的服務用 Copilot 執行個體。
    2. 在網站地圖上,選擇頻道,然後選擇 ServiceNow
    3. 複製在 iframe src= 之後 <開始的 URL。 例如,https://copilotforservice-test.azureedge.net/widget/index.html?dynamicsUrl=https://XXXXXX.crm10.dynamics.com
    4. 將 URL 保存在本地,您可以在後續步驟中將其複製並粘貼。
  2. 安裝知識 API 外掛程式

    1. 在您的 ServiceNow 環境中,選擇 全部,搜索外掛程式,然後選擇 系統定義>外掛程式
    2. 搜尋知識 API。 系統應返回 知識 API 外掛程式(應用 ID:sn_km_api)。
    3. 選擇知識 API 卡片。
    4. 選擇安裝,然後選擇最新版本。
    5. 選擇立即安裝,然後等待知識 API 安裝完成。
  3. 安裝 Openframe 外掛程式

    1. 在您的 ServiceNow 環境中,選擇 全部,搜索外掛程式,然後選擇 系統定義>外掛程式
    2. 搜尋 Openframe。 系統應傳回 openframe 外掛程式 (外掛程式 id: com.sn_openframe)
    3. 選取安裝開始進行外掛安裝。
    4. 選擇安裝,然後等待安裝完成。
  4. 安裝 Customer Service 外掛程式

    1. 在您的 ServiceNow 環境中,選擇 全部,搜索外掛程式,然後選擇 系統定義>外掛程式
    2. 搜尋 com.sn_customerservice。 系統應返回 客戶服務(外掛程式 ID:com.sn_customerservice)。
    3. 選取安裝開始進行外掛安裝。
    4. 選擇安裝,然後等待安裝完成。
  5. 為傳統 UI 導覽器新增 UI 指令碼

    1. 在您的 ServiceNow 環境中,請確保您位於全域工作區中:選擇右上角的地球圖示,然後驗證應用程式範圍是否已設定為全域
    2. 選擇全部,然後搜索UI 腳本,然後選擇系統 UI>UI 腳本
    3. 選擇 新建,然後按如下所示填寫表單:
      • API 名稱:Copilot 開放框架桌面指令碼

      • UI 類型:桌面

      • 選取全域核取方塊。

      • 指令碼:複製以下指令碼的內容:

        (function () {
          try {
            var logMoniker = "Copilot Navigator UI script: ";
            if (
              !window.parent.navigationListenerAdded &&
              !window.copilotNavigationClassicListenerAdded
            ) {
              console.log(logMoniker + "loading desktop navigator....");
              var payload = {
                url: window.location.href,
                source: "classicUIScript",
                sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                configType: "singleFrame"
              };
              var context = {
                payload: JSON.stringify(payload),
                method: "openframe_communication"
              };
              CustomEvent.fireAll("openframe_request", context);
        
              window.navigation.addEventListener("navigate", (event) => {
                console.log(
                  logMoniker +
                    "desktop PAGE NAVIGATED: " +
                    "\n Old Url: " +
                    window.location.href +
                    "\n New url: " +
                    event.destination.url
                );
        
                var payload = {
                  url: event.destination.url,
                  source: "classicUIScript",
                  sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                  configType: "singleFrame"
                };
                var context = {
                  payload: JSON.stringify(payload),
                  method: "openframe_communication"
                };
                CustomEvent.fireAll("openframe_request", context);
              });
        
              window.copilotNavigationClassicListenerAdded = true;
            } else {
              console.log(logMoniker + "Skipping desktop navigator load....");
            }
          } catch (error) {
            console.log(logMoniker + "Classic UI navigator error");
            console.log(error);
          }
        })();
        
  6. 為工作區導覽器新增用戶端指令碼

    1. 在您的 ServiceNow 環境中,請確保您位於全域工作區:選擇地球圖示,然後驗證應用程式範圍是否已設定為全域
    2. 選擇全部,然後搜尋用戶端指令碼,然後選擇系統定義>用戶端指令碼
    3. 選擇 新建,然後按如下所示填寫表單:
    • 名稱Copilot 開放式框架工作區導覽指令碼

    • 資料表:全球 [全球]

    • UI 類型:行動/服務入口網站

    • 類型:onLoad

    • 指令碼:複製以下指令碼的內容:

      function onLoad() {
          var table = g_form.getTableName();
          try {
              if (table == 'incident' || table == 'sys_email' || table == 'sn_customerservice_case' || table == 'interaction') {
                  var logMoniker = "Copilot Navigator Workspaces Client script: ";
      
                  if (!globalThis.copilotNavigationWorkspaceListenerAdded) {
                      console.log(logMoniker + "loading workspace navigator....");
                      var payload = {
                          url: globalThis.window.location.href,
                          source: "workspaceClientScript",
                          sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                          configType: "singleFrame"
                      };
                      var context = {
                          payload: JSON.stringify(payload),
                          method: "openframe_communication"
                      };
                      globalThis.CustomEvent.fireAll("openframe_request", context);
      
                      globalThis.window.navigation.addEventListener("navigate", (event) => {
                          console.log(
                              logMoniker +
                              "Workspace PAGE NAVIGATED: " +
                              "\n Old Url: " +
                              globalThis.window.location.href +
                              "\n New url: " +
                              event.destination.url
                          );
      
                          var payload = {
                              url: event.destination.url,
                              source: "workspaceClientScript",
                              sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                              configType: "singleFrame"
                          };
                          var context = {
                              payload: JSON.stringify(payload),
                              method: "openframe_communication"
                          };
                          globalThis.CustomEvent.fireAll("openframe_request", context);
                      });
      
                      globalThis.copilotNavigationWorkspaceListenerAdded = true;
                  } else {
                      console.log(logMoniker + "Workspace navigator already loaded....");
                  }
              }
          } catch (error) {
              console.error(logMoniker + "Workspace Navigator error");
              console.error(error);
          }
      }
      
  7. 在您的 ServiceNow 環境中,請確保您位於全域工作區中:選擇右上角的地球圖示,然後驗證應用程式範圍是否已設定為全域

    1. 選擇全部,然後搜尋用戶端指令碼,然後選擇系統定義>用戶端指令碼
    2. 選擇 新建,然後按如下所示填寫表單:
    • 名稱:Copilot 開放式框架事件表指令碼

    • 資料表:事件 [事件]

    • UI 類型:桌面

    • 類型:onLoad

    • 指令碼:複製以下指令碼的內容:

        function onLoad() {
          try {
              var tableName = g_form.getTableName();
              var id = g_form.getUniqueValue();
              var payload = {
                  recordId: id,
                  objectType: tableName,
                  source: "classicClientScript",
                  sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                  configType: "singleFrame"
              };
              var context = {
                  payload: JSON.stringify(payload),
                  method: "openframe_communication"
              };
              CustomEvent.fireAll("openframe_request", context);
          } catch (error) {
              console.log(
                  "Copilot Navigator UI script: CopilotClassicClientScriptCase navigator error"
              );
              console.log(error);
          }
      }
      

    d. 再次選擇新建,然後填寫表單,如下所示: - 名稱:Copilot 開放框架電子郵件表指令碼 - 資料表:電子郵件 [sys_email] - UI 類型:桌面 - 類型:onLoad

    • 指令碼:複製以下指令碼的內容:
      function onLoad() {
            try {
                var tableName = g_form.getTableName();
                var id = g_form.getUniqueValue();
                var payload = {
                    recordId: id,
                    objectType: tableName,
                    source: "classicClientScript",
                    sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                    configType: "singleFrame"
                };
                var context = {
                    payload: JSON.stringify(payload),
                    method: "openframe_communication"
                };
                CustomEvent.fireAll("openframe_request", context);
            } catch (error) {
                console.log(
                    "Copilot Navigator UI script: CopilotClassicClientScriptCase navigator error"
                );
                console.log(error);
            }
         }
    

    e. 再次選擇新建,然後按如下所示填寫表單:

    • 名稱:Copilot 開放框架案例資料表指令碼

    • 資料表:案例 [sn_customerservice_case]

    • UI 類型:桌面

    • 類型:onLoad

    • 指令碼:複製以下指令碼的內容:

      function onLoad() {
          try {
              var tableName = g_form.getTableName();
              var id = g_form.getUniqueValue();
              var payload = {
                  recordId: id,
                  objectType: tableName,
                  source: "classicClientScript",
                  sourceId: "b54abfa8-3d78-4aa0-ae3f-1e2ffbc56850",
                  configType: "singleFrame"
              };
              var context = {
                  payload: JSON.stringify(payload),
                  method: "openframe_communication"
              };
              CustomEvent.fireAll("openframe_request", context);
          } catch (error) {
              console.log(
                  "Copilot Navigator UI script: CopilotClassicClientScriptCase navigator error"
              );
              console.log(error);
          }
      }
      
  8. 在 ServiceNow 中設定小工具

    1. 在您的 ServiceNow 環境中,選擇全部,搜尋 OpenFrame>Configurations
    2. 在右上角選取+新增
    3. 輸入 Microsoft Copilot 作為名稱和頭銜。
    4. 輸入 450 作為寬度,輸入 600 作為高度。
    5. 選擇您想要為其啟用服務用 Copilot的使用者群組
    6. 選擇 URL 欄位旁邊的鎖定圖示以將其解鎖,然後貼上您先前從服務用 Copilot 管理頁面儲存的服務用 Copilot 小元件 URL。
    7. 選取送出
    8. 重新整理頁面。 服務用 Copilot 小工具應位於您選擇的圖示的頂部導覽列上。
    9. 在開啟服務用 Copilot 之前,請確保您允許 ServiceNow 頁面中的彈出視窗。