Vous êtes ici :
Utilisation d'un flux d'écran pour transmettre des données d'entrée à un flux WhatsApp dynamique
Le flux d'écran peut collecter des données clients et les transmettre en toute sécurité dans des variables. Ces variables peuvent ensuite servir d'entrée au flux WhatsApp dynamique qui est créé avec un composant de messagerie Formulaire basé sur Apex. Pour ajouter un contenu personnalisé au message, dans le composant de messagerie Formulaire basé sur Apex, ajoutez des références dynamiques à ces données d'entrée. Par exemple, pour prendre un rendez-vous vétérinaire, le flux d'écran recueille des détails spécifiques, tels que le type d'animal et le problème, et transmet dynamiquement ces informations au composant de messagerie Formulaire basé sur Apex.
Éditions requises
| Afficher les éditions prises en charge. | |
Cet article s'applique à :
|
Canaux WhatsApp avancés, WhatsApp unifié |
Cet article ne s'applique pas à :
|
Chat dans l'application avancé, Chat Web avancé, Facebook Messenger standard et avancé, SMS standard et avancé, Apple Messages for Business avancé, LINE avancé et Bring Your Own Channel |
| Autorisations utilisateur requises | |
|---|---|
| Pour créer des composants de messagerie : | Personnaliser l'application ET Afficher la configuration OU Administrateur système |
| Pour envoyer et recevoir des messages dans Messagerie : | Agent de messagerie |
Lorsque vous créez un composant de messagerie Formulaire basé sur Apex, ces paramètres d'entrée standard sont disponibles, par défaut.
| Paramètre | Description |
|---|---|
FormData |
Stocke les données d'entrée transmises au flux. Les données sont stockées sous forme de chaîne JSON de paires clé-valeur. Pour référencer ces données, vous devez définir la structure des données dans un modèle de données. La structure du modèle de données doit correspondre à la structure du JSON. Vous pouvez accéder à ces données en utilisant Apex ou un flux d'écran. |
FormEntryScreenId |
Stocke l'ID de l'écran d'entrée, qui est le premier écran affiché par l'utilisateur de la messagerie. |
Vous trouverez ces paramètres par défaut sous l'onglet Paramètres de la section Détails du composant.
Pour vous aider à comprendre comment utiliser ces paramètres et un flux d'écran pour transmettre des données d'entrée, examinons un exemple.
-
Ouvrez le format Flux du composant de messagerie Formulaire basé sur Apex.
-
Sous le format Flux, cliquez sur Gérer les données afin de définir un modèle de données pour toutes les données d'entrée transmises à partir du paramètre FormData.
Par exemple, le paramètre FormData stocke ces données d'entrée.
{“FirstName”:“Albert”,“LastName”:“Costa”,“isStudent”:“true”} -
Pour ajouter un champ au modèle de données, cliquez sur Ajouter un champ, puis configurez ses propriétés.
Exécutez cette étape pour chaque champ du paramètre FormData. Pour créer une structure, sélectionnez le type de données Objet d'un champ, puis ajoutez des champs imbriqués.

- Une fois le modèle de données défini, enregistrez-le.
-
Sous le format Flux, cliquez sur Gérer les données afin de définir un modèle de données pour toutes les données d'entrée transmises à partir du paramètre FormData.
-
Pour utiliser la valeur d'un champ de modèle de données dans une propriété Flux, ajoutez une référence dynamique.
-
Ouvrez le format Flux et accédez à la propriété pour laquelle vous souhaitez utiliser une référence dynamique.
Vous pouvez par exemple ajouter une référence dynamique au champ Contenu de texte d'un élément d'écran Corps.
- Dans le champ Type, sélectionnez Référence dynamique.
-
Dans Sélectionner le champ de référence, sélectionnez le champ du modèle de données.

Les références dynamiques peuvent extraire des données de champs de modèle de données ou de champs d'entrée définis dans un écran.
-
Dans la zone de dessin, prévisualisez la référence dynamique.

