Fluxos de WhatsApp
Fluxos conversacionais do WhatsApp Commerce: criar, configurar o gatilho, ativar, duplicar e validar.
Um fluxo é um roteiro automático de atendimento por WhatsApp. Você desenha a conversa em blocos (mensagens, perguntas, menus) e define o gatilho: o que o cliente precisa escrever para o fluxo começar. Quando o gatilho casa, a plataforma abre uma sessão de conversa e executa os blocos. Faz parte do módulo WhatsApp Commerce.
Como funciona
Estados de um fluxo:
| Estado | Letra | Significado |
|---|---|---|
draft | R | Rascunho, em construção. Estado inicial. |
active | A | No ar: o gatilho dispara o fluxo. |
inactive | P | Desligado temporariamente. |
archived | H | Guardado, fora de uso. |
Quando chega uma mensagem de um cliente sem conversa em andamento, a plataforma procura, entre os fluxos active do seller (e os da loja inteira), o primeiro cujo gatilho keyword case, em ordem de trigger_priority (maior primeiro) e, em empate, do mais antigo para o mais novo. Se nenhum casar, usa o fluxo inbound_default, se existir.
Conceitos principais
Gatilho
trigger_type define como o fluxo começa: manual, keyword ou inbound_default. Em keyword, trigger_match_mode (exact, starts_with, contains ou regex) diz como comparar a mensagem com trigger_keywords. A comparação ignora maiúsculas, a menos que trigger_case_sensitive seja true.
Blocos e conexões
O desenho do fluxo é um grafo: blocos ligados por conexões. O bloco inicial é o start_block_id. Validar aponta blocos soltos, conexões quebradas e laços.
Escopo por seller
Um fluxo pode ser da loja inteira (sem vendor_id) ou de um seller. Quando quem chama é um administrador que também é seller, a plataforma força o escopo dele em todas as rotas: ele só enxerga, cria e altera os fluxos do próprio seller.
Endpoints
| Método | Caminho | Para que serve | Página |
|---|---|---|---|
| GET | /api/v1/admin/flows | Lista os fluxos, do mais novo ao mais antigo | Gerenciar fluxos |
| GET | /api/v1/admin/flows/{id} | Consulta um fluxo | Gerenciar fluxos |
| POST | /api/v1/admin/flows | Cria um fluxo (nasce como rascunho) | Gerenciar fluxos |
| PATCH | /api/v1/admin/flows/{id} | Altera um fluxo, inclusive ativar e desativar | Gerenciar fluxos |
| DELETE | /api/v1/admin/flows/{id} | Exclui um fluxo (some das listas, não é apagado de verdade) | Gerenciar fluxos |
| POST | /api/v1/admin/flows/{id}/clone | Duplica um fluxo com blocos e conexões | Duplicar e validar |
| GET | /api/v1/admin/flows/{id}/validate | Confere se o desenho do fluxo tem problemas | Duplicar e validar |
Erros comuns
- Criar um fluxo com
trigger_type: keywordsemtrigger_keywords: dá 400. - Ativar um fluxo sem
start_block_id: ele não inicia conversa. - Esperar que a cópia responda como o original: ela nasce em rascunho e com gatilho
manual. - Comparar
statuscom"active"na resposta: ela devolve a letraA. - Tratar
valid: truecomo "pronto para uso": um fluxo vazio também é válido. - Esperar 404 para um UUID mal formado: a resposta é 500.