Flows

Construir e gerenciar WhatsApp Flows - experiências interativas multi-etapas para formulários, agendamentos, pesquisas e mais.

Listar todos os flows

get

Recupera uma lista paginada de WhatsApp Flows associados à conta WhatsApp Business.

O que são WhatsApp Flows?

WhatsApp Flows são experiências estruturadas e interativas que conduzem usuários por processos multi-etapas diretamente no WhatsApp. São usados para:

  • Geração de leads e formulários de cadastro

  • Pesquisas e coleta de feedback

  • Agendamento de compromissos e reservas

  • Configuração de produtos e pedidos

  • Triagem de suporte ao cliente

Status dos Flows

Status
Descrição

DRAFT

Flow em edição e não publicado

PUBLISHED

Flow ativo com envio permitido aos usuários

DEPRECATED

Flow não é mais enviado a novos usuários, sessões existentes continuam

BLOCKED

Flow bloqueado por violação de políticas

THROTTLED

Flow limitado temporariamente devido a alta taxa de erros

Categorias de Flow

  • SIGN_UP: Fluxos de registro e onboarding

  • SIGN_IN: Fluxos de autenticação e login

  • APPOINTMENT_BOOKING: Fluxos de agendamento e reservas

  • LEAD_GENERATION: Coleta de contatos e informações

  • CONTACT_US: Fluxos de suporte e contato

  • CUSTOMER_SUPPORT: Fluxos de resolução de problemas

  • SURVEY: Fluxos de pesquisa e questionários

  • OTHER: Fluxos de uso geral

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Respostas
chevron-right
200

Lista de flows recuperada com sucesso

application/json
get
/flows

Criar um novo flow

post

Cria um novo WhatsApp Flow. Flows são criados em status DRAFT e devem ser publicados antes de serem enviados aos usuários.

Criação do Flow

A criação ocorre de duas maneiras:

  1. Do zero: Informar nome e categorias, depois enviar a definição JSON

  2. Por clonagem: Informar o ID de um flow existente para criar uma cópia

Estrutura JSON do Flow

Após a criação, a definição JSON deve ser enviada usando o endpoint de atualização. O JSON define:

  • Telas e layout

  • Componentes de entrada (campos de texto, dropdowns, seletores de data)

  • Navegação entre telas

  • Regras de validação de dados

  • Botões de ação e comportamentos

Endpoint URI

Se o flow requer dados dinâmicos ou precisa submeter dados ao servidor, o endpoint HTTPS recebe:

  • Requisições de inicialização do flow com contexto do usuário

  • Dados de transição de tela

  • Dados de submissão de formulários

O endpoint deve responder em até 10 segundos com JSON válido.

Boas Práticas

  • Usar nomes descritivos que reflitam o propósito do flow

  • Selecionar categorias apropriadas para melhor organização

  • Testar os flows completamente em DRAFT antes de publicar

  • Manter os flows simples, preferencialmente com 3-5 telas

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Corpo
namestring · máx: 200Obrigatório

Nome único do flow. Deve ser alfanumérico com underscores, máximo de 200 caracteres. Este nome fica visível aos usuários.

Example: MeuNovoFlow
clone_flow_idstringOpcional

ID de um flow existente para clonar. Quando fornecido, o novo flow é criado com a mesma definição JSON do flow fonte.

Example: 123456789987456321
endpoint_uristring · uriOpcional

URL HTTPS que trata a troca de dados do flow. Obrigatório para flows dinâmicos. Deve ser publicamente acessível e responder em até 10 segundos.

Example: https://example.com/flow-endpoint
Respostas
post
/flows

Excluir um flow

delete

Exclui permanentemente um WhatsApp Flow pelo ID.

Considerações Importantes

  • A ação é irreversível e flows excluídos não podem ser recuperados

  • Não é possível excluir um flow com status PUBLISHED

  • O flow deve ser deprecated antes da exclusão

  • Mensagens que referenciam o flow excluído apresentam erro aos usuários

  • Dados analíticos do flow também são removidos

Fluxo Recomendado

  1. Deprecate o flow para interromper novas sessões

  2. Aguardar a conclusão das sessões existentes (normalmente 24-48 horas)

  3. Excluir o flow

O fluxo evita a interrupção de usuários ativos.

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Parâmetros de consulta
flow_idstringObrigatório

Identificador único do Flow do WhatsApp.

Obtido a partir de:

  • Resposta do endpoint de criação de flow
  • Resposta do endpoint de listagem de flows

IDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.

Example: 123456789012345678Pattern: ^[0-9]+$
Respostas
chevron-right
200

Flow excluído com sucesso

application/json
delete
/flows

Obter detalhes do flow

get

Recupera informações detalhadas sobre um Flow específico do WhatsApp, incluindo configuração, status, erros de validação e metadados.

Campos Disponíveis

O parâmetro fields solicita informações específicas:

Campo
Descrição

id

Identificador único do flow

name

Nome de exibição do flow

categories

Categorias de classificação do flow

preview

URL de visualização para testes

status

Status atual (DRAFT, PUBLISHED, etc.)

validation_errors

