Fluxos e experiência do WhatsApp
Como o seller desenha a conversa automática do WhatsApp (fluxo, blocos e conexões), troca os textos e escolhe as funcionalidades.
Quando um cliente escreve para o número da loja, o que ele vê primeiro (saudação, menu, catálogo, carrinho) vem de um fluxo: um mapa de conversa montado com blocos ligados por conexões. Esta seção documenta as rotas que o seller usa para ler e editar o fluxo, trocar só os textos, instalar um modelo pronto, ligar ou desligar funcionalidades e ativar os fluxos nativos da Meta.
Vocabulário rápido:
- Fluxo (flow): o mapa completo de uma conversa automática. Cada seller tem o seu.
- Bloco (block): um passo do mapa. Pode enviar uma mensagem, mostrar um menu, buscar produtos, pedir um dado, passar para um atendente...
- Conexão (connection): a seta que leva de um bloco ao próximo. Num menu, cada opção tem a sua conexão.
- Modelo pronto (playbook): um fluxo completo já desenhado (varejo, atacado, marketplace) que o seller instala com uma chamada.
- Funcionalidade (capability): um interruptor de recurso do atendimento (base de conhecimento, busca por foto, atacado...).
- Fluxo nativo da Meta: formulários do próprio WhatsApp, que abrem dentro da conversa em vez de levar o cliente a um site.
Como funciona
O caminho de um cliente pelo fluxo
O gatilho do fluxo decide quando ele entra em ação:
trigger_type | Quando dispara |
|---|---|
manual | Só quando alguém o executa à mão (teste). É o padrão de um fluxo novo. |
keyword | Quando a mensagem do cliente combina com uma das palavras-chave (trigger_keywords), segundo trigger_match_mode. |
inbound_default | Quando nenhum fluxo de palavra-chave combinou e o cliente não está no meio de outro. É o fluxo de "boas-vindas". |
Se vários fluxos combinam, vence o de maior trigger_priority.
O fluxo típico de uma integração
- Ver o fluxo atual
GET /flows/activedevolve o fluxo ativo do seller. Se ele ainda não tem um próprio, a plataforma cria uma cópia editável do fluxo de boas-vindas da loja. - Escolher um ponto de partida
Instale um modelo pronto ou parta do fluxo existente.
- Editar textos ou estrutura
- Validar e ativar
GET /flows/{id}/validateaponta blocos soltos e setas quebradas. Depois,PATCHcomstatus: "active".
Conceitos-chave
Estados de um fluxo
status | Significado |
|---|---|
draft | Rascunho, não atende clientes. |
active | Em uso. |
inactive | Desligado. |
archived | Arquivado. |
O campo status da resposta pode vir como a palavra (active) ou como uma letra (A ativo, P inativo, R rascunho, H arquivado), conforme o banco da loja. Aceite os dois formatos ao ler. Ao gravar, envie a palavra (active).
Ids e dinheiro
Todos os ids desta seção são UUID em string. Posições dos blocos (position_x, position_y) são inteiros em pixels do editor visual. Não há valores monetários.
Quem pode editar o quê
| Recurso | Seller | Observação |
|---|---|---|
| Fluxo, blocos, conexões do próprio seller | Lê e edita | Fluxo de outro seller ou da loja: 404. |
Textos do fluxo (flow-copy) | Lê e edita | Vale só para este seller. |
| Pedido de mudança de estrutura | Cria e lista | A plataforma analisa e aplica à mão. |
| Funcionalidades | Liga e desliga | Algumas são base e não desligam. |
| Fluxos nativos da Meta | Liga e desliga | Afeta a loja inteira. |
Endpoints
Auth: Seller é um usuário do painel do seller (Authorization: Bearer $TOKEN).
| Método | Rota | O que faz | Auth | Página |
|---|---|---|---|---|
| GET | /api/v1/vendor/whatsapp/flows/active | Fluxo ativo do seller | Seller | Fluxo |
| GET | /api/v1/vendor/whatsapp/flows/{id} | Lê um fluxo | Seller | Fluxo |
| PATCH | /api/v1/vendor/whatsapp/flows/{id} | Altera nome, status e gatilho | Seller | Fluxo |
| GET | /api/v1/vendor/whatsapp/flows/{id}/validate | Confere o desenho do fluxo | Seller | Fluxo |
| GET | /api/v1/vendor/whatsapp/flows/{id}/blocks | Lista os blocos | Seller | Blocos |
| POST | /api/v1/vendor/whatsapp/flows/{id}/blocks | Cria um bloco | Seller | Blocos |
| PATCH | /api/v1/vendor/whatsapp/blocks/{block_id} | Altera um bloco | Seller | Blocos |
| DELETE | /api/v1/vendor/whatsapp/blocks/{block_id} | Apaga um bloco | Seller | Blocos |
| GET | /api/v1/vendor/whatsapp/flows/{id}/connections | Lista as conexões | Seller | Conexões |
| POST | /api/v1/vendor/whatsapp/flows/{id}/connections | Cria uma conexão | Seller | Conexões |
| DELETE | /api/v1/vendor/whatsapp/connections/{conn_id} | Apaga uma conexão | Seller | Conexões |
| GET | /api/v1/vendor/whatsapp/flow-copy | Lê os textos editáveis | Seller | Textos |
| PUT | /api/v1/vendor/whatsapp/flow-copy | Grava textos | Seller | Textos |
| GET | /api/v1/vendor/whatsapp/flow-requests | Lista pedidos de mudança | Seller | Textos |
| POST | /api/v1/vendor/whatsapp/flow-requests | Pede uma mudança de estrutura | Seller | Textos |
| GET | /api/v1/vendor/whatsapp/playbooks | Lista os modelos prontos | Seller | Modelos prontos |
| POST | /api/v1/vendor/whatsapp/playbooks/{slug}/install | Instala um modelo pronto | Seller | Modelos prontos |
| GET | /api/v1/vendor/whatsapp/capabilities | Lista as funcionalidades | Seller | Funcionalidades |
| PUT | /api/v1/vendor/whatsapp/capabilities/{pack} | Liga ou desliga uma funcionalidade | Seller | Funcionalidades |
| POST | /api/v1/vendor/whatsapp/capabilities/preset | Aplica um modelo como conjunto de funcionalidades | Seller | Funcionalidades |
| GET | /api/v1/vendor/whatsapp/native-flows/status | Situação dos fluxos nativos | Seller | Fluxos nativos |
| POST | /api/v1/vendor/whatsapp/native-flows/activate | Ativa os fluxos nativos | Seller | Fluxos nativos |
| POST | /api/v1/vendor/whatsapp/native-flows/deactivate | Desativa os fluxos nativos | Seller | Fluxos nativos |
Erros comuns
- Editar o fluxo da loja. Um fluxo sem seller dono responde
404 flow not found or not owned by this seller. Instale um modelo pronto ou chameflows/activepara ganhar uma cópia editável. - Gravar um desenho quebrado. Blocos e conexões entram sem checagem de coerência. Uma seta para um bloco de outro fluxo só aparece em
validate. trigger_type: "keyword"sem palavras. A gravação é recusada com400.- Instalar o mesmo modelo várias vezes. Cada instalação cria fluxos novos; as cópias antigas ficam lá. Use a opção de substituição ou apague o excesso.
- Esperar que
PUT /capabilities/{pack}recuse um valor errado. Pacote desconhecido ou de base responde sucesso sem fazer nada. - Ligar os fluxos nativos achando que é só deste seller. O efeito é na loja toda e desliga o carrinho por link (mini-loja).
- Confiar no texto de erro. Muitas mensagens saem em português ou em inglês técnico. Use o status HTTP.