Skip to main content

Documentação oficial da Meta:

Clique para acessar

Acesso aos Flows no Invenio Center

Para acessar os Flows no Invenio Center, siga o passo a passo abaixo:
  1. Acesse o Invenio Center,
  2. No menu principal, navegue até Canais,
  3. Selecione a opção WhatsApp,
  4. Escolha a WABA desejada,
  5. Clique na opção Flows.
Ao acessar essa área, será exibida a página inicial de Flows, contendo a listagem de todos os fluxos existentes no ambiente (caso haja).

Lista de Flows

Na tela inicial de Flows, é possível visualizar todos os fluxos criados com as seguintes informações:
  • Nome: Nome atribuído ao Flow.
  • Flow ID: Identificador numérico único do Flow.
  • Status:
    • Publicado — Flow já publicado na API da Meta.
    • Rascunho — Flow ainda não publicado.
  • Categoria: Classificação funcional do Flow.
  • Tipo: Indica se o Flow é estático ou dinâmico.
Essa visualização facilita o gerenciamento, organização e acompanhamento do ciclo de vida dos Flows.

Categorias de Flow

Os WhatsApp Flows são classificados de acordo com seu objetivo principal, facilitando a organização e utilização dentro da plataforma, conforme descrito abaixo:
CategoriaObjetivoExemplos
SIGN_UPCadastro de novos usuários na plataforma.Nome, e-mail, telefone, CPF/CNPJ, criação de senha
SIGN_INAutenticação de usuários já cadastrados.Login via telefone, código de verificação (OTP), senha
APPOINTMENT_BOOKINGAgendamento de compromissos ou serviços.Data, horário, local de atendimento
LEAD_GENERATIONCaptação e qualificação de potenciais clientes.Nome, empresa, cargo, interesse em produtos ou serviços
CONTACT_USFacilitar o contato do cliente com a empresa.Motivo do contato, setor desejado, mensagem
CUSTOMER_SUPPORTSuporte ao cliente e registro de solicitações.Tipo de problema, número de protocolo, descrição
SURVEYColeta de feedback e avaliação de satisfação.Avaliação de atendimento, feedback de produtos ou serviços
OTHERCasos não contemplados nas demais categorias.Processos internos, formulários administrativos, testes

Tipos de Flow

Os Flows podem ser classificados em dois tipos principais:
  • Flows Estáticos: Não dependem de integrações externas e utilizam formulários pré-configurados para coleta de informações. São ideais para atendimentos simples, rápidos e diretos, onde não há necessidade de personalização baseada em dados externos.
  • Flows Dinâmicos: Permitem integração com sistemas externos por meio de endpoints, possibilitando respostas personalizadas com base em dados contextuais. São recomendados para cenários mais complexos, que exigem maior inteligência e adaptação durante a interação com o usuário.

Criação de um Flow

Para criar um novo Flow:
  1. Clique no botão + Criar Flow, localizado no canto superior direito da tela.
  2. Preencha as informações básicas:
    • Nome do Flow
    • Categoria
    • Tipo do Flow (estático ou dinâmico)
Ao selecionar o tipo dinâmico, será necessário configurar um endpoint responsável pela comunicação com sistemas externos durante a navegação do Flow. Essa configuração permite a troca de informações em tempo real, possibilitando respostas mais personalizadas com base em dados externos.

Configuração do endpoint

Ao criar um Flow dinâmico, é possível escolher entre dois tipos de endpoint:
  • Endpoint programável (Robbu): Endpoint gerado automaticamente pela plataforma em JavaScript.
  • Endpoint externo: Endpoint próprio, fornecido pelo cliente ou por um sistema de terceiros, acessado por meio de uma URL.
Ao optar pelo endpoint programável (Robbu), você pode:
  • Criar um novo endpoint, que será automaticamente vinculado ao Flow,
  • Utilizar um endpoint já existente, previamente configurado na plataforma.
Caso escolha um endpoint externo, será necessário informar a URL responsável pelo processamento das requisições.
Para mais detalhes sobre a implementação e configuração de endpoints, consulte a documentação de Endpoints Customizados.

