Conversas
Lista as conversas do WhatsApp da loja, as mais recentes primeiro, e abre uma conversa pelo id.
Uma conversa (thread) liga um telefone de cliente a um número da loja e guarda todas as mensagens trocadas entre os dois, venham do cliente, do assistente automático, de um atendente ou do aplicativo WhatsApp Business. Estas duas rotas só leem. Na API de administração a lista traz as conversas de todas as contas da loja.
Listar conversas
/api/v1/admin/whatsapp-confluence/threadsAdminLista as conversas, as mais recentes primeiro
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador da loja. Veja Tokens.Parâmetros de consulta
filterstringunreadhumanminevia_appunansweredAtalho de filtro.
unread com mensagens não lidas; human com atendimento humano ou assistente pausado; mine atribuídas ao usuário do token; via_app cuja última mensagem veio do aplicativo WhatsApp Business; unanswered cuja última mensagem é do cliente. Outro valor é ignorado, sem erro.unreadbooleantrue equivale a filter=unread.originstringCABEHSó conversas cuja última mensagem tem esta origem.
via_app e unanswered sobrescrevem este parâmetro.assigneeuuidSó conversas atribuídas a este usuário. Um valor que não é UUID responde 500.
qstringTrecho do nome do contato ou do telefone, sem diferenciar maiúsculas. O telefone é guardado só com dígitos: pesquise
5511987, não +55 (11) 987.pageintegerpadrão: 1Página, a partir de 1.
per_pageintegerpadrão: 50Itens por página, de 1 a 200. Fora disso vale 50.
Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/whatsapp-confluence/threads?filter=unread&per_page=20" \
-H "Authorization: Bearer $TOKEN"Resposta
200Conversas
json
{
"page": 1,
"threads": [
{
"id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
"account_id": "3b9d8c52-1f0a-4e7b-8a21-6d5c4b3a2f10",
"customer_phone": "5511987654321",
"contact_name": "Maria Souza",
"assignee_user_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"assignee_name": "Ana Lima",
"unread_count": 2,
"last_message_at": "2026-10-10T14:32:10Z",
"last_message_preview": "Quero 3 caixas, pode entregar amanhã?",
"last_message_origin": "C",
"csw_expires_at": "2026-10-11T14:32:10Z",
"status": "A",
"bot_mode": "H",
"bot_mode_updated_at": "2026-10-10T14:20:00Z",
"created_at": "2026-09-28T21:56:44Z",
"updated_at": "2026-10-10T14:32:10Z"
}
]
}Campos da resposta
pageintegerPágina devolvida.
threadsarrayConversas da página, da atividade mais recente para a mais antiga. Não há total: continue pedindo páginas até vir uma lista vazia. Cada item tem os campos abaixo.
iduuidId da conversa.
account_iduuidConta (número de WhatsApp da loja) pela qual a conversa acontece.
customer_phonestringTelefone do cliente, só dígitos, com DDI (
5511987654321).contact_namestringNome do contato no WhatsApp. Vazio se desconhecido.
customer_user_iduuidCliente da loja ligado a este telefone. Omitido quando não há.
assignee_user_iduuidUsuário da equipe responsável. Omitido quando ninguém foi atribuído.
assignee_namestringNome do responsável. Omitido quando não há.
unread_countintegerMensagens do cliente ainda não marcadas como lidas.
last_message_atstringData da última mensagem (RFC 3339). Omitido se a conversa não tem mensagens.
last_message_previewstringPrévia da última mensagem (texto cortado).
last_message_originstringCABEHQuem escreveu a última:
C cliente, A API ou atendente pela caixa, B assistente, E aplicativo WhatsApp Business (eco), H histórico importado.csw_expires_atstringFim da janela de atendimento de 24 horas, contada da última mensagem do cliente. Até lá é possível enviar texto livre. Omitido se nunca houve mensagem do cliente.
fep_expires_atstringFim do ponto de entrada gratuito de 72 horas aberto por um anúncio que leva ao WhatsApp. Omitido quando não existe.
referralobjectDados do anúncio de origem, como a Meta enviou. Omitido quando não veio de anúncio.
statusstringEstado do registro da conversa, uma letra. O padrão é
A; nenhuma rota desta seção o altera. Não confunda com bot_mode.bot_modestringAPHQuem atende agora:
A assistente, P assistente pausado, H pessoa.bot_mode_updated_atstringQuando
bot_mode mudou. Omitido se nunca mudou.created_atstringCriação (RFC 3339).
updated_atstringÚltima alteração (RFC 3339).
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um administrador. | {"error":"insufficient permissions"} |
| 500 | Falha interna ao ler ou gravar. | {"error":"..."} |
Consultar conversa
/api/v1/admin/whatsapp-confluence/threads/{id}AdminRetorna uma conversa
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um administrador da loja. Veja Tokens.Parâmetros de caminho
iduuidobrigatórioId da conversa (
id de Listar conversas). Um UUID válido que não existe também responde, veja os erros de cada rota.Exemplo de requisição
bash
curl "$BASE_URL/api/v1/admin/whatsapp-confluence/threads/7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60" \
-H "Authorization: Bearer $TOKEN"Resposta
200Conversa
json
{
"id": "7f0c2b1e-5a43-4d8e-9a67-3c1d2e4f5a60",
"account_id": "3b9d8c52-1f0a-4e7b-8a21-6d5c4b3a2f10",
"customer_phone": "5511987654321",
"contact_name": "Maria Souza",
"assignee_user_id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"assignee_name": "Ana Lima",
"unread_count": 2,
"last_message_at": "2026-10-10T14:32:10Z",
"last_message_preview": "Quero 3 caixas, pode entregar amanhã?",
"last_message_origin": "C",
"csw_expires_at": "2026-10-11T14:32:10Z",
"status": "A",
"bot_mode": "H",
"bot_mode_updated_at": "2026-10-10T14:20:00Z",
"created_at": "2026-09-28T21:56:44Z",
"updated_at": "2026-10-10T14:32:10Z"
}O corpo é o objeto da conversa, com os mesmos campos de cada item de threads em Listar conversas.
Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O token não é de um administrador. | {"error":"insufficient permissions"} |
| 400 | Um segmento do caminho é 0 ou um inteiro negativo. | {"error":"invalid id parameter"} |
| 404 | Conversa inexistente, ou id que não é um UUID. | {"error":"thread not found"} |