啟用 ServiceNow 動作後,使用者可以要求 Google 助理執行下列 ServiceNow 動作:
- 建立 ServiceNow 事件
- 更新 ServiceNow 事件
舉例來說,使用者可以在應用程式中輸入「建立有關電腦硬體故障的 ServiceNow 事件」或「將 ServiceNow 事件 INC0010001 的緊急程度更新為高」。助理會視需要詢問其他詳細資料,然後要求使用者確認建立或更新要求。
助理可透過動作讀取及更新下列 ServiceNow 欄位:
欄位 |
說明 |
---|---|
來電者 |
必要。代表建立事件的呼叫者電子郵件地址,例如 user@google.com。 |
標題 |
要建立的事件簡短標題。 |
說明 |
要建立的事件詳細資料。 |
類別 |
要建立的事件類別。 |
影響 |
事件的影響。 |
緊急 |
事件的緊急程度。 |
州/省 |
事件狀態。 |
指派對象 |
要指派事件的使用者電子郵件地址,例如 user@google.com 。 |
指派群組 |
要將事件指派給的使用者群組。 |
關閉代碼 |
事件的結案代碼。 |
關閉附註 |
關閉事件附註。 |
設定 ServiceNow 的驗證和權限
啟用 ServiceNow 動作前,ServiceNow 管理員必須授權並設定 ServiceNow 動作連接器。這是連結整合服務的必要步驟,可允許讀取和寫入權限,以便執行動作。
設定連結前,請確認已備妥下列項目:
管理員權限:您必須是 ServiceNow 管理員。
ServiceNow 執行個體:按照 ServiceNow 開發人員文件中的操作說明,建立 ServiceNow 執行個體。
Google Cloud 專案:使用可管理組織層級設定的管理員帳戶,來設定 Google Cloud 專案,確保組織能設定工作團隊集區。
工作團隊集區:請確認貴機構已完成設定,可管理工作團隊集區。
詳情請參閱「OAuth 2.0 with Inbound REST」網誌文章。
設定 ServiceNow
ServiceNow 提供兩個主要網站:
- 主要 ServiceNow 網站:ServiceNow 執行個體的網站。
- 管理使用者、群組和系統管理工作。
- 網址:ServiceNow 執行個體的網址。
- 使用管理員憑證登入。
- 開發人員網站:
- 設定知識庫、建立工作流程,以及開發自訂應用程式。
- 網址:
https://developer.service-now.com
。 - 使用 ServiceNow ID 登入。
建立 OAuth 端點
按照下列步驟,建立 OAuth 端點:
- 以管理員權限登入主要 ServiceNow 執行個體。
- 依序前往「All」(全部) >「System OAuth」(系統 OAuth) >「Application registry」(應用程式註冊資料庫)。
- 按一下「新增」,然後選取「為外部用戶端建立 OAuth API 端點」。擷取用戶端 ID 和用戶端密鑰。
- 填寫必要資訊:
- 名稱:不重複的名稱。
- 重新導向網址:
https://vertexaisearch.cloud.google.com/oauth-redirect
- 按一下「Submit」(提交) 即可建立憑證。
- 提交後,按一下名稱即可查看用戶端密鑰。
- 密鑰會經過遮蓋。按一下旁邊的鎖頭圖示,即可取消遮蓋並查看密鑰。
- 請保留用戶端 ID 和密鑰的副本,在必要時使用。
- 前往
developer.service-now.com
,然後點按「Manage instance password」(管理執行個體密碼)。 - 請保留使用者名稱和密碼的副本,在必要時使用。
- 在這個階段,設定 ServiceNow 資料儲存庫所需的所有五項資訊都已備妥。如果使用管理員角色擷取資料沒有問題,請繼續建立資料儲存庫。
設定角色和權限
您必須具備安全性管理員角色,才能建立及管理使用者。如果沒有這個角色,請點按個人資料下方的「提升角色」,將角色提升為 security_admin。選取 security_admin 角色,然後按一下「更新」。您必須具備 security_admin 角色,才能建立角色及管理使用者。
- 建立含有 ACL 規則的自訂角色:
- 依序前往「All」(全部) >「User administration」(使用者管理) >「Roles」(角色)。
- 按一下「新增」建立新角色。
- 選取名稱,然後按一下「提交」。
- 依序前往「System security」(系統安全性) >「Access Control (ACL)」(存取控管 (ACL)),建立新的 ACL 規則。
- 按一下「New」(新增),建立新的 ACL 規則。
- 選取角色,例如
sys_user_role
。 - 按一下「提交」,然後指派角色。
- 重複這個程序,直到授予所有資料表的存取權為止。連接器需要存取每個實體的下列資料表,才能順利執行作業:
- 事件:
incident
。 - 目錄項目:
sc_cat_item
,sc_cat_item_user_criteria_mtom
,sc_cat_item_user_criteria_no_mtom
,sc_cat_item_user_mtom
,sc_cat_item_user_no_mtom
。 - 知識:
kb_knowledge
、kb_knowledge_base
、kb_uc_can_read_mtom
、kb_uc_can_contribute_mtom
。 - 附件:所有列出的項目。
- 身分:
sys_user_role
、sys_user_has_role
、sys_user_group
、sys_user_grmember
、sys_user
。 - 根據新條件更新:
core_company
、cmn_location
、cmn_department
。 - 使用者條件:
user_criteria
。
- 事件:
- 在搜尋列中前往
sys_security_acl_role_list.do
,確認所有 ACL 都已更新。 - 選取要驗證的角色。
- 確認已將所有必要的 ACL 指派給所選角色。
- 將角色指派給服務帳戶:
- 依序前往「All」(全部) >「User Administration」(使用者管理) >「Users」(使用者),然後選取使用者。
- 找到要授予角色的使用者,然後選取該使用者。
- 如果沒有可用的使用者,請依序前往「System security」(系統安全性) >「Users and groups」(使用者和群組) >「Users」(使用者)。
- 按一下「使用者」表格中的「新增」,建立新的服務帳戶。
- 選取「Web service access only」(僅限存取 Web 服務) 核取方塊。
- 前往頁面底部的「角色」表格。
- 按一下右側的「編輯」。
- 授予先前建立的角色,並指派給使用者。根據建立的角色類型,選取適當的角色並指派。
- 取得使用者的使用者名稱和密碼。在同一頁面中,按一下「設定密碼」。
- 自動產生密碼並儲存,供日後使用:
- 使用者 ID:
manager
。 - 密碼:輸入系統自動產生的密碼。
- 使用者 ID:
建立專屬角色並指派 ACL
使用非管理員使用者角色時,即使使用者角色包含必要權限,執行 ServiceNow 動作時仍可能會遇到問題。為避免發生這個問題,請建立專屬角色並指派必要權限。
建立新角色
- 依序前往「User Administration」(使用者管理) >「Roles」(角色)。
- 點選「New」(新增)。
- 指定新角色的名稱,例如
database_admin_restricted
。 - 視需要輸入說明。
- 按一下「提交」。
將新角色指派給驗證使用者
- 依序前往「User Administration」>「Users」。
- 選取需要受限存取權的使用者。
- 在使用者記錄中,前往「角色」相關清單。
- 在「角色」相關清單中,按一下「編輯」。
- 在「集合」欄中,找出並選取剛建立的角色。
- 按一下「新增」,將角色移至「角色清單」。
- 按一下 [儲存]。
實作資料列層級權限
- 依序前往「System Security」(系統安全性) >「Access Controls (ACL)」(存取控管 (ACL))。
- 點選「New」(新增)。
設定下列欄位:
- 類型:選取「記錄」。
- 作業:選取「read」。
- 姓名:
- 在第一個下拉式選單中,選取 sys_db_object 資料表。
- 在第二個下拉式選單中,選取「無」。
- 必要角色:在「插入新列」欄位中,搜尋並選取新建立的角色。
按一下「提交」。
重複上述步驟,為 sys_glide_object 和 sys_dictionary 資料表導入資料列層級權限。
實作欄位層級權限
- 依序前往「System Security」(系統安全性) >「Access Controls (ACL)」(存取控管 (ACL))。
- 點選「New」(新增)。
- 設定下列欄位:
- 類型:選取「記錄」。
- 作業:選取「read」。
- 姓名:
- 在第一個下拉式選單中,選取目標資料表,例如 sys_db_object。
- 在第二個下拉式選單中,對表格中的所有欄位套用權限,或選取特定欄位名稱,例如「name」。
- 必要角色:在「插入新列」欄位中,搜尋並選取新建立的角色。
- 按一下「提交」。
- 重複執行上述步驟,為 sys_glide_object 和 sys_dictionary 表格中的特定或所有欄位,實作欄位層級權限。
設定工作團隊集區
請按照操作說明,使用下列其中一種設定建立工作團隊集區:
設定 ServiceNow 動作
開始前,請確認 Google Cloud 管理員已完成「為 ServiceNow 設定驗證和權限」一文中的步驟,並提供下列資訊:
欄位 | 說明 |
---|---|
用戶端 ID | ServiceNow 整合的用戶端 ID。 |
用戶端密鑰 | ServiceNow 整合的用戶端密鑰 |
使用者名稱 | 整合作業的使用者帳戶。 |
密碼 | 整合作業的密碼。 |
執行個體網址 (或到達網頁主機) | ServiceNow 網站的執行個體網址。格式如下:
https://INSTANCE_NAME.service-now.com |
驗證網址 | ServiceNow API 用戶端的授權 URI。格式如下:
https://INSTANCE_NAME.service-now.com/oauth_auth.do |
權杖網址 | ServiceNow API 用戶端的重新整理權杖 URI。格式如下:
https://INSTANCE_NAME.service-now.com/oauth_token.do |
在 Google Cloud 控制台中設定 ServiceNow 動作
如要使用控制台將動作新增至應用程式,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Agent Builder」頁面。
- 在導覽選單中,按一下「動作」。
- 按一下「新增動作」。
- 如要選取 ServiceNow 做為動作的來源,請在 ServiceNow 資訊卡中按一下「連結」。
- 在「Configuration」(設定) 頁面中,從「Select an instance」(選取執行個體) 下拉式清單選取 ServiceNow 資料存放區。
設定 ServiceNow 設定 輸入所選連接器執行個體的授權資訊:
- 輸入您在建立 OAuth 端點時擷取的「新用戶端 ID」和「新用戶端密鑰」。
- 輸入 ServiceNow Auth URI。請使用「
https://<var>INSTANCE_NAME</var>.service-now.com/oauth_auth.do
」格式。 - 輸入 ServiceNow 目的地 URI。請使用「
https://<var>INSTANCE_NAME</var>.service-now.com
」格式。 - 輸入 ServiceNow 權杖 URI。請使用「
https://<var>INSTANCE_NAME</var>.service-now.com/oauth_token.do
」格式。 - 輸入 ServiceNow 管理員的「使用者帳戶」和「密碼」。
選用:選取「啟用 PKCE 支援」,為應用程式增添一層安全防護。
選用:選取「Include system tables」(包含系統資料表),即可存取 ServiceNow 的基礎系統資訊 (系統資料表)。請仔細考慮後再選取這個選項,且僅在絕對必要時才選取。
選取要啟用的 ServiceNow 動作。
點選「完成設定」。您的動作會顯示在「動作」頁面。動作會在幾分鐘後生效。
使用 API 設定 ServiceNow 動作
如要使用 API 在應用程式中新增動作,請按照下列步驟操作。
為動作建立 ServiceNow 連接器:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-GFE-SSL: yes" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global:setUpDataConnector" \ -d '{ "collectionId": "COLLECTION_ID", "collectionDisplayName": "COLLECTION_DISPLAY_NAME", "dataConnector": { "dataSource": "servicenow", "params": { "user_account": "USER_ACCOUNT", "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET", "password": "PASSWORD", "instance_uri": "INSTANCE_URI", "auth_type": "OAUTH_PASSWORD_GRANT" }, "refreshInterval": "86400s", "entities": [ { "entityName": "knowledge_base", "params": { "inclusion_filters":{}, "exclusion_filters":{} } }, { "entityName": "catalog" }, { "entityName": "knowledge" }, { "entityName": "incident" }, { "entityName": "attachment" } ], "syncMode": "PERIODIC", "staticIpEnabled": false } }'
更改下列內容:
PROJECT_ID
:專案 ID。COLLECTION_ID
:集合的 ID。COLLECTION_DISPLAY_NAME
:集合的顯示名稱。USER_ACCOUNT
:ServiceNow 整合的使用者帳戶。CLIENT_ID
:ServiceNow 整合的用戶端 ID。PASSWORD
:ServiceNow 整合的密碼。INSTANCE_URI
:ServiceNow 網站的執行個體 URI。
更新連結器,加入動作設定。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/COLLECTION_ID/dataConnector?update_mask=action_config,bap_config,destination_configs" \ -d '{ "name": "projects/PROJECT_ID/locations/global/collections/COLLECTION_ID/dataConnector", "actionConfig": { "isActionConfigured": true, "actionParams": { "client_id": "CLIENT_ID", "client_secret": "CLIENT_SECRET", "auth_uri": "AUTH_URI", "token_uri": "TOKEN_URI", "pkce_support_enabled": true, "include_system_tables": true } }, "bapConfig": { "supported_connector_modes": "ACTIONS" }, "destinationConfigs": [ { "key": "host_url", "destinations": [ { "host": "INSTANCE_URL" } ] } ] }'
更改下列內容:
PROJECT_ID
:專案 ID。COLLECTION_ID
:集合的 ID。USERNAME
:ServiceNow 整合服務的使用者帳戶。CLIENT_ID
:ServiceNow 整合的用戶端 ID。PASSWORD
:ServiceNow 整合的密碼。AUTH_URI
:ServiceNow 整合的授權 URI。TOKEN_URI
:ServiceNow 整合的更新權杖 URI。INSTANCE_URL
:ServiceNow 網站的執行個體網址。
為助理啟用 ServiceNow 動作。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token --project "PROJECT_NUMBER")" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_NUMBER" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant?update_mask=enabledActions" \ -d '{ "name": "projects/PROJECT_NUMBER/locations/global/collections/default_collection/engines/APP_ID/assistants/default_assistant", "enabledActions": { "projects/PROJECT_NUMBER/locations/global/collections/CONNECTOR_ID/dataConnector": { "actionInfo": [ { "actionName": "create_servicenow_incident", "actionDisplayName": "Create ServiceNow Incident" }, { "actionName": "update_servicenow_incident", "actionDisplayName": "Update ServiceNow Incident" } ] } } }'
更改下列內容:
PROJECT_NUMBER
:您的 Google Cloud 專案編號。APP_ID
:應用程式的 ID。CONNECTOR_ID
:您在上一個步驟中產生的連結器集合 ID。
新增動作後,Google 助理就能在應用程式中代表使用者執行這些動作。使用者首次要求 Google 助理執行 ServiceNow 動作時,系統會要求他們授權存取 ServiceNow 帳戶。如要使用助理,使用者必須擁有 Gemini Enterprise Plus 授權。