Lista de problemas que impedem a publicação

json_version

Versão do schema JSON do flow

data_api_version

Versão da API de dados

data_channel_uri

Endpoint configurado para troca de dados

whatsapp_business_account

Informações associadas da WABA

Erros de Validação

O campo validation_errors lista problemas que precisam ser corrigidos antes da publicação. Erros comuns incluem:

  • Estrutura JSON inválida

  • Elementos obrigatórios de tela ausentes

  • Referências de navegação inválidas

  • Configurações de componentes não suportadas

URLs de Visualização

O campo preview fornece URLs para testes do flow em:

  • WhatsApp mobile (requer dispositivo de teste)

  • WhatsApp Web (verificação visual)

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Parâmetros de consulta
flow_idstringObrigatório

Identificador único do Flow do WhatsApp.

Obtido a partir de:

  • Resposta do endpoint de criação de flow
  • Resposta do endpoint de listagem de flows

IDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.

Example: 123456789012345678Pattern: ^[0-9]+$
fieldsstringOpcional

Lista separada por vírgulas dos campos específicos a retornar. Se não especificado, retorna todos os campos disponíveis.

Example: id,name,categories,preview,status,validation_errors,json_version,data_api_version
Respostas
chevron-right
200

Detalhes do flow recuperados com sucesso

application/json
get
/flows/details

Publicar um flow

post

Publica um WhatsApp Flow para torná-lo disponível para envio aos usuários.

Pré-requisitos

Antes da publicação, verificar:

  1. O JSON do flow é válido e não possui erros de validação

  2. Todas as telas possuem navegação corretamente configurada

  3. O endpoint URI (quando usado) está acessível e funcional

  4. O flow foi testado usando o recurso de visualização

Processo de Publicação

  1. O WhatsApp valida a estrutura JSON do flow

  2. Quando existe endpoint URI configurado, a conectividade é verificada

  3. O status do flow muda de DRAFT para PUBLISHED

  4. O flow passa a estar disponível para envio em mensagens

Pós-Publicação

  • Flows publicados não podem ser editados; uma nova versão é necessária

  • É possível deprecar um flow publicado para interromper novas sessões

  • Métricas e análises ficam disponíveis após a publicação

  • Alterações no endpoint URI exigem nova versão do flow

Estratégia de Rollback

Quando problemas são identificados após a publicação:

  1. Criar e publicar uma versão corrigida

  2. Atualizar a lógica de envio de mensagens para usar o novo flow

  3. Deprecate o flow problemático

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Parâmetros de consulta
flow_idstringObrigatório

Identificador único do Flow do WhatsApp.

Obtido a partir de:

  • Resposta do endpoint de criação de flow
  • Resposta do endpoint de listagem de flows

IDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.

Example: 123456789012345678Pattern: ^[0-9]+$
Respostas
chevron-right
200

Status do flow alterado com sucesso

application/json
post
/flows/publish

Deprecate um flow

post

Deprecate um Flow publicado do WhatsApp. Flows deprecated não podem mais ser enviados para novos usuários, mas sessões ativas existentes continuam funcionando.

Quando Depreciar

  • Existe uma nova versão do flow publicada

  • O flow não é mais necessário para o negócio

  • Problemas foram identificados e exigem um novo flow

  • Alterações de conformidade ou política exigem descontinuação

Comportamento da Depreciação

Cenário
Comportamento

Nova mensagem com flow

O flow não é incluído

Usuário em sessão ativa

A sessão continua normalmente

Usuário tenta reiniciar

Não é possível iniciar nova sessão

Dados de sessão existentes

Permanecem acessíveis

Expiração da Sessão

Sessões ativas normalmente expiram após:

  • 24 horas de inatividade

  • Usuário fechar explicitamente o flow

  • Endpoint do flow retornar sinal de término

Recuperação

A depreciação é reversível e um flow deprecated pode ser republicado se ainda estiver em estado válido. A prática recomendada é:

  1. Criar uma nova versão corrigida

  2. Publicar a nova versão

  3. Manter o flow deprecated para referência analítica

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Parâmetros de consulta
flow_idstringObrigatório

Identificador único do Flow do WhatsApp.

Obtido a partir de:

  • Resposta do endpoint de criação de flow
  • Resposta do endpoint de listagem de flows

IDs de flow são strings numéricas e permanecem constantes durante o ciclo de vida do flow.

Example: 123456789012345678Pattern: ^[0-9]+$
Respostas
chevron-right
200

Flow deprecated com sucesso

application/json
post
/flows/deprecate

Atualizar um flow

patch

Atualiza propriedades ou a definição JSON de um WhatsApp Flow existente.

Propriedades Atualizáveis

  • name: Altera o nome de exibição (não altera o flow ID)

  • categories: Atualiza categorias de classificação

  • endpoint_uri: Atualiza o endpoint de troca de dados

Atualização do JSON do Flow

Para atualizar telas e lógica do flow, envie uma nova definição JSON. O JSON deve estar conforme o schema JSON de WhatsApp Flows.

