再生指令碼
再生指令碼允許您手動執行指令碼。 它也用於從其他指令碼或外部流程啟動指令碼。 您也可以使用它來測試指令碼。 測試時可以與指令碼追蹤一起使用。
要測試指令碼,您可以再生:
-
使用trace option從Studio開始。
- 從 ACD 指令碼頁面。
若要從其他指令碼或流程啟動指令碼:
- 在呼叫指令碼中使用SPAWN action。
- 使用 POST/scripts/start API。 這是從任何外部流程再生產生指令碼的建議解決方案。
- 使用 ACD 指令碼頁面中的捷徑 URL。
程式碼參數
指令碼參數可以將資料傳遞到指令碼中。 資料可能來自其他指令碼,包括系統指令碼,或來自外部來源,例如 CRM 管理聯絡人、銷售資訊、支援詳情和案例歷史的第三方系統。 或 API。 它透過 p1 到 pN,傳遞到pX變數中的指令碼中,其中 N 是再生方法支援的參數的最大數量 。 您可以使用上一部分中列出的任何選項指定在再生指令碼時要傳遞到指令碼中的資料。
若要變更參數變數的名稱,可以使用新名稱在再生的指令碼中配置 Begin 動作。 當指令碼處理 BEGIN動作時,pX變數將轉換為新名稱。 如果不指定新名稱,變數將保留 pX名稱。
當資料傳遞到指令碼時,您可以在 trace中看到它。 選擇 BEGIN動作以查看追蹤輸出變數清單中的參數變數。 如果您已使用新變數名稱配置 BEGIN 動作,請選擇指令碼追蹤中 BEGIN 後面的動作來查看它們。
根據值的來源,您可能會在追蹤輸出中看到所有 pX 變數,或僅看到保留值的變數。 從 ACD 指令碼頁面再生會傳遞所有pX 變數。 您未指定值的那些變數將保留空字串。 對於其他再生方法,參數變數僅在擁有值時才存在。
- 最多支援:
- 透過捷徑 URL 再生時,每個值 100 個字元。
- 使用 SPAWN 動作再生時,每個值 32 KB。
- 由 API 再生時,所有參數(包括豎線分隔符)總計 32 KB。
- 支援變數替換。 在大括號 ( { } ) 中輸入變數名稱。
- 根據再生方法支援不同的參數數量:
- 透過 URL 或 ACD 指令碼頁面再生時為 1-9 個參數。
- 透過 SPAWN 動作或 API 再生時為 1-20 個參數。
- 不支援動態資料物件。 物件必須先轉換為 JSON 字串。
範例
此範例顯示自訂參數如何從調用應用程式或指令碼傳遞到子指令碼。 在此範例中,部分變數名稱在 BEGIN 動作中發生了更改,但不是全部,因此您可以看到在兩種情況下會發生什麼。
下圖顯示 IBVoice 指令碼已從 ACD 指令碼頁面再生,其中包含 IBVoice ACD 技能 用於基於客服專員技能、能力和知識的互動的自動化傳遞和四個自訂參數值 value1、value2、value3 和 value4。
下圖顯示了 IBVoice 指令碼中的 BEGIN 動作,在 參數屬性的前三行中配置了新變數名稱。 新名稱為newVar1、newVar2和newVar3。
接下來的兩個圖像顯示了追蹤輸出中再生的結果。 此圖顯示了Begin動作,其中包含 p1、p2、p3 和 p4 變數中的四個指令碼參數值。
最後的圖像顯示了 BEGIN 動作處理完成後指令碼中的變數。 您可以透過點擊指令碼中的第二個動作來查看這一結果;在此範例中,為HOURS動作。 p1、p2和p3不再出現在指令碼中。 它們的值已指派給newVar1、newVar2和 newVar3。 變數p4-p9仍在指令碼中。 p4包含在指令碼頁面上指派給它的值。 其餘的pX 變數以空字串傳遞。
Studio動作比較
共有三個Studio動作可從目前指令碼啟動新指令碼。 然而,它們之間也存在一些差異:
- Runscript:當觸發另一個指令碼時,它不會從第二個指令碼回到第一個指令碼。
- Runsub:當 觸發子指令碼時,該指令碼可返回第一個指令碼,只要子指令碼擁有 動作。 該子指令碼完成後, 動作將向 動作傳回一個值。
- SPAWN:啟動與第一個指令碼並行運行的第二個指令碼。 再生的指令碼無法將資料傳回第一個指令碼,除非您在再生的指令碼中包含 action。
使用 SPAWN 動作從另一個指令碼再生
如果您不需要向子指令碼傳遞參數值,您只需在父指令碼中新增並配置 SPAWN 動作即可。 如果需要傳遞參數,需要進行如下配置:
- 在父指令碼中進行以下更改:
- 將 SPAWN動作放置在您想要再生子指令碼的位置。 使用您需要傳遞給子指令碼的任何值來配置 SPAWN 動作中的參數屬性。 值在變數 p1 到p9中傳遞。
- 配置SPAWN動作的other properties。
-
在子指令碼中進行以下更改:
- 在 動作中配置 Parameters 屬性以變更自訂參數變數的名稱。 如果您不執行任何操作,自訂參數值將保留在 變數中。
- 如果您需要將值傳回父指令碼或呼叫應用程式,請新增並配置 action。
從 ACD 指令碼頁面再生
您可以從 CXone 中的 ACD 應用程式的指令碼頁面再生指令碼。 當您使用此方法時,所有pX 變數都會傳遞到再生的指令碼中。 沒有指定值的變數將作為空字串傳入。
- 在 CXone 中,點擊應用程式選擇器 並選擇ACD。
- 在「聯絡設定」下,點擊 Scripts。
- 點擊頁面上清單中的指令碼。
- 在指令碼的屬性頁面上,點擊再生標籤。
-
從下拉式清單中選擇ACD 技能。 該技能必須:
- 處於活躍狀態。
- 符合指令碼媒體類型。 例如,電話指令碼必須與電話技能相關聯。 您可以在技能的「詳細資料」標籤上找到技能類型。 Generic 類型的指令碼適用於任何活躍技能。
- 若要將資料傳遞到指令碼中,請在參數欄位中輸入值。 最多可以輸入九個值。
-
若要立即產生指令碼而不追蹤指令碼,請點擊再生。 「再生」標籤顯示訊息 指令碼已再生。 聯絡 ID:[數字]。
回應中的聯絡 ID 並不能確認您的指令碼已成功執行。 它僅表明觸發了再生。 產生聯絡 ID 後,該指令碼可能在任何位置失敗。
再生帶有ACD指令碼頁面捷徑 URL
ACD 指令碼頁面上的「顯示捷徑」選項會產生一個可作為標準 REST API GET 請求執行的 URL。 此 URL 使用查詢字串參數來告訴平台 如何再生指令碼。 參數及其值必須是 URL 編碼。
以下範例顯示了名為 IBVoice 的指令碼的捷徑 URL:
https://home-[clusterName].nice-incontact.com/inContact/Manage/Scripts/Spawn.aspx?scriptName=IBVoice&bus_no=12334567&scriptId=172309310&skill_no=20967527&p1=ValOne&p2=ValTwo&p3=&p4=&p5=&Guid=abcdefgh-1not-real-2345-6789abcdefgh
捷徑 URL 包含以下參數:
- 指令碼名稱。
- 業務單元 用於管理 CXone 環境的技術支援、計費和全域設定的高級組織分組編號。
- 指令碼 ID。
- ACD指令碼頁面上指定的技能的 ACD 技能 用於基於客服專員技能、能力和知識的互動的自動化傳遞 編號。
- ACD 指令碼頁面上指定的所有自訂參數值。
- GUID:產生的 128 位元文字字串,作為電腦或網路上資訊的唯一識別碼。
不要修改 GUID。 此外,GUID 應被視為密碼。 GUID 永遠無法重設。
- 在 CXone 中,點擊應用程式選擇器 並選擇ACD。
- 在「聯絡設定」下,點擊 Scripts。
- 點擊頁面上清單中的指令碼。
- 在指令碼的屬性頁面上,點擊再生標籤。
-
從下拉式清單中選擇ACD 技能。 該技能必須:
- 處於活躍狀態。
- 符合指令碼媒體類型。 例如,電話指令碼必須與電話技能相關聯。 您可以在技能的「詳細資料」標籤上找到技能類型。 Generic 類型的指令碼適用於任何活躍技能。
- 若要將資料傳遞到指令碼中,請在參數欄位中輸入值。 最多可以輸入九個值。
- 點擊顯示捷徑。
- 右鍵點擊「再生」標籤上資訊方塊中顯示的 [指令碼名稱] 連結的捷徑,然後選擇 複製連結地址。 複製選項的名稱可能會根據您使用的瀏覽器而有所不同。
- 將複製的 URL 貼到 Web 瀏覽器網址列中,然後按 Enter。
-
瀏覽器顯示以下回應訊息:
指令碼已再生。 聯絡 ID:[數字]
回應中的聯絡 ID 並不能確認您的指令碼已成功執行。 它僅表示已觸發再生。 產生聯絡 ID 後,該指令碼可能在任何位置失敗。
從 ACD 指令碼頁面再生並帶追蹤
您可以立即再生指令碼並擷取Studio 中的追蹤。 如果您正在測試指令碼,這將會很有用。 如果您之前再生過該指令碼但失敗了,則再生追蹤可以幫助您確定問題所在。
- In Studio, open the script you're spawning.
- Click Debug > Capture Script > Next Instance Only. To capture the script continuously, click Debug > Capture Script > Continuous.
- 在 CXone 中,點擊應用程式選擇器 並選擇ACD。
- 在「聯絡設定」下,點擊 Scripts。
- 點擊頁面上清單中的指令碼。
- 在指令碼的屬性頁面上,點擊再生標籤。
- 填寫「再生」標籤上的欄位。
- 執行再生:
- 在ACD應用程式指令碼的「再生」標籤上,點擊再生。
- 將捷徑 URL 複製並貼到瀏覽器網址列中,然後按 Enter。
- 返回Studio並觀察追蹤輸出。
- 如果指定了參數值,則可以在追蹤輸出中看到它們。 點擊追蹤輸出中的 BEGIN 動作並找到p1到p9 變數。 如果您為變數指定了新名稱,請點擊指令碼中的第二個動作以查看變更。
透過 API 再生指令碼
使用 POST/scripts/start API 再生指令碼。
使用該 API 時,需要注意的是:
- 需要以下參數:
- skillId:當作為 JSON 傳送時,該值必須是整數,但如果作為查詢參數傳送,則不須是整數。 技能必須:
- 處於活躍狀態。
- 符合指令碼媒體類型。 例如,電話指令碼必須與電話技能相關聯。 您可以在技能的「詳細資料」標籤上找到技能類型。 Generic 類型的指令碼適用於任何活躍技能。
scriptId或scriptPath:推薦使用scriptPath。 每次儲存指令碼變更時,指令碼 ID 都會發生變化,因此必須在參數中更新它。
- skillId:當作為 JSON 傳送時,該值必須是整數,但如果作為查詢參數傳送,則不須是整數。 技能必須:
- 您最多可以包含 20 個參數。
- 參數必須以豎線分隔的清單的形式傳送。
- API 支援所有參數最大為 32 KB,包括豎線分隔符。
- 參數不能包含豎線字元,除非它們是分隔符。
- 如果以 JSON 形式傳送請求,則必須正確轉義保留字元。
- 如果透過 URL 查詢參數傳送請求,則參數必須進行 URL 編碼。