使用畫面流程將輸入資料傳送至動態 WhatsApp 流程
畫面流程可以收集客戶資料並安全地將其傳遞至變數。接著,這些變數可以作為使用以 Apex 為基礎表單傳訊元件建立的動態 WhatsApp 流程輸入。若要將個人化內容新增至訊息,請在以 Apex 為基礎的表單傳訊元件中,將動態參照新增至此輸入資料。例如,若要排程獸醫約會,畫面流程會收集特定詳細資料,例如動物類型與問題,並將此資訊動態傳遞至以 Apex 為基礎的表單傳訊元件。
必要版本
| 檢視支援的版本。 | |
此文章適用於:
|
增強型 WhatsApp 管道、統一的 WhatsApp |
此文章不適用於:
|
增強型應用程式內聊天、增強型 Web 聊天、標準和增強型 Facebook Messenger、標準和增強型 SMS、增強型 Apple Messages for Business、增強型 LINE 和自帶管道 |
| 需要的使用者權限 | |
|---|---|
| 若要建立傳訊元件: | 「自訂應用程式」和「檢視設定和組態」權限 或 系統管理員 |
| 若要在「傳訊」中傳送和接收訊息: | 傳訊工作人員 |
當您建立以 Apex 為基礎的表單傳訊元件時,這些標準輸入參數預設為可用。
| 參數 | 描述 |
|---|---|
FormData |
儲存傳送至流程的輸入資料。資料會儲存為金鑰值配對的 JSON 字串。若要參照此資料,您必須在資料模型中定義資料結構。資料模型的結構必須符合 JSON 的結構。您可以使用 Apex 或畫面流程來存取此資料。 |
FormEntryScreenId |
儲存進入畫面的識別碼,這是傳訊使用者看到的第一個畫面。 |
您可以在「元件詳細資料」區段的「參數」索引標籤上找到這些預設參數。
為了協助您瞭解如何使用這些參數和畫面流程來傳遞輸入資料,請參考以下範例。
-
開啟 Apex 式表單傳訊元件的「流程」格式。
-
在「流程」格式中,按一下「管理資料」,為從 FormData 參數傳入的所有輸入資料定義資料模型。
例如,FormData 參數會儲存此輸入資料。
{“FirstName”:“Albert”,“LastName”:“Costa”,“isStudent”:“true”} -
若要將欄位新增至資料模型,請按一下「新增欄位」並設定其內容。
針對 FormData 參數中的每個欄位執行此步驟。若要建立結構,請選取欄位的「物件」資料類型,然後新增巢狀欄位。

- 定義資料模型完成後,請將其儲存。
-
在「流程」格式中,按一下「管理資料」,為從 FormData 參數傳入的所有輸入資料定義資料模型。
-
若要使用「流程」內容中資料模型欄位的值,請新增動態參照。
-
開啟「流程」格式,並找到您要使用動態參照的內容。
例如,您可以為「內文」畫面元素的「文字內容」欄位新增動態參照。
- 在「類型」欄位中,選取「動態參照」。
-
在「選取參照欄位」中,選取資料模型欄位。

動態參照可以從資料模型欄位或畫面中定義的輸入欄位提取資料。
-
在畫布中預覽動態參照。

