Usar um fluxo de tela para passar dados de entrada para um fluxo do WhatsApp dinâmico
O fluxo de tela pode coletar dados do cliente e passá-los com segurança para variáveis. Essas variáveis podem então servir como entrada para o fluxo dinâmico do WhatsApp criado com um componente de mensagens de formulário baseado no Apex. Para adicionar conteúdo personalizado à mensagem, no componente de mensagens de formulário baseado no Apex, adicione referências dinâmicas a esses dados de entrada. Por exemplo, para agendar uma consulta veterinária, o fluxo de tela coleta detalhes específicos, como o tipo de animal e o problema, e transmite dinamicamente essas informações para o componente de mensagens de formulário baseado no Apex.
Edições obrigatórias
| Exibir edições com suporte. | |
Este artigo se aplica a:
|
Canais do WhatsApp aprimorado, WhatsApp unificado |
Este artigo não se aplica a:
|
Chat no aplicativo aprimorado, Chat da Web aprimorado, Facebook Messenger padrão e aprimorado, SMS padrão e aprimorado, Apple Messages for Business aprimorado, LINE aprimorado e Traga seu próprio canal |
| Permissões necessárias ao usuário | |
|---|---|
| Para criar componentes de mensagens: | Personalizar aplicativo E Visualizar configuração OU Administrador de sistemas |
| Para enviar e receber mensagens no Messaging: | Agente do Messaging |
Quando você cria um componente de mensagens de formulário baseado no Apex, estes parâmetros de entrada padrão estão disponíveis por padrão.
| Parâmetro | Descrição |
|---|---|
FormData |
Armazena dados de entrada passados para o fluxo. Os dados são armazenados como uma string JSON de pares de chave e valor. Para fazer referência a esses dados, você deve definir a estrutura dos dados em um modelo de dados. A estrutura do modelo de dados deve corresponder à estrutura do JSON. Você pode acessar esses dados usando o Apex ou um fluxo de tela. |
FormEntryScreenId |
Armazena o ID da tela de entrada, que é a primeira tela que o usuário final de mensagens vê. |
Você pode encontrar esses parâmetros padrão na guia Parâmetros da seção Detalhes do componente.
Para ajudá-lo a entender como usar esses parâmetros e um fluxo de tela para passar dados de entrada, vamos dar uma olhada em um exemplo.
-
Abra o formato de Fluxo do componente de mensagens de formulário baseado no Apex.
-
No formato de Fluxo, clique em Gerenciar dados para definir um modelo de dados para todos os dados de entrada que são passados do parâmetro FormData.
Por exemplo, o parâmetro FormData armazena esses dados de entrada.
{“FirstName”:“Albert”,“LastName”:“Costa”,“isStudent”:“true”} -
Para adicionar um campo ao modelo de dados, clique em Adicionar campo e configure suas propriedades.
Execute essa etapa para cada campo no parâmetro FormData. Para criar uma estrutura, selecione o tipo de dados Objeto para um campo e adicione campos aninhados.

- Depois de concluir a definição do modelo de dados, salve-o.
-
No formato de Fluxo, clique em Gerenciar dados para definir um modelo de dados para todos os dados de entrada que são passados do parâmetro FormData.
-
Para usar o valor de um campo de modelo de dados em uma propriedade Fluxo, adicione uma referência dinâmica.
-
Abra o formato de Fluxo e localize a propriedade para a qual você deseja usar uma referência dinâmica.
Por exemplo, você pode adicionar uma referência dinâmica para o campo Conteúdo do texto para um elemento de tela Corpo.
- No campo Tipo, selecione Referência dinâmica.
-
No campo Selecionar o campo de referência, selecione o campo de modelo de dados.

Referências dinâmicas podem capturar dados de campos de modelo de dados ou campos de entrada definidos em uma tela.
-
Na tela, visualize a referência dinâmica.

