Visão geral
Como funciona a caixa de entrada do WhatsApp da loja: conversas, janela de 24 horas, modos de atendimento, envio de produtos e cobrança.
A caixa de entrada (inbox) é onde a equipe da loja atende os clientes pelo WhatsApp. Cada cliente que escreve vira uma conversa; o assistente de vendas responde sozinho até uma pessoa assumir. Pela API o seller lê as conversas, responde com texto, mídia ou template, manda produtos e cobra por PIX. Há ainda a caixa do chat da mini-loja, com o mesmo desenho.
Como funciona
O fluxo típico de um atendente:
- Liste as conversas
- Leia o históricoPagine as mensagens e marque a conversa como lida.
- Assuma e responda
- Venda na conversaEnvie produtos ou o link do carrinho, e cobre por PIX.
- Devolva ao assistenteChame Encerrar atendimento para o assistente voltar.
Modos de atendimento (bot_mode)
| Código | Significado |
|---|---|
A | O assistente responde sozinho. |
P | O assistente está pausado até paused_until; depois volta. |
H | Uma pessoa atende; o assistente não responde. |
Origem da mensagem (origin) e entrega (status)
origin | Quem escreveu | status | Estado | |
|---|---|---|---|---|
C | Cliente | Q | Na fila | |
A | API ou atendente pela caixa | S | Enviada | |
B | Assistente | D | Entregue | |
E | Aplicativo WhatsApp Business (eco) | R | Lida | |
H | Histórico importado | F | Falhou |
Conceitos-chave
Janela de atendimento de 24 horas
Cada mensagem do cliente abre ou renova uma janela de 24 horas (csw_expires_at). Dentro dela a loja envia texto, mídia e mensagens interativas. Fora dela, a Meta só aceita templates. Tentar texto livre fora da janela devolve 502 e deixa a mensagem gravada com status: F.
Ponto de entrada gratuito
Quando o cliente chega por um anúncio que leva ao WhatsApp, abre-se uma janela de 72 horas (fep_expires_at) em que as respostas não geram cobrança de conversa pela Meta.
Quem vê o quê
Numa loja em que vários sellers têm número próprio, cada seller vê só as conversas, mídias, sessões e o uso mensal das contas dele. Quando nenhum número tem seller dono, ou há um único seller dono, o seller vê tudo. Templates, catálogo, campanhas e analytics são da loja inteira.
Contas de demonstração
Em ambientes de teste, contas de demonstração gravam as mensagens como enviadas sem chamar a Meta. Em produção, cada envio é uma chamada real e pode ser cobrado.
Dinheiro e datas
Valores em centavos inteiros (15990 = R$ 159,90). Datas em RFC 3339 (UTC).
Endpoints
| Método | Caminho | Para que serve |
|---|---|---|
| GET | /api/v1/vendor/whatsapp-confluence/threads | Lista as conversas, as mais recentes primeiro. Conversas e mensagens |
| GET | /api/v1/vendor/whatsapp-confluence/threads/{id} | Retorna uma conversa. Conversas e mensagens |
| GET | /api/v1/vendor/whatsapp-confluence/threads/{id}/messages | Pagina as mensagens de uma conversa. Conversas e mensagens |
| GET | /api/v1/vendor/whatsapp-confluence/threads/{id}/export.csv | Baixa as mensagens da conversa em CSV. Conversas e mensagens |
| GET | /api/v1/vendor/whatsapp-confluence/media/{messageID} | Devolve os bytes da mídia de uma mensagem. Conversas e mensagens |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/reply | Envia uma mensagem de texto. Responder ao cliente |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/reply-media | Envia imagem, áudio, vídeo ou documento. Responder ao cliente |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/send-template | Envia um template aprovado pela Meta. Responder ao cliente |
| GET | /api/v1/vendor/whatsapp-confluence/templates | Lista os templates da loja. Responder ao cliente |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/read | Zera o contador de não lidas. Estado da conversa |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/assign | Define ou limpa o responsável. Estado da conversa |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/take-over | Passa a conversa para o atendimento humano. Estado da conversa |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/end-service | Devolve a conversa ao assistente. Estado da conversa |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/clear-session | Recomeça a conversa do zero para o assistente. Estado da conversa |
| GET | /api/v1/vendor/whatsapp-confluence/threads/{id}/bot | Retorna o modo de atendimento da conversa. Controle do assistente |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/bot/pause | Pausa o assistente por alguns minutos. Controle do assistente |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/bot/resume | Volta o assistente a responder. Controle do assistente |
| GET | /api/v1/vendor/whatsapp-confluence/products | Busca produtos do seller para enviar. Enviar produtos e carrinho |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/send-product | Envia um cartão de produto. Enviar produtos e carrinho |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/send-product-list | Envia uma lista de produtos. Enviar produtos e carrinho |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/send-catalog | Envia o botão de ver o catálogo. Enviar produtos e carrinho |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/send-cart-link | Envia o botão de abrir o carrinho. Enviar produtos e carrinho |
| POST | /api/v1/vendor/whatsapp-confluence/threads/{id}/charge | Gera uma cobrança PIX e a envia ao cliente. Cobrança por PIX e painel do cliente |
| GET | /api/v1/vendor/whatsapp-confluence/threads/{id}/charges | Lista as cobranças da conversa. Cobrança por PIX e painel do cliente |
| GET | /api/v1/vendor/whatsapp-confluence/threads/{id}/commerce | Mostra o carrinho aberto e os pedidos do telefone. Cobrança por PIX e painel do cliente |
| GET | /api/v1/vendor/whatsapp-confluence/assistant/threads | Lista as sessões do chat do assistente. Sessões do assistente |
| GET | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id} | Retorna uma sessão. Sessões do assistente |
| GET | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/messages | Pagina as mensagens de uma sessão. Sessões do assistente |
| GET | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/bot | Retorna quem atende a sessão. Sessões do assistente |
| GET | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/commerce | Mostra carrinho e pedidos do cliente da sessão. Sessões do assistente |
| POST | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/reply | Envia uma resposta ao chat do cliente. Agir nas sessões do assistente |
| POST | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/read | Zera as não lidas da sessão. Agir nas sessões do assistente |
| POST | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/take-over | O assistente para de responder esta sessão. Agir nas sessões do assistente |
| POST | /api/v1/vendor/whatsapp-confluence/assistant/threads/{id}/end-service | O assistente volta a responder a sessão. Agir nas sessões do assistente |
Erros comuns
- Responder fora da janela de 24 horas. Resulta em 502 da Meta. Confira
csw_expires_ate use um template. - Achar que um id de conversa desconhecido sempre dá 404. Sem escopo de seller, rotas como
take-over,read,bot/pauseemessagesrespondem 200 para um id que não existe, e os envios de produto e a cobrança respondem 502. - Chamar
/bote confiar no 200. A rota devolvemode: Aaté para um id sem sessão. Valide a conversa antes. - Passar um
idque não é UUID em/charges. Dá 500 com o texto cru do banco, não 404. - Esperar que ler marque como lida. Só Marcar como lida zera
unread_count. - Paginar mensagens por número de página. A paginação é por cursor: use
next_beforecomobefore. - Mandar um produto de outro seller. O envio recusa produtos que não são do catálogo do seller com 502.
- Esperar que a resposta no chat da mini-loja saia pela Meta. Ela só aparece no chat do cliente na próxima consulta da página dele.