-
開啟「流程」格式,並找到您要使用動態參照的內容。
-
若要將資料傳送至傳訊元件,請建立畫面流程。
畫面流程可以從傳訊工作階段收集資料,並在以 Apex 為基礎的「表單」傳訊元件中使用。為了說明如何運作,讓我們建立範例畫面流程。
-
定義畫面流程變數。
變數 值 sessionId儲存傳訊工作階段記錄識別碼。 initialData儲存以 Apex 為基礎的表單輸入資料。此 JSON 字串中的欄位必須符合您新增至資料模型的欄位名稱。 initialScreenId儲存 Apex 式表單的初始畫面識別碼。這是傳訊使用者看到的第一個畫面。 meuName儲存傳訊使用者的名稱。 items此集合變數會儲存項目清單。 -
在畫面流程中,依此順序新增這些動作。若要從 Salesforce 物件取用資料,請新增「取得記錄」動作。若要將值指派給畫面變數,請新增「指派」動作。
動作 描述 getSession 取得記錄動作 根據工作階段識別碼取得傳訊工作階段。您可以從該傳訊工作階段取得相關資料。在此情況下,它會取用並儲存 Id 和 MessagingEndUserId 欄位值。 getMEU 取得記錄動作 根據 MessagingEndUserId 取得「傳訊使用者」記錄。 setMEUName 指派動作 將 meuName變數設定為「傳訊使用者」記錄中「傳訊使用者名稱」欄位的值。getDynamicFlowItem 取得記錄動作 從 DynamicFlowItem 物件取得所有 DynamicFlowItem 記錄,將識別碼、ItemId__c 和 itemTitle__c 欄位儲存在 items集合變數中。GenerateJson Apex 動作 將 items和meuName變數中的輸入資料轉換為 JSON 格式。JSON 物件的欄位會對應至流程資料模型中的欄位。此動作以 Apex 類別為基礎。請參閱此表格後的範例 Apex 類別。setData 指派動作 將 InitialData變數設定為所產生 JSON 動作的值。此 Apex 類別會將結構化輸入資料 (使用者名稱和 Salesforce 記錄清單) 轉換為單一 JSON 字串。接著此 JSON 字串會用來將輸入資料傳送至以 Apex 為基礎的表單傳訊元件。
public class FlowJSONBuilder { // 1. Input parameters public class FlowInput { @InvocableVariable(label='User Name' required=true) public String meuName; // CHANGE: Use List<SObject> instead of List<DynamicFlowItems__c> to avoid compile error @InvocableVariable(label='Flow Items' required=true) public List<SObject> items; } // 2. Output parameters public class FlowOutput { @InvocableVariable(label='Generated JSON') public String jsonString; } // 3. Internal Wrapper classes public class JSONStructure { public String greeting; public List<ItemWrapper> items; } public class ItemWrapper { public String id; public String title; } // 4. Main Method @InvocableMethod(label='Generate Custom JSON' description='Builds the JSON string from Flow items') public static List<FlowOutput> generateJson(List<FlowInput> requests) { List<FlowOutput> outputs = new List<FlowOutput>(); for (FlowInput request : requests) { FlowOutput output = new FlowOutput(); JSONStructure jsonRoot = new JSONStructure(); jsonRoot.greeting = 'Hello ' + request.meuName + '!'; jsonRoot.items = new List<ItemWrapper>(); if (request.items != null) { // Loop through generic SObjects for (SObject genericRec : request.items) { // CAST the generic SObject to your specific Custom Object DynamicFlowItem__c rec = (DynamicFlowItem__c)genericRec; ItemWrapper item = new ItemWrapper(); item.id = rec.itemId__c; item.title = rec.itemTitle__c; jsonRoot.items.add(item); } } output.jsonString = JSON.serialize(jsonRoot); outputs.add(output); } return outputs; } } -
將「畫面」動作新增至畫面流程,然後將「增強型訊息」元件拖曳至畫面。

-
若要指定輸入資料,請依照所示設定這些「增強型訊息」元件內容。
內容 值 傳訊工作階段識別碼 選取「 sessionId」,此為包含工作階段識別碼的畫面流程變數。傳訊元件名稱 選取您建立的 Apex 型表單傳訊元件名稱。 Apex 表單資料 選取「 initialData」,即包含輸入資料的畫面流程變數。Apex 表單項目畫面識別碼 選取「 initialScreenId」,此為包含初始畫面識別碼的畫面流程變數。在執行階段,畫面動作會叫用以 Apex 為基礎的表單傳訊元件,並將此輸入資料傳送至該元件。
-
儲存並啟用畫面流程。

-
定義畫面流程變數。
-
若要讓服務代表執行畫面流程,請在 Service Console 頁面中內嵌已啟用的畫面流程。
例如,將「流程」元件新增至「傳訊工作階段」記錄頁面。

在傳訊工作階段期間,若要從頁面啟動畫面流程,服務代表可以按一下「下一步」。
若要將流程的傳訊元件插入與客戶的對話,服務代表可以按一下「插入訊息」。

接著,服務代表可以將訊息傳送給客戶。
此文章是否解決您的問題?
請讓我們知道,以便我們改進!