-
Abra o formato de Fluxo e localize a propriedade para a qual você deseja usar uma referência dinâmica.
-
Para passar dados para o componente de mensagens, crie um fluxo de tela.
O fluxo de tela pode coletar dados da sessão de mensagens e usá-los no componente de mensagens de formulário baseado no Apex. Para ilustrar como isso funciona, vamos criar um fluxo de tela de amostra.
-
Defina as variáveis de fluxo de tela.
Variável Valor sessionIdArmazena o ID de registro da sessão de mensagens. initialDataArmazena os dados de entrada para o formulário baseado no Apex. Os campos nessa string JSON devem corresponder aos nomes de campo que você adicionou ao modelo de dados. initialScreenIdArmazena o ID de tela inicial para o formulário baseado no Apex. Esta é a primeira tela que um usuário final de mensagens vê. meuNameArmazena o nome do usuário final de mensagens. itemsEssa variável de coleção armazena uma lista de itens. -
No fluxo de tela, adicione estas ações nesta ordem. Para recuperar dados de um objeto do Salesforce, adicione uma ação Obter registros. Para atribuir valores às variáveis de tela, adicione uma ação Atribuição.
Ação Descrição Ação getSession Obter registros Obtenha a sessão de mensagens com base no ID da sessão. Você pode obter dados relevantes dessa sessão de mensagens. Nesse caso, ele recupera e armazena os valores de campo Id e MessagingEndUserId. Ação getMEU Obter registros Obtenha o registro Usuário do Messaging com base no MessagingEndUserId. ação de Atribuição setMEUName Defina a variável meuNamepara o valor do campo Nome do usuário do Messaging do registro Usuário do Messaging.Ação getDynamicFlowItem Obter registros Obtenha todos os registros de DynamicFlowItem do objeto DynamicFlowItem, armazenando os campos ID, ItemId__c e itemTitle__c na variável de coleção items.Ação GenerateJson do Apex Converte os dados de entrada das variáveis itemsemeuNameno formato JSON. Os campos do objeto JSON são mapeados para os campos no modelo de dados do fluxo. Essa ação é baseada em uma classe do Apex. Consulte a classe do Apex de exemplo após esta tabela.ação de Atribuição de dados Defina a variável InitialDatapara o valor da ação JSON gerada.Essa classe do Apex transforma dados de entrada estruturados (um nome de usuário e uma lista de registros do Salesforce) em uma única string JSON. Essa string JSON é então usada para passar dados de entrada para o componente de mensagens de formulário baseado no 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; } } -
Adicione uma ação de Tela ao fluxo de tela e arraste o componente Mensagem aprimorada para a tela.

-
Para especificar os dados de entrada, defina estas propriedades do componente Mensagem aprimorada conforme mostrado.
Propriedade Valor ID da Sessão do Messaging Selecione sessionId, a variável de fluxo de tela que contém o ID da sessão.Nome do componente de mensagens Selecione o nome do componente de mensagens de formulário baseado no Apex que você criou. Dados de formulário do Apex Selecione initialData, a variável de fluxo de tela que contém os dados de entrada.ID da tela de entrada do formulário do Apex Selecione initialScreenId, a variável de fluxo de tela que contém o ID de tela inicial.No tempo de execução, a ação de tela chama o componente de mensagens de formulário baseado no Apex e transmite esses dados de entrada a ele.
-
Salve e ative o fluxo de tela.

-
Defina as variáveis de fluxo de tela.
-
Para permitir que um representante de serviço execute o fluxo de tela, integre o fluxo de tela ativo à página do console de serviço.
Por exemplo, adicione o componente Fluxo à página de registro de Sessão do Messaging.

Durante uma sessão de mensagens, para iniciar o fluxo de tela na página, o representante de serviço pode clicar em Avançar.
Para inserir o componente de mensagens do fluxo na conversa com o cliente, o representante de serviço pode clicar em Inserir mensagem.

O representante de serviço então pode enviar a mensagem ao cliente.



