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.

Campanhas permitem disparar mensagens em massa pra grupos de contatos. Existem dois tipos:
  • Ongoing — dispara automaticamente quando um visitante atinge regras configuradas (ex: passou X tempo no site)
  • One-off — disparo manual pra audiência definida na hora

Listar campanhas

GET /api/v1/accounts/{account_id}/campaigns
curl https://chat.lfautomatiza.com/api/v1/accounts/1/campaigns \
  -H "api_access_token: $TOKEN"

Criar campanha ongoing (widget)

POST /api/v1/accounts/{account_id}/campaigns
curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/campaigns \
  -H "api_access_token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Saudação na página de preços",
    "message": "Oi! Está com dúvida sobre os planos? Posso ajudar.",
    "inbox_id": 2,
    "sender_id": 7,
    "trigger_only_during_business_hours": true,
    "trigger_rules": {
      "url": "https://lfautomatiza.com/precos",
      "time_on_page": 30
    }
  }'
CampoTipoDescrição
titlestringNome interno da campanha
messagestringTexto enviado
inbox_idintegerWebchat inbox
sender_idintegerAgente que aparece como remetente
trigger_only_during_business_hoursbooleanSó dispara em horário comercial
trigger_rules.urlstringURL exata onde dispara
trigger_rules.time_on_pageintegerSegundos no site antes de disparar

Criar campanha one-off (envio em massa)

curl -X POST https://chat.lfautomatiza.com/api/v1/accounts/1/campaigns \
  -H "api_access_token: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Promoção Mai/2026",
    "message": "Oi {{contact.name}}, temos uma novidade pra você!",
    "inbox_id": 1,
    "campaign_type": "one_off",
    "audience": [
      { "type": "Label", "id": 1 },
      { "type": "Label", "id": 2 }
    ],
    "scheduled_at": "2026-05-20T10:00:00-03:00"
  }'
CampoDescrição
campaign_typeone_off ou ongoing
audienceArray de Label IDs (combina via OR)
scheduled_atISO 8601 — quando disparar (ou omita pra disparar na hora)
messageSuporta {{contact.name}}, {{contact.email}}, {{contact.custom_attributes.xxx}}

Variáveis disponíveis na mensagem

VariávelValor
{{contact.name}}Nome do contato
{{contact.email}}E-mail
{{contact.phone_number}}Telefone
{{contact.identifier}}ID externo
{{contact.custom_attributes.X}}Valor de um atributo personalizado

Spintax (variações de texto)

Pra reduzir padrão e diminuir filtro anti-spam:
{Olá|Oi|E aí} {{contact.name}}! Temos {uma novidade|um aviso|uma oferta} pra você.
A plataforma escolhe aleatoriamente uma das alternativas em cada envio.

Detalhe da campanha

GET /api/v1/accounts/{account_id}/campaigns/{id}
Retorna status atual, audiência total, enviadas com sucesso, falhadas, e ETA quando aplicável.

Atualizar campanha

PATCH /api/v1/accounts/{account_id}/campaigns/{id}
Só funciona enquanto a campanha está em draft ou paused. Campanhas em execução não podem ser editadas.

Pausar / retomar campanha

POST /api/v1/accounts/{account_id}/campaigns/{id}/pause
POST /api/v1/accounts/{account_id}/campaigns/{id}/resume
Útil pra parar uma campanha já em curso se você detectar algo errado (alta taxa de falha, bloqueio, etc.).

Excluir campanha

DELETE /api/v1/accounts/{account_id}/campaigns/{id}
Só permitido em draft. Campanhas executadas viram histórico (preservadas).

Status da campanha

StatusSignificado
draftCriada mas não disparada ainda
enabledAtiva (ongoing) — disparando conforme triggers
scheduledOne-off agendada pra scheduled_at
runningOne-off em execução
completedOne-off finalizada
pausedPausada manualmente
failedFalhou globalmente (erro de inbox, sem audiência, etc.)

Códigos de resposta

CódigoQuando acontece
200 OKListagem / leitura / atualização
201 CreatedCampanha criada
204 No ContentPausada / retomada / excluída
403 ForbiddenSem permissão (apenas admin)
422 Unprocessable EntityInbox inválida ou audiência vazia