Central de Ajuda › Agente de Fluxo avançado: variáveis, condições, webhook e subfluxos

Agente de Fluxo avançado: variáveis, condições, webhook e subfluxos

Nível: Intermediário Tempo de leitura: 11 min


Quando usar

Este artigo continua Agente de Fluxo: atendimento por menus, sem IA. Ele cobre os blocos que transformam um menu simples num atendimento completo: guardar o que o cliente responde, decidir o caminho por regras, consultar o seu sistema no meio da conversa, enviar um formulário do WhatsApp e dividir o fluxo em partes.

O exemplo usado aqui é uma clínica: o fluxo pergunta o nome, pede o número da carteirinha do convênio, consulta o sistema da clínica e responde conforme a cobertura.


Variáveis

Todo texto do fluxo aceita variáveis entre chaves duplas. Elas são trocadas pelo valor na hora do envio.

Variável O que traz
{{contact.name}}, {{contact.first_name}}, {{contact.email}}, {{contact.phone}} Dados da ficha do contato (nome completo e só o primeiro nome)
{{contact.chave}} Um campo personalizado, pela chave
{{contact.stage}} Etapa atual no funil
{{answers.nome}} Resposta de "Pedir para digitar" ou "Pedir para escolher" com nome nome
{{form.campo}} Campo do último formulário do WhatsApp respondido
{{webhook.chave.campo}} Campo da resposta de um Webhook com nome chave
{{last_message}} Última mensagem do cliente
{{flow.name}} Nome do agente de Fluxo

Variável sem valor vira texto vazio. O painel de cada nó lista só as variáveis que existem naquele ponto do fluxo: uma resposta só aparece nos nós que vêm depois da pergunta.


Pedir para digitar

Faz uma pergunta aberta e espera o cliente escrever.

Painel do nó Pedir para digitar, com formato esperado, nome da resposta e campo do contato

  • O que esperar: texto livre, número, email, telefone, CPF, data, CEP ou um padrão personalizado (expressão regular, para formatos próprios como um número de pedido). Resposta fora do formato recebe a mensagem de erro e a pergunta de novo. Esgotadas as tentativas, o fluxo segue pela saída Resposta inválida; se ela não estiver conectada, vale a regra geral do fluxo (reapresentar, transferir ou encerrar).
  • Nome da resposta: como você vai chamar o valor nos próximos nós, em {{answers.nome}}. Só letras minúsculas, números e _.
  • Guardar no contato: além da variável, a resposta pode ir para o nome, o email ou um campo personalizado da ficha. O campo passa pela mesma validação de tipo da tela de contatos.

"Pedir para escolher" tem as mesmas duas opções de guardar: a opção escolhida vira {{answers.nome}} e, se você quiser, vai para a ficha.


Se e Switch

Os dois dividem o fluxo por regras. Os critérios são os mesmos das segmentações: etiquetas, funil, campos personalizados, origem, conversas. No agente de Fluxo entra um grupo a mais, Variáveis do fluxo, com as respostas das perguntas e os campos das respostas de webhook e formulário. Para variáveis existe também o operador corresponde ao padrão (regex): uma pergunta de texto livre pode aceitar tanto um CEP quanto um "não sei", e o Switch separa os dois casos por padrão.

  • Se tem duas saídas, Sim e Não. Quem atende aos critérios segue por Sim.
  • Switch tem uma saída por regra, mais Senão. As regras são avaliadas em ordem; a primeira que bater ganha. Use quando há mais de dois caminhos, como faixas de valor ou tipos de cliente.

Painel do Switch com duas regras sobre a resposta do webhook

Uma saída sem conexão encerra a conversa ali. Conecte ao menos o "Senão" a uma mensagem ou a um transbordo.

No chat web o contato pode ainda não existir (sem telefone nem email). Nesse caso, regras sobre a ficha dão "não"; regras sobre variáveis do fluxo continuam valendo.


Webhook com resposta

Chama o seu sistema no meio da conversa e espera a resposta antes de seguir. Diferente do passo Webhook das automações, aqui o cliente está esperando do outro lado, então não há nova tentativa com espera: a chamada precisa responder rápido (você escolhe o tempo máximo, de 5 a 20 segundos).