Exemplos de configuração de endpoint

Endpoint programável (novo)

Criação automática de um novo endpoint programável da Robbu para o Flow.

Endpoint programável (existente)

Utilização de um endpoint programável da Robbu já configurado na plataforma.
Para acessar e gerenciar os endpoints customizados da plataforma, clique no botão Gerenciar endpoints, localizado no canto superior direito da tela.

Endpoint externo

Integração com um endpoint próprio, informado pelo usuário. Após configurar o endpoint, clique em Criar Flow para finalizar o processo.

Gerenciamento de Flows

Após a criação, ao clicar no menu de opções (três pontos) ao lado de um Flow, estarão disponíveis as seguintes ações:
  • Editar: Permite alterar configurações e conteúdo do Flow.
  • Deletar: Remove o Flow do ambiente.
  • Publicar: Publica o Flow na API da Meta, tornando-o disponível para uso.
⚠️ Importante: Após a publicação, o Flow não poderá mais ser editado.

Criação do Conteúdo do Flow

O Invenio Center disponibiliza uma interface visual dedicada para a construção do conteúdo do Flow. Cada Flow pode conter até 8 telas, organizadas de forma sequencial.

Telas

  • As telas são gerenciadas pelo menu lateral esquerdo.
  • Para adicionar uma nova tela, clique em + Adicionar tela e informe um nome.

Conteúdo da Tela

Cada tela pode conter os seguintes componentes:
  • Título da tela: até 20 caracteres
  • Imagem: formatos JPEG, PNG ou SVG, com até 5MB ou em base64
  • Cabeçalho grande: até 80 caracteres
  • Cabeçalho pequeno: até 80 caracteres
  • Corpo de texto: até 4096 caracteres
  • Legenda: até 4096 caracteres
  • Formulário

Tipos de Campos de Formulário

Os formulários dos WhatsApp Flows permitem a coleta de informações do usuário por meio de diferentes tipos de campos, organizados em campos de resposta de texto e campos de seleção. Cada tipo possui configurações específicas que devem ser preenchidas no momento da criação.

Campos de Resposta de Texto

Os Campos de resposta de texto são utilizados quando se deseja que o usuário insira informações manualmente, permitindo maior flexibilidade e personalização nas respostas. Esse tipo de campo é ideal para coletar dados abertos ou semi-estruturados, como nomes, e-mails, descrições, comentários ou qualquer outra informação que não esteja previamente limitada a opções definidas.

Resposta curta

Utilizado para coletar informações objetivas, como nome, e-mail, telefone, CPF ou códigos. Ao selecionar Resposta curta, é necessário configurar:
CampoDescrição
Nome do componenteIdentificação interna do campo (até 30 caracteres).
Tipo do componenteDefine o formato da resposta esperada: Texto, Número, E-mail, Senha, Código, Telefone
Texto de ajudaMensagem opcional exibida abaixo do campo para orientar o preenchimento (até 80 caracteres).
Quantidade mínima e máxima de caracteresDefine os limites de caracteres permitidos para a resposta.
Campo obrigatórioDefine se o preenchimento do campo será obrigatório ou opcional.

Parágrafo

Indicado para respostas mais longas, como comentários, observações ou descrições detalhadas. Ao selecionar Parágrafo, é necessário configurar:
CampoDescrição
Nome do componenteIdentificação interna do campo.
Texto de ajudaMensagem opcional para orientar o usuário (até 80 caracteres).
Quantidade de caracteresDefine o limite de caracteres permitidos para a resposta, variando de 0 a 600 caracteres.
Campo obrigatórioDefine se o preenchimento será obrigatório ou não.

Seletor de data

Permite que o usuário selecione uma data específica por meio de um calendário. Ao selecionar Seletor de data, é necessário configurar:
CampoDescrição
Nome do componenteIdentificação interna do campo.
Campo obrigatórioDefine se a seleção da data será obrigatória.

Campos de Seleção

