Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lfautomatiza.com/llms.txt

Use this file to discover all available pages before exploring further.

Mensagens vivem dentro de uma conversa. Todo endpoint é escopado tanto pela conta quanto pela conversa:
/api/v1/accounts/{account_id}/conversations/{conversation_id}/messages

Listar mensagens

GET /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages
ParâmetroDescrição
beforeID de mensagem — retorna mensagens anteriores a essa (paginação)
afterID de mensagem — retorna mensagens posteriores
curl "https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages" \
  -H "api_access_token: $TOKEN"

Resposta

{
  "meta": {
    "labels": [],
    "additional_attributes": {},
    "contact": { "id": 542, "name": "Carlos Antônio" },
    "assignee": { "id": 7, "name": "Sabrina" }
  },
  "payload": [
    {
      "id": 7821,
      "content": "Olá! Tenho interesse no plano Scale.",
      "account_id": 1,
      "inbox_id": 1,
      "conversation_id": 1287,
      "message_type": "incoming",
      "content_type": "text",
      "status": "received",
      "created_at": 1715972350,
      "private": false,
      "source_id": "wamid.HBgN...",
      "sender": {
        "id": 542,
        "name": "Carlos Antônio",
        "type": "contact"
      },
      "attachments": []
    }
  ]
}

Enviar mensagem (texto)

POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages
CampoTipoDescrição
contentstringTexto da mensagem
message_typeenumoutgoing (padrão) ou incoming
privatebooleantrue = nota interna (invisível ao cliente)
content_typeenumtext, input_select, cards, form
content_attributesobjectMetadata adicional (varia por content_type)
template_paramsobjectParâmetros pra templates aprovados
curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages \
  -H "api_access_token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Sua proposta foi aprovada! Confira o PDF anexo.",
    "message_type": "outgoing",
    "private": false
  }'

Enviar mensagem com anexo

Use multipart quando precisar enviar arquivo:
curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages \
  -H "api_access_token: $TOKEN" \
  -F "content=Segue o contrato" \
  -F "message_type=outgoing" \
  -F "attachments[]=@contrato.pdf"
Múltiplos anexos: repita o campo attachments[].

Enviar template (WhatsApp)

Pra disparos que estão fora da janela de 24h, use um template aprovado:
curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages \
  -H "api_access_token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "",
    "template_params": {
      "name": "boas_vindas_pt_br",
      "language": "pt_BR",
      "category": "MARKETING",
      "processed_params": {
        "1": "Carlos",
        "2": "Scale"
      }
    }
  }'
CampoDescrição
nameNome do template aprovado na sua conta business
languageCódigo de idioma (pt_BR, en_US, etc.)
categoryMARKETING, UTILITY, AUTHENTICATION
processed_params.{n}Substitui o placeholder {{n}} do template

Nota privada

Notas privadas ficam visíveis apenas para os atendentes — o cliente nunca vê:
curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages \
  -H "api_access_token: $TOKEN" \
  -d '{
    "content": "Cliente pediu desconto. Aprovei até 10% — não passe disso.",
    "private": true
  }'

Mensagem interativa (cards)

Disponível em canais que suportam (Webchat, Telegram):
curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages \
  -H "api_access_token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Escolha um plano:",
    "content_type": "input_select",
    "content_attributes": {
      "items": [
        { "title": "Growth - R$ 347", "value": "growth" },
        { "title": "Scale - R$ 597", "value": "scale" },
        { "title": "Infinity - R$ 997", "value": "infinity" }
      ]
    }
  }'

Excluir mensagem

DELETE /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages/{id}
curl -X DELETE https://chat.lfautomatiza.com/api/v1/accounts/1/conversations/1287/messages/7821 \
  -H "api_access_token: $TOKEN"
A mensagem não é apagada de fato — fica como “Mensagem excluída” com um placeholder configurável por inbox. O cliente vê esse placeholder.

Tipos de mensagem

message_typeQuem enviaVisibilidade
incomingCliente para a plataformaTodos veem
outgoingPlataforma para o clienteTodos veem
activitySistema (atribuição, status mudou)Atendentes veem
templatePlataforma para o cliente, via templateTodos veem

Status de entrega

Campo status da mensagem:
StatusSignificado
sentSaiu da plataforma
deliveredEntregue ao dispositivo do destinatário
readCliente leu (se canal suporta)
failedFalhou — confira external_error
receivedMensagem recebida (incoming)

Códigos de resposta

CódigoQuando acontece
200 OKLista retornada
201 CreatedMensagem enviada
400 Bad RequestPayload inválido (ex: anexo grande demais)
403 ForbiddenSem permissão na conversa
404 Not FoundConversa não existe
422 Unprocessable EntityFora de janela / template inválido