Painel do nó Webhook com corpo personalizado usando a resposta da pergunta

  • URL, cabeçalhos e corpo funcionam como nas automações. O corpo personalizado aceita as variáveis do fluxo, então dá para mandar {{answers.carteirinha}} para o seu sistema.
  • Nome da resposta: o JSON que voltar fica em {{webhook.nome}}. Um campo específico fica em {{webhook.nome.campo}}, com ponto para dados aninhados: {{webhook.convenio.cobertura.tipo}}.
  • Campos da resposta que o fluxo usa: liste os campos que você quer ver como opção no Se e no Switch. Sem isso, a resposta inteira continua disponível nos textos, só não aparece na lista de critérios.
  • Saídas: Sucesso (resposta 2xx) e Falha (qualquer outra resposta, sem resposta no tempo ou URL bloqueada). Sem a saída Falha conectada, o bot envia a mensagem de erro do nó e para o turno.
  • Enviar teste manda a chamada uma vez, com dados fictícios ou de um contato real, e mostra a resposta já lida.

A resposta fica guardada na conversa até o fim do fluxo. Em cada conversa cabem as quatro últimas respostas de webhook.


Enviar formulário do WhatsApp

Envia um formulário do WhatsApp (telas que abrem dentro do app) e espera o cliente preencher. Escolha um formulário publicado do mesmo número do agente, escreva o texto do convite e o texto do botão.

  • As respostas ficam em {{form.campo}}, uma por campo do formulário, e aparecem no Se e no Switch.
  • Se o formulário tiver mapeamento "Salvar no contato", a ficha é atualizada antes de o fluxo continuar.
  • Se o cliente digitar em vez de abrir o formulário, recebe um lembrete; esgotadas as tentativas, vale a regra geral do fluxo.
  • Só funciona no WhatsApp. No chat web, o fluxo segue pela saída Sem WhatsApp (ou por Respondeu, se ela não estiver conectada).

Acionar outro fluxo

Entra no início de outro agente de Fluxo da sua organização. Serve para quebrar um atendimento grande em partes: um fluxo por departamento, um fluxo de cadastro reaproveitado em vários lugares.

  • Voltar para este fluxo: quando o outro fluxo chega no nó Fim, a conversa volta e segue pela saída "Quando terminar". É o modo padrão.
  • Ficar no outro fluxo: a conversa continua lá, e o Fim de lá encerra a conversa.

As respostas são compartilhadas: o que o cliente respondeu antes continua disponível no fluxo acionado, e o que ele responder lá volta junto. No nó Fim existe a opção "Encerrar a conversa mesmo quando este fluxo foi acionado por outro", para um subfluxo que precisa fechar o atendimento.

O fluxo acionado é um agente comum: aparece em Agentes e conta no limite do plano. Deixe-o com status de rascunho ou inativo se ele não deve atender sozinho; o fluxo que chama continua funcionando. Um fluxo não pode acionar a si mesmo, e no máximo cinco fluxos podem ficar encadeados.


Ações de contato

Etiqueta, Campo, Etapa do funil, Responsável, Anotação e listas funcionam como nas automações, com as mesmas opções. Veja Passos que mexem na ficha do contato. Duas diferenças:

  • Os textos aceitam as variáveis do fluxo. Uma anotação pode registrar Carteirinha {{answers.carteirinha}} não encontrada.
  • Uma ação que falha (campo que não existe mais, etiqueta apagada) não trava o atendimento: o fluxo segue pela saída principal e o erro fica no registro técnico. A anotação na ficha vem com o prefixo "Fluxo" e o nome do agente.

O botão de teste no card roda a ação de verdade para um contato que você escolhe, sem avançar o fluxo.


Dicas para um bom resultado

  • Nomeie as respostas pelo significado. cep, carteirinha, setor são fáceis de reconhecer no Se, no webhook e nas mensagens.
  • Valide o formato na pergunta. Pedir "Número" para um CEP evita que o webhook receba texto solto.
  • Conecte a saída Falha do webhook. Uma mensagem honesta e um transbordo valem mais do que o cliente esperando.
  • Teste o webhook antes de publicar. O "Enviar teste" mostra o JSON lido; é dele que você tira os nomes dos campos para os critérios.
  • Teste o fluxo inteiro no painel de teste. Ele roda o motor de verdade, inclusive o webhook; só o transbordo é simulado.

E depois?