Usted está aquí:
Utilizar un flujo de pantalla para pasar datos de entrada a un flujo de WhatsApp dinámico
El flujo de pantalla puede recopilar datos de clientes y pasarlos de forma segura en variables. Estas variables pueden servir a continuación como entrada para el flujo de WhatsApp dinámico que se crea con un componente de mensajería de formulario basado en Apex. Para agregar contenido personalizado al mensaje, en el componente de mensajería de formulario basado en Apex, agregue referencias dinámicas a estos datos de entrada. Por ejemplo, para programar una cita veterinaria, el flujo de pantalla recopila detalles específicos, como el tipo de animal y el problema, y pasa de forma dinámica esta información al componente de mensajería de formulario basado en Apex.
Ediciones necesarias
| Ver ediciones admitidas. | |
Este artículo se aplica a:
|
Canales de WhatsApp mejorados, WhatsApp unificado |
Este artículo no se aplica a:
|
Chat en aplicación mejorado, Chat web mejorado, Facebook Messenger estándar y mejorado, SMS estándar y mejorado, mensajes de Apple Messages for Business mejorados, LINE mejorado y Aportar su propio canal |
| Permisos de usuario necesarios | |
|---|---|
| Para crear componentes de mensajería: | Personalizar aplicación Y Ver parámetros y configuración O Administrador del sistema |
| Para enviar y recibir mensajes en Mensajería: | Agente de Mensajería |
Cuando crea un componente de mensajería de formulario basado en Apex, estos parámetros de entrada estándar están disponibles de forma predeterminada.
| Parámetro | Descripción |
|---|---|
FormData |
Almacena datos de entrada pasados al flujo. Los datos se almacenan como una cadena JSON de pares clave-valor. Para hacer referencia a estos datos, debe definir la estructura de los datos en un modelo de datos. La estructura del modelo de datos debe coincidir con la estructura del JSON. Puede acceder a estos datos utilizando Apex o un flujo de pantalla. |
FormEntryScreenId |
Almacena el Id. de la pantalla de entrada, que es la primera pantalla que ve el usuario final de mensajería. |
Puede encontrar estos parámetros predeterminados en la ficha Parámetros de la sección Detalles de componente.
Para ayudarle a comprender cómo utilizar estos parámetros y un flujo de pantalla para pasar datos de entrada, veamos un ejemplo.
-
Abra el formato Flujo del componente de mensajería de formulario basado en Apex.
-
En el formato Flujo, haga clic en Gestionar datos para definir un modelo de datos para todos los datos de entrada que se pasan desde el parámetro FormData.
Por ejemplo, el parámetro FormData almacena estos datos de entrada.
{“FirstName”:“Albert”,“LastName”:“Costa”,“isStudent”:“true”} -
Para agregar un campo al modelo de datos, haga clic en Agregar campo y configure sus propiedades.
Realice este paso para cada campo en el parámetro FormData. Para crear una estructura, seleccione el tipo de datos Objeto para un campo y agregue campos anidados.

- Cuando termine de definir el modelo de datos, guárdelo.
-
En el formato Flujo, haga clic en Gestionar datos para definir un modelo de datos para todos los datos de entrada que se pasan desde el parámetro FormData.
-
Para utilizar el valor de un campo de modelo de datos en una propiedad Flujo, agregue una referencia dinámica.
-
Abra el formato Flujo y localice la propiedad para la que desea utilizar una referencia dinámica.
Por ejemplo, puede agregar una referencia dinámica para el campo Contenido de texto para un elemento de pantalla Cuerpo.
- En el campo Tipo, seleccione Referencia dinámica.
-
En Seleccionar el campo de referencia, seleccione el campo de modelo de datos.

Las referencias dinámicas pueden extraer datos de campos de modelo de datos o campos de entrada definidos en una pantalla.
-
En el lienzo, realice una vista previa de la referencia dinámica.