Os Campos de seleção são utilizados quando o usuário deve escolher uma ou mais opções a partir de uma lista previamente definida. Esse modelo é indicado para padronizar respostas, reduzir ambiguidades e facilitar o processamento dos dados, já que limita as escolhas a alternativas controladas.

Checkbox (Seleção múltipla)

Permite que o usuário selecione mais de uma opção. Ao configurar um campo do tipo Checkbox, é necessário definir:
CampoDescrição
Nome do componenteIdentificação interna do campo.
Quantidade mínima de itens selecionadosOpcional.
Quantidade máxima de itens selecionadosOpcional.
Campo obrigatórioDefine se ao menos uma opção deve ser selecionada.
Itens de seleção Para cada item disponível, devem ser informados:
  • ID do item
  • Título do item
  • Descrição do item
  • Metadados do item

Radio Button (Seleção única)

Permite que o usuário selecione apenas uma opção entre as disponíveis. A configuração é semelhante à do checkbox, com a diferença de que somente uma opção pode ser escolhida. Ao configurar um campo do tipo Radio Button, é necessário definir:
CampoDescrição
Nome do componenteIdentificação interna do campo.
Campo obrigatórioDefine se o preenchimento será obrigatório.
Lista de itensID, título, descrição e metadados.
Exibe um menu suspenso com opções de seleção única. Ao selecionar Dropdown, é necessário preencher os campos:
CampoDescrição
Nome do componenteIdentificação interna do campo.
Campo obrigatórioDefine se o campo é obrigatório.
Itens de seleçãoCadastrar os itens que aparecerão na lista de seleção (ID, título, descrição e metadados).

Opt-in (Consentimento)

Campo utilizado para obter o consentimento explícito do usuário, como aceite de termos de uso ou política de privacidade.

Para mais detalhes sobre os componentes do Flow, acesse a documentação oficial da Meta:

https://developers.facebook.com/docs/whatsapp/flows/reference/components

Edição via JSON

Para usuários com conhecimento técnico, é possível criar ou editar Flows diretamente via JSON, utilizando a opção Editar JSON, localizada no canto superior direito da tela. Caso você já possua um código pronto, é possível copiá-lo e colá-lo nessa área para importar diretamente a estrutura do Flow para dentro da plataforma. A estrutura segue integralmente o padrão definido na documentação oficial da Meta, incluindo:
  • version
  • screens
  • layout
  • children
  • Tipos de componentes e formulários

Envio de Flows via IDR Studio

Os Flows podem ser enviados aos clientes exclusivamente por meio da IDR Studio, utilizando a ação:
“Enviar Flow de WhatsApp”
Nessa ação, é necessário configurar:
  • O Flow desejado
  • A tela inicial que será exibida no Flow
  • O texto do corpo da mensagem enviado juntamente ao Flow
  • O nome do botão exibido ao usuário

Visualização do Flow em modo rascunho

Quando o Flow ainda não está publicado (modo rascunho), a experiência visual dentro do WhatsApp não é impactada em sua estrutura. No entanto, a pré-visualização inicial do formulário, exibida no momento do envio, segue um padrão do próprio WhatsApp, não refletindo integralmente as configurações definidas na plataforma. Isso significa que elementos como texto de abertura e formatação podem não aparecer conforme configurado no IDR.

Visualização do Flow após publicação

Após a publicação do Flow, a experiência passa a respeitar integralmente as configurações definidas na plataforma. A pré-visualização e a abertura do formulário são exibidas conforme o configurado no IDR, e o retorno das informações ocorre corretamente, seguindo a estrutura dos campos definidos no Flow. Isso garante maior consistência na experiência do usuário e na captura dos dados.

Retorno de dados e estrutura de payload

O payload é a estrutura responsável por transportar os dados preenchidos pelo usuário no Flow. Ele é essencial para garantir que as informações coletadas no formulário sejam enviadas corretamente para integrações externas, além de disponibilizar também esses dados na visualização do operador. Ou seja, é por meio dele que as informações preenchidas pelo usuário ficam registradas e visíveis no histórico do contato. Em resumo, tudo o que o usuário preenche nos campos do Flow só será retornado e exibido se estiver devidamente configurado no payload.

