Använd ett skärmflöde för att skicka indata till ett dynamiskt WhatsApp-flöde
Skärmflödet kan samla in kunddata och säkert skicka dem till variabler. Dessa variabler kan sedan fungera som indata för det dynamiska WhatsApp-flödet som skapas med en Apex baserad formulärmeddelandekomponent. För att lägga till personligt innehåll i meddelandet, i den Apex komponenten formulärmeddelanden, lägg till dynamiska referenser till dessa indata. Till exempel, för att schemalägga en veterinärbokning samlar skärmflödet in specifika detaljer, som typ av djur och problem, och skickar dynamiskt denna information till den Apex baserade meddelandekomponenten för formulär.
Versioner som krävs
| Visa versioner som stöds. | |
Denna artikel gäller för:
|
Utökade WhatsApp-kanaler, Sammanslagen WhatsApp |
Denna artikel gäller inte för:
|
Utökad chatt i app, Utökad webbchatt, Standard och Utökad Facebook Messenger, Standard och Utökade SMS, Utökade Apple-meddelanden för företag, Utökad linje och Bring Your Own-kanal |
| Användarbehörigheter som krävs för att | |
|---|---|
| Skapa meddelandekomponenter: | Anpassa program OCH Visa inställningar och konfigurering ELLER Systemadministratör |
| Skicka och ta emot meddelanden i Meddelanden: | Meddelande agent |
När du skapar en Apex baserad formulärmeddelandekomponent är dessa standardindataparametrar tillgängliga som standard.
| Parameter | Beskrivning |
|---|---|
FormData |
Lagrar indata som skickas till flödet. Data lagras som en JSON-sträng av nyckelvärdepar. För att referera till dessa data måste du definiera datastrukturen i en datamodell. Datamodellens struktur måste matcha JSON:s struktur. Du kan komma åt dessa data med Apex eller ett skärmflöde. |
FormEntryScreenId |
Lagrar ID för inmatningsskärmen, vilket är den första skärm som den meddelande slutanvändaren ser. |
Du hittar dessa standardparametrar på fliken Parametrar i sektionen Komponentdetaljer.
För att hjälpa dig förstå hur du använder dessa parametrar och ett skärmflöde för att skicka in indata, låt oss titta på ett exempel.
-
Öppna flödesformatet för den Apex baserade formulärmeddelandekomponenten.
-
I formatet Flöde, klicka på Hantera data för att definiera en datamodell för alla indata som skickas in från parametern FormData.
Till exempel lagrar parametern FormData dessa indata.
{“FirstName”:“Albert”,“LastName”:“Costa”,“isStudent”:“true”} -
För att lägga till ett fält i datamodellen, klicka på Lägg till fält och konfigurera dess egenskaper.
Utför detta steg för varje fält i parametern FormData. För att skapa en struktur, välj datatypen Objekt för ett fält och lägg till kapslade fält.

- När du är färdig med att definiera datamodellen, spara den.
-
I formatet Flöde, klicka på Hantera data för att definiera en datamodell för alla indata som skickas in från parametern FormData.
-
För att använda värdet från ett datamodellfält i en flödesegenskap, lägg till en dynamisk referens.
-
Öppna formatet Flöde och hitta den egenskap som du vill använda en dynamisk referens för.
Du kan till exempel lägga till en dynamisk referens för fältet Textinnehåll för ett brödtextskärmelement.
- I fältet Typ, välj Dynamisk referens.
-
I fältet Välj referens, välj datamodellfältet.

Dynamiska referenser kan hämta data från datamodellfält eller inmatningsfält som definieras i en skärm.
-
På arbetsytan, förhandsgranska den dynamiska referensen.

-
Öppna formatet Flöde och hitta den egenskap som du vill använda en dynamisk referens för.
-
För att skicka data till meddelandekomponenten, skapa ett skärmflöde.
Skärmflödet kan samla in data från meddelandesessionen och använda dem i den Apex baserade meddelandekomponenten Formulär. För att illustrera hur detta fungerar, låt oss skapa ett exempel på ett skärmflöde.
-
Definiera skärmflödesvariablerna.
Variabel Värde sessionIdLagrar post-ID för meddelandesession. initialDataLagrar indata för det Apex baserade formuläret. Fälten i denna JSON-sträng måste matcha de fältnamn du lade till i datamodellen. initialScreenIdLagrar det inledande skärm-ID:t för det Apex baserade formuläret. Detta är den första skärmen som en meddelandeslutanvändare ser. meuNameLagrar namnet på den meddelande slutanvändaren. itemsDenna samlingsvariabel lagrar en lista över objekt. -
I skärmflödet, lägg till dessa åtgärder i denna ordning. För att hämta data från ett Salesforce-objekt, lägg till åtgärden Hämta poster. För att tilldela värden till skärmvariablerna, lägg till en Tilldelning-åtgärd.
Åtgärd Beskrivning getSession Hämta poster-åtgärd Hämta meddelandesessionen baserat på sessions-ID. Du kan få relevanta data från den meddelandesessionen. I detta fall hämtar och lagrar den fältvärdena Id och MessagingEndUserId. getMEU Hämta poster-åtgärd Hämta posten Meddelande användare baserat på MessagingEndUserId. setMEUName-tilldelningsåtgärd Ställ in variabeln meuNametill värdet för fältet Meddelande användarnamn från posten Meddelande användare.getDynamicFlowItem Hämta poster-åtgärd Hämta alla DynamicFlowItem-poster från objektet DynamicFlowItem och lagra fälten ID, ItemId__c och itemTitle__c i items.Apex GenerateJson Konverterar indata från variablerna itemsochmeuNametill JSON-formatet. Fälten i JSON-objektet mappas till fälten i flödets datamodell. Denna åtgärd baseras på en Apex klass. Se exempel på Apex klass efter denna tabell.setData-tilldelningsåtgärd Ställ in variabeln InitialDatatill värdet för den JSON-åtgärd som skapas.Denna Apex klass transformerar strukturerade indata—en användares namn och en lista över Salesforce-poster—till en enda JSON-sträng. Denna JSON-sträng används sedan för att skicka indata till den Apex baserade meddelandekomponenten för formulär.
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; } } -
Lägg till en skärmåtgärd i skärmflödet och dra sedan komponenten Utökat meddelande till skärmen.

-
För att specificera indata, ange dessa egenskaper för komponenten Utökat meddelande enligt bilden.
Egenskap Värde ID för meddelandesession Välj sessionId, den skärmflödesvariabel som innehåller sessions-ID.Meddelandekomponentnamn Välj namnet på den Apex baserade formulärmeddelandekomponent som du skapade. Apex formulärdata Välj initialData, den skärmflödesvariabel som innehåller indata.Skärm-ID för Apex Välj initialScreenId, den skärmflödesvariabel som innehåller det inledande skärm-ID:t.Vid körning åberopar skärmåtgärden den Apex baserade formulärmeddelandekomponenten och skickar dessa indata till den.
-
Spara och aktivera skärmflödet.

-
Definiera skärmflödesvariablerna.
-
För att låta en servicerepresentant köra skärmflödet, bädda in det aktiva skärmflödet på servicekonsolsidan.
Lägg till exempel till komponenten Flöde på postsidan för meddelandesession.

Under en meddelandesession kan servicerepresentanten klicka på Nästa för att starta skärmflödet från sidan.
För att infoga flödets meddelandekomponent i konversationen med kunden kan servicerepresentanten klicka på Infoga meddelande.

Servicerepresentanten kan sedan skicka meddelandet till kunden.