Restrições Importantes

  • Flows publicados não podem ser atualizados; deprecar antes ou criar novo flow

  • Flows DRAFT podem ser modificados livremente

  • Flows BLOCKED ou THROTTLED podem ter restrições de atualização

Gestão de Versões

WhatsApp Flows não possui versionamento nativo. Para uso em produção:

  • Usar convenções como "meu_flow_v2"

  • Manter o controle de IDs de flow por versão

  • Documentar alterações entre versões

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Parâmetros de rota
FLOW_IDstringObrigatório

Identificador único do Flow do WhatsApp como parâmetro de rota. Usado em endpoints que operam sobre um recurso de flow específico.

Example: 123456789012345678Pattern: ^[0-9]+$
Corpo
namestring · máx: 200Opcional

Novo nome de exibição do flow

Example: NomeFlowAtualizado
categoriesstring[]Opcional

Categorias atualizadas do flow

Example: ["OTHER"]
endpoint_uristring · uriOpcional

Novo endpoint URI para troca de dados

Example: https://example.com/updated-endpoint
Respostas
chevron-right
200

Flow atualizado com sucesso

application/json
patch
/flows/{FLOW_ID}

Obter definição JSON do flow

get

Recupera a definição JSON completa de um WhatsApp Flow. O JSON contém toda a estrutura do flow, incluindo telas, componentes e lógica.

Visão Geral da Estrutura JSON

O JSON do flow contém:

  • version: Versão do schema (ex.: "3.0")

  • screens: Array de definições de telas

  • routing_model: Configuração de navegação

  • data_api_version: Versão para comunicação com o endpoint

Componentes de Tela

Cada tela pode conter:

  • Textos e títulos

  • Campos de entrada (texto, dropdown, seletor de data, checkbox)

  • Elementos de mídia (imagens)

  • Botões de navegação

  • Ações de envio

Troca de Dados

Quando há endpoint configurado:

  • O JSON inclui referências de binding de dados

  • Conteúdo dinâmico é obtido em tempo de execução

  • Entradas do usuário são enviadas ao endpoint

Casos de Uso

  • Backup de definições de flow

  • Controle de versões de flows

  • Migração de flows entre contas

  • Análise programática da estrutura do flow

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Parâmetros de rota
FLOW_IDstringObrigatório

Identificador único do Flow do WhatsApp como parâmetro de rota. Usado em endpoints que operam sobre um recurso de flow específico.

Example: 123456789012345678Pattern: ^[0-9]+$
Respostas
chevron-right
200

JSON do flow recuperado com sucesso

application/json
get
/flows/assets/{FLOW_ID}

Enviar chave pública de criptografia

post

Envia uma chave pública para criptografia ponta a ponta em WhatsApp Flows. A chave criptografa dados sensíveis trocados entre o WhatsApp e o endpoint.

Arquitetura de Segurança

WhatsApp Flows usa criptografia assimétrica para dados sensíveis:

  1. O par de chaves RSA é gerado e a chave pública é enviada

  2. O WhatsApp criptografa dados sensíveis usando a chave pública

  3. O endpoint descriptografa dados usando a chave privada

  4. As respostas são criptografadas usando a chave pública do WhatsApp

Requisitos da Chave

  • Par de chaves RSA de 2048 bits no mínimo (4096 bits recomendado)

  • Chave no formato PEM

  • Chave privada armazenada com segurança nos servidores

  • A chave privada não deve ser compartilhada ou transmitida

Exemplo de Geração de Chaves

Geração do par de chaves com OpenSSL:

openssl genrsa -out private_key.pem 2048
openssl rsa -pubout -in private_key.pem -out public_key.pem

Rotação de Chaves

  • Enviar uma nova chave pública para rotação

  • Chaves antiga e nova permanecem válidas durante a transição

  • A rotação a cada 90 dias é recomendada como boa prática de segurança

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Corpo
business_public_keystringObrigatório

Chave pública RSA no formato PEM. Deve ter 2048 bits ou mais. Incluir os marcadores BEGIN e END.

Example: -----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...\n-----END PUBLIC KEY-----
Respostas
chevron-right
200

Chave pública enviada com sucesso

application/json
post
/flows/upload-public-key

Obter chave pública atual

post

Recupera a chave pública configurada para criptografia de WhatsApp Flows, junto com o status de validação de assinatura.

Campos da Resposta

  • business_public_key: Chave pública RSA enviada

  • business_public_key_signature_status: Status de validação

    • VALID: Chave configurada corretamente com assinaturas válidas

    • MISMATCH: Assinatura não confere (possível adulteração)

Solução de Problemas

Se o status for MISMATCH:

  1. Verificar se o par de chaves está correto

  2. Reenviar a chave pública

  3. Validar se houve corrupção no envio

  4. Confirmar o formato PEM

Verificação de Segurança

Este endpoint permite:

  • Verificar o envio bem-sucedido da chave

  • Confirmar que a chave não foi adulterada

  • Validar a configuração de criptografia antes de publicar flows

Autorizações
apikeystringObrigatório

Chave de API para autenticação

Respostas
chevron-right
200

Chave pública recuperada com sucesso

application/json
post
/flows/get-public-key

Atualizado

Isto foi útil?