Como funciona o payload

Cada campo do formulário possui um identificador único definido pela propriedade name. Esse identificador é utilizado para recuperar os valores preenchidos pelo usuário no momento do envio. Na configuração do payload, você define:
  • A chave (nome do campo no retorno) → como a informação será identificada
  • O valor dinâmico → que vem do formulário (${form.nome_do_campo})

Exemplo de mapeamento e payload completo

Exemplo 1: Mapeamento de um campo individual
{
  "nome": "${form.nome}"
}
Exemplo 2: JSON do formulário no flow com diferentes tipos de campos
{
  "form": [
    {
      "type": "TextInput",
      "name": "nome",
      "label": "Nome",
      "required": true,
      "placeholder": "Digite seu nome"
    },
    {
      "type": "TextInput",
      "name": "cpf",
      "label": "CPF",
      "required": true,
      "placeholder": "Digite seu CPF"
    },
    {
      "type": "TextInput",
      "name": "email",
      "label": "E-mail",
      "required": true,
      "placeholder": "Digite seu e-mail"
    },
    {
      "type": "TextInput",
      "name": "telefone",
      "label": "Telefone",
      "required": false,
      "placeholder": "Digite seu telefone"
    },
    {
      "type": "Select",
      "name": "categoria",
      "label": "Categoria",
      "options": ["Suporte", "Financeiro", "Comercial"],
      "required": true
    },
    {
      "type": "Select",
      "name": "urgencia",
      "label": "Urgência",
      "options": ["Baixa", "Média", "Alta"],
      "required": true
    },
    {
      "type": "TextArea",
      "name": "descricao",
      "label": "Descrição do problema",
      "required": true,
      "placeholder": "Descreva o problema"
    },
    {
      "type": "Checkbox",
      "name": "consentimento",
      "label": "Aceito os termos",
      "required": true
    }
  ]
}
Exemplo 3: Payload completo
{
  "payload": {
    "nome": "${form.nome}",
    "cpf": "${form.cpf}",
    "email": "${form.email}",
    "telefone": "${form.telefone}",
    "categoria": "${form.categoria}",
    "urgencia": "${form.urgencia}",
    "descricao": "${form.descricao}",
    "consentimento": "${form.consentimento}"
  }
}

⁉️ Perguntas Frequentes (FAQ)

Sim. Um endpoint programável da Robbu ou externo pode ser vinculado a diferentes Flows.É importante garantir que ele consiga diferenciar a origem das requisições (por exemplo, pelo Flow ID enviado no payload) para processar corretamente cada fluxo.
Não. Após a publicação, o Flow se torna imutável. Isso inclui quaisquer campos do Flow, estrutura das telas, conteúdo e configuração do payload.💡 Sugestão: Recomendamos que o código de cada Flow seja armazenado internamente com segurança. Dessa forma, caso seja necessário fazer alterações, você pode criar um novo Flow usando o mesmo código do anterior, adaptá-lo conforme necessário e publicá-lo novamente.
Quando o Flow está em rascunho, apenas a pré-visualização configurada via IDR é impactada. Nessa pré-visualização, os campos configurados via IDR não são respeitados, exibindo um layout padrão do WhatsApp.Após a publicação, o comportamento real do Flow é aplicado e os campos passam a funcionar corretamente, conforme configurado na plataforma.
Sim. Cada tela pode conter múltiplos tipos de campos, respeitando a limitação de até 8 telas por Flow.
Não necessariamente. Todos os campos definidos no payload serão enviados, mas se o usuário não preencher um campo não obrigatório, o valor pode vir como null ou vazio, dependendo da integração do endpoint.
O payload é essencial. Se algum campo não estiver mapeado no payload, mesmo que o usuário o preencha, ele não aparecerá no histórico do contato.Sempre revise se o name do campo corresponde à chave usada no payload.