-
Abra el formato Flujo y localice la propiedad para la que desea utilizar una referencia dinámica.
-
Para pasar datos al componente de mensajería, cree un flujo de pantalla.
El flujo de pantalla puede recopilar datos desde la sesión de mensajería y utilizarlos en el componente de mensajería Formulario basado en Apex. Para ilustrar cómo funciona, cree un flujo de pantalla de muestra.
-
Defina las variables de flujo de pantalla.
Variable Valor sessionIdAlmacena el Id. de registro de sesión de mensajería. initialDataAlmacena los datos de entrada para el formulario basado en Apex. Los campos de esta cadena JSON deben coincidir con los nombres de campo que agregó al modelo de datos. initialScreenIdAlmacena el Id. de pantalla inicial para el formulario basado en Apex. Esta es la primera pantalla que ve un usuario final de mensajería. meuNameAlmacena el nombre del usuario final de mensajería. itemsEsta variable de recopilación almacena una lista de elementos. -
En el flujo de pantalla, agregue estas acciones en este orden. Para recuperar datos desde un objeto de Salesforce, agregue una acción Obtener registros. Para asignar valores a las variables de pantalla, agregue una acción Asignación.
Acción Descripción Acción Obtener registros getSession Obtenga la sesión de mensajería basándose en el Id. de sesión. Puede obtener datos relevantes desde esa sesión de mensajería. En este caso, recupera y almacena los valores de campo Id. y MessagingEndUserId. Acción Obtener registros getMEU Obtenga el registro Usuario de mensajería basándose en MessagingEndUserId. acción Asignación setMEUName Establezca la variable meuNameen el valor del campo Nombre de usuario de mensajería desde el registro Usuario de mensajería.Acción getDynamicFlowItem Obtener registros Obtenga todos los registros DynamicFlowItem desde el objeto DynamicFlowItem, almacenando los campos ID, ItemId__c y itemTitle__c en la variable de recopilación de items.Acción GenerarJson Apex Convierte los datos de entrada de las variables itemsymeuNameal formato JSON. Los campos del objeto JSON se asignan a los campos en el modelo de datos del flujo. Esta acción se basa en una clase Apex. Consulte la clase Apex después de esta tabla.Acción de asignación setData Establezca la variable InitialDataen el valor de la acción JSON generada.Esta clase Apex transforma datos de entrada estructurados (el nombre de un usuario y una lista de registros de Salesforce) en una única cadena JSON. Esta cadena JSON se utiliza a continuación para pasar datos de entrada al componente de mensajería de formulario basado en 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; } } -
Agregue una acción Pantalla al flujo de pantalla y luego arrastre el componente Mensaje mejorado a la pantalla.

-
Para especificar los datos de entrada, establezca estas propiedades del componente Mensaje mejorado como se muestra.
Propiedad Valor Id. de sesión de mensajería Seleccione sessionId, la variable de flujo de pantalla que contiene el Id. de sesión.Nombre de componente de Mensajería Seleccione el nombre del componente de mensajería de formulario basado en Apex que creó. Datos de formulario Apex Seleccione initialData, la variable de flujo de pantalla que contiene los datos de entrada.Id. de pantalla de entrada de formulario Apex Seleccione initialScreenId, la variable de flujo de pantalla que contiene el Id. de pantalla inicial.En tiempo de ejecución, la acción de pantalla invoca el componente de mensajería de formulario basado en Apex y le pasa estos datos de entrada.
-
Guarde y active el flujo de pantalla.

-
Defina las variables de flujo de pantalla.
-
Para permitir que un representante de servicio ejecute el flujo de pantalla, incruste el flujo de pantalla activo en la página de la consola de servicio.
Por ejemplo, agregue el componente Flujo a la página de registro Sesión de mensajería.

Durante una sesión de mensajería, para iniciar el flujo de pantalla desde la página, el representante de servicio puede hacer clic en Siguiente.
Para insertar el componente de mensajería del flujo en la plática con el cliente, el representante de servicio puede hacer clic en Insertar mensaje.

El representante de servicio puede enviar el mensaje al cliente.



