VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

WhatsApp: fluxos do bot

Roteiros de conversa do bot de WhatsApp: fluxos, blocos, ligações, sessões, testes, pedidos de mudança dos sellers e pacotes prontos.

O bot de WhatsApp da loja segue roteiros chamados fluxos. Quando um cliente escreve, a plataforma escolhe um fluxo (por palavra-chave ou pelo fluxo padrão), abre uma sessão para ele e anda de bloco em bloco: manda uma mensagem, mostra um menu, pergunta um dado, consulta o catálogo, passa para um atendente. Esta seção documenta como ler, montar, testar e instalar esses fluxos.

Pontos-chave
  • Todas as rotas exigem o módulo whatsapp-commerce ligado, um administrador e o privilégio manage_settings.
  • Um fluxo é feito de blocos (passos) e ligações (setas). Quem começa a conversa é o start_block_id.
  • Fluxo novo nasce rascunho e com gatilho manual: não atende ninguém até você configurar o gatilho e ativar.
  • Teste antes de ativar: /validate confere a forma, /simulate roda uma conversa fictícia, /inbound-probe mostra o que um telefone real receberia.
  • Pacotes de experiência instalam fluxos prontos. Não são idempotentes: instalar duas vezes duplica.
  • Remoções são lógicas e respondem 200 mesmo para um id que não existe.

Como funciona

Rascunho→Ativo→Inativo ou arquivado
  1. Crie o fluxo

    POST /flows com name e, se quiser disparo por palavra, trigger_type: "keyword" e trigger_keywords.

  2. Monte os blocos e as ligações

    POST /flows/{id}/blocks para cada passo e POST /flows/{id}/connections para cada seta.

  3. Defina o bloco inicial

    PATCH /flows/{id} com start_block_id.

  4. Confira e teste

    GET /flows/{id}/validate e POST /flows/{id}/simulate.

  5. Ative

    PATCH /flows/{id} com status: "active". Depois use GET /inbound-probe para ver o resultado com um telefone real.

Estados do fluxo:

EstadoLetraSignificado
draftRRascunho: não atende.
activeAAtivo: atende conforme o gatilho.
inactivePInativo: desligado, mas guardado.
archivedHArquivado.

Estados da sessão do cliente: active (em andamento), completed (terminou), abandoned (venceu ou foi trocada) e errored (um bloco falhou).

Conceitos-chave

Gatilho: como um fluxo é escolhido

Cada fluxo tem um trigger_type. keyword: dispara quando a mensagem casa com uma das trigger_keywords (comparação exact, starts_with, contains ou regex; vence a maior trigger_priority). inbound_default: atende quem escreve sem casar com nenhuma palavra e sem sessão em andamento. manual: nunca dispara sozinho. Se uma sessão do cliente já está em andamento, a mensagem continua nela.

Sessão

Guarda o bloco atual e as variáveis (session_data). Uma sessão parada além de expires_at é abandonada e a próxima mensagem abre outra, do bloco inicial.

Seller e loja

Fluxos podem ser da loja toda (sem vendor_id) ou de um seller (lojista). Administrador restrito a um seller só vê e altera os fluxos dele; um superadministrador da loja vê todos.

Estado em letra ou palavra

O estado do fluxo pode voltar como letra (A) ou palavra (active), conforme a loja. Ao escrever, mande sempre a palavra.

Endpoints