-
Ouvrez le format Flux et accédez à la propriété pour laquelle vous souhaitez utiliser une référence dynamique.
-
Pour transmettre des données dans le composant de messagerie, créez un flux d'écran.
Le flux d'écran peut collecter les données de la session de messagerie et les utiliser dans le composant de messagerie Formulaire basé sur Apex. Pour illustrer ce fonctionnement, créons un exemple de flux d'écran.
-
Définissez les variables de flux d'écran.
Variable Valeur sessionIdStocke l'ID d'enregistrement de la session de messagerie. initialDataStocke les données d'entrée du formulaire basé sur Apex. Les champs de cette chaîne JSON doivent correspondre aux noms de champ que vous avez ajoutés au modèle de données. initialScreenIdStocke l'ID d'écran initial du formulaire basé sur Apex. Il s'agit du premier écran affiché pour un utilisateur de la messagerie. meuNameStocke le nom de l'utilisateur de la messagerie. itemsCette variable de collection stocke une liste d'éléments. -
Dans le flux d'écran, ajoutez les actions ci-dessous dans cet ordre. Pour récupérer les données d'un objet Salesforce, ajoutez une action Obtenir des enregistrements. Pour attribuer des valeurs aux variables d'écran, ajoutez une action Attribution.
Action Description Action GetSession Get Records Obtenez la session de messagerie en fonction de l'ID de session. Vous pouvez récupérer des données pertinentes à partir de cette session de messagerie. Dans ce cas, il récupère et stocke les valeurs de champ Id et MessagingEndUserId. Action GetMEU Get Records Récupérez l'enregistrement Utilisateur de Messagerie basé sur MessagingEndUserId. Action setMEUName Attribution Définissez la variable meuNamesur la valeur du champ Nom de l'utilisateur de la messagerie dans l'enregistrement Utilisateur de la messagerie.Action GetDynamicFlowItem Get Records Récupérez tous les enregistrements DynamicFlowItem de l'objet DynamicFlowItem, en stockant les champs ID, ItemId__c et itemTitle__c dans la variable de collection items.Action Apex GenerateJson Convertit les données d'entrée des variables itemsetmeuNameau format JSON. Les champs de l'objet JSON sont mappés avec les champs du modèle de données du flux. Cette action est basée sur une classe Apex. Voir exemple de classe Apex après ce tableau.Action setData Attribution Définissez la variable InitialDatasur la valeur de l'action JSON générée.Cette classe Apex transforme les données d'entrée structurées (le nom d'un utilisateur et une liste d'enregistrements Salesforce) en une chaîne JSON unique. Cette chaîne JSON est ensuite utilisée pour transmettre des données d'entrée au composant de messagerie Formulaire basé sur 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; } } -
Ajoutez une action Écran au flux d'écran, puis faites glisser le composant Message avancé vers l'écran.

-
Pour spécifier les données d'entrée, définissez ces propriétés du composant Message avancé comme indiqué.
Propriété Valeur ID de session de messagerie Sélectionnez sessionId, la variable de flux d'écran qui contient l'ID de session.Nom du composant de messagerie Sélectionnez le nom du composant de messagerie Formulaire basé sur Apex que vous avez créé. Données de formulaire Apex Sélectionnez initialData, la variable de flux d'écran qui contient les données d'entrée.ID d'écran Entrée au formulaire Apex Sélectionnez initialScreenId, la variable de flux d'écran qui contient l'ID d'écran initial.À l'exécution, l'action d'écran invoque le composant de messagerie Formulaire basé sur Apex et lui transmet ces données d'entrée.
-
Enregistrez et activez le flux d'écran.

-
Définissez les variables de flux d'écran.
-
Pour permettre à un agent de service d'exécuter le flux d'écran, incorporez le flux d'écran actif à la page de la console de service.
Par exemple, ajoutez le composant Flux à la page d'enregistrement Session de messagerie.

Pendant une session de messagerie, pour lancer le flux d'écran depuis la page, l'agent de service peut cliquer sur Suivant.
Pour insérer le composant de messagerie du flux dans la conversation avec le client, l'agent de service peut cliquer sur Insérer un message.

L'agent de service peut ensuite envoyer le message au client.



