共用方式為


在 ServiceNow 中設定內嵌體驗

你可以將 Service in Microsoft 365 Copilot 代理直接嵌入 ServiceNow 桌面,並具備底層平台的情境感知。 這種整合有助於應用程式提供更好的回應,並有助於進一步簡化 AI 代理程式的工作流程。

必要條件

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

  • 一個連接 Microsoft 365 Copilot 實例的服務,連接到 ServiceNow 環境。
  • ServiceNow 生產環境或試用環境。

此外,為了讓客戶服務代表可以在 ServiceNow 中使用 Agent,您必須將基本使用者和全通路 Agent 角色指派給他們。 如果你啟用多位使用者的 Copilot,請將所需角色指派給所有預期使用者,並在 ServiceNow 設定小工具時包含他們的使用者群組。 如需進一步了解,請參閱為使用者指派資訊安全角色

將 Agent 整合在 ServiceNow 中

  1. 執行導覽中的步驟,複製從 iframe src=< 開始的 >。 例如:https://copilotforservice-test.azureedge.net/widget/index.html?dynamicsUrl=https://XXXXXX.crm10.dynamics.com。 你可以在 ServiceNow 的配置小工具步驟中使用這個網址。

  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. 選取全部,接著搜尋用戶端指令碼, and then select 系統定義>用戶端指令碼
    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. 選取全部,接著搜尋用戶端指令碼, and then select 系統定義>用戶端指令碼
    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,然後選取 Openframe>設定
    2. 在右上角選取+新增
    3. 輸入 Microsoft Copilot 做為名稱和標題。
    4. 輸入 450 作為寬度,輸入 600 作為高度。
    5. 選擇你想在 Microsoft 365 Copilot 中啟用服務的 使用者群組
    6. 選擇 網址 欄位旁的鎖定圖示解鎖,然後將服務貼上你之前從服務Microsoft儲存的 365 Copilot 小工具 URL Microsoft 365 Copilot 管理員頁面。
    7. 選取送出
    8. 重新整理頁面。 Microsoft 365 Copilot 小工具中的服務應該會出現在您選擇圖示的頂端導航列中。
    9. 在你在 Microsoft 365 Copilot 開啟 Service 之前,請確認你已允許 ServiceNow 頁面的彈出視窗。