MétodoCaminhoPara que servePágina
GET/api/v1/admin/whatsapp/flowsLista os fluxos de conversa do botLer fluxos
GET/api/v1/admin/whatsapp/flows/{id}Lê um fluxoLer fluxos
GET/api/v1/admin/whatsapp/flows/{id}/validateConfere a estrutura de um fluxoLer fluxos
POST/api/v1/admin/whatsapp/flowsCria um fluxo de conversaCriar e alterar fluxos
PATCH/api/v1/admin/whatsapp/flows/{id}Altera um fluxoCriar e alterar fluxos
DELETE/api/v1/admin/whatsapp/flows/{id}Apaga um fluxoCriar e alterar fluxos
POST/api/v1/admin/whatsapp/flows/{id}/cloneDuplica um fluxo com blocos e ligaçõesCriar e alterar fluxos
GET/api/v1/admin/whatsapp/flows/{id}/blocksLista os blocos de um fluxoBlocos
POST/api/v1/admin/whatsapp/flows/{id}/blocksAdiciona um bloco a um fluxoBlocos
GET/api/v1/admin/whatsapp/blocks/{block_id}Lê um blocoBlocos
PATCH/api/v1/admin/whatsapp/blocks/{block_id}Altera um blocoBlocos
DELETE/api/v1/admin/whatsapp/blocks/{block_id}Apaga um bloco e suas ligaçõesBlocos
GET/api/v1/admin/whatsapp/flows/{id}/connectionsLista as ligações de um fluxoLigações
POST/api/v1/admin/whatsapp/flows/{id}/connectionsLiga dois blocos de um fluxoLigações
DELETE/api/v1/admin/whatsapp/connections/{conn_id}Apaga uma ligaçãoLigações
POST/api/v1/admin/whatsapp/flows/{id}/simulateSimula uma mensagem de cliente num fluxoTestar um fluxo
GET/api/v1/admin/whatsapp/inbound-probeMostra para onde uma mensagem de um telefone cairiaTestar um fluxo
GET/api/v1/admin/whatsapp/flow-sessionsLista as sessões de fluxoSessões de fluxo
GET/api/v1/admin/whatsapp/flow-sessions/{id}Lê uma sessão de fluxoSessões de fluxo
GET/api/v1/admin/whatsapp/flow-sessions/{id}/variantsLista as variações escolhidas numa sessãoSessões de fluxo
POST/api/v1/admin/whatsapp/flow-sessions/{id}/test-runRoda uma mensagem de teste numa sessãoSessões de fluxo
GET/api/v1/admin/whatsapp/flow-requestsLista os pedidos de mudança de fluxo dos sellersPedidos de mudança
POST/api/v1/admin/whatsapp/flow-requests/{id}/reviewRegistra a decisão sobre um pedido de mudançaPedidos de mudança
POST/api/v1/admin/whatsapp/vendors/{vendor_id}/ensure-flowGarante que o seller tenha um fluxo próprioPedidos de mudança
GET/api/v1/admin/whatsapp/capabilitiesLista as habilidades do assistente de WhatsAppPacotes de experiência
GET/api/v1/admin/whatsapp/playbooksLista os pacotes de experiênciaPacotes de experiência
GET/api/v1/admin/whatsapp/playbooks/{slug}Lê um pacote de experiência com seus fluxosPacotes de experiência
POST/api/v1/admin/whatsapp/playbooks/{slug}/installInstala um pacote de experiênciaPacotes de experiência

Erros comuns

  • Ativar um fluxo sem start_block_id: ele não responde. Rode /validate primeiro.
  • Deixar o trigger_type em manual e esperar que o fluxo dispare sozinho.
  • Criar um gatilho keyword sem palavras: a plataforma recusa com 400.
  • Enviar só uma chave no config ao alterar um bloco: o objeto inteiro é substituído.
  • Mandar start_block_id: null para limpar o bloco inicial: null é ignorado, use "".
  • Apagar o bloco inicial: o fluxo continua apontando para ele.
  • Usar test-run na sessão de um cliente real: ela avança de verdade. Teste com /simulate.
  • Instalar o mesmo pacote duas vezes: cria fluxos duplicados.
  • Passar um id que não é UUID: várias rotas respondem 500 em vez de 400.

Próximos passos

Ler fluxos
Listar, ler e conferir.
Blocos
Os passos da conversa.
Testar um fluxo
Simular e sondar.
Pacotes de experiência
Fluxos prontos por tipo de loja.
Anterior
Orçamento mensal
Próxima
Ler fluxos
Nesta página
  • Como funciona
  • Conceitos-chave
  • Gatilho: como um fluxo é escolhido
  • Sessão
  • Seller e loja
  • Estado em letra ou palavra
  • Endpoints
  • Erros comuns
  • Próximos passos