Skip to main content
Ao final, você tem uma campanha agendada para a data, com A/B test entre dois templates, custo estimado antes do envio e o Brain respondendo quem responder. Os exemplos usam a API REST direto: os SDKs não têm métodos de campanha.

Antes de começar

  • Chave de API na variável ARARA_API_KEY. Ver Autenticação.
  • Número conectado e com a qualidade acompanhada antes de subir volume. Ver Números.
  • Templates MARKETING aprovados (o passo 1 cria). Ver Templates.
  • Lista de contatos com consentimento para marketing. A segmentação é do seu lado: a campanha recebe a lista pronta.
  • Lista sem opt-out. Confira os contatos com optOutAt preenchido (GET /v1/contacts) e os números em GET /v1/opt-outs.

Passo a passo

1

Crie os templates com antecedência

A aprovação é da Meta e o prazo não é controlado pela Arara. Um conjunto comum:
samples é um objeto com o número da variável como chave. Acompanhe a aprovação com GET /v1/templates/{id}/status ou pelo webhook template.updated.
2

Estime o custo

Pela contagem de destinatários:
Pela lista real de telefones, que calcula por país de destino:
A resposta traz templateCategory, recipientCount, templateCost (custo Meta total), araraFee (taxa Arara total), unitPrice (preço médio por mensagem), totalCost e, só no POST, markets (quebra por mercado de destino).
3

Aqueça a base

Envie bf_aquecimento alguns dias antes, em uma campanha própria. Quem responder SIM abre a janela de 24h e vira um grupo prioritário para o dia principal. Para identificar as respostas, escute o webhook message.received e marque o contato do seu lado ou com etiqueta (PATCH /v1/contacts/{phone}).
4

Crie a campanha principal com A/B test

A/B test e agendamento vão no mesmo pedido. templateName é a variante A.
Resposta 200 com { id, name, status, totalMessages, totalCost, scheduledAt }. status nasce SCHEDULED com scheduledAt e INGESTING quando envia na hora.
  • Idempotency-Key é obrigatória. Use um identificador da campanha no seu sistema. Repetir a chave devolve a campanha já criada, sem enviar de novo.
  • contacts[].to é o telefone. contacts[].variables preenche {{1}}, {{2}}… na ordem.
  • sender (opcional) escolhe o número de envio.
  • scheduledAt (opcional, ISO 8601) aceita de 5 minutos a 30 dias no futuro. Fora disso a API responde CAMPAIGN_SCHEDULE_TOO_SOON ou CAMPAIGN_SCHEDULE_TOO_FAR. Sem scheduledAt, envia na hora.
Use CLICKED em template com link rastreado e READ quando o objetivo é a leitura. CONVERTED só serve se você registra conversões (ver Atribuição). DELIVERED raramente ajuda: a entrega não depende do texto.A vencedora sai quando a diferença entre A e B fica estatisticamente significativa ou quando a janela termina. Com autopilot: false, o restante fica retido até você escolher:
GET /v1/campaigns/{id}/ab-test mostra o estado do teste (winner, decidedReason, pValue e as métricas de cada variante).
5

Acompanhe o envio

Campos principais: status, totalMessages, sentCount, deliveredCount, readCount, failedCount, clickedCount, convertedCount, replyCount, holdoutCount (retidos esperando a vencedora), blockedCount e blockReasons (cada motivo de bloqueio com a quantidade de contatos), refundCount, refundValue, totalCost, startedAt e finishedAt.GET /v1/campaigns?status=... lista as campanhas. POST /v1/campaigns/{id}/cancel cancela. Ao terminar, a Arara envia o webhook campaign.completed.
6

Reaborde quem não comprou

O cruzamento é do seu lado: pegue quem recebeu a campanha principal, remova quem comprou no período e quem está em opt-out, e crie outra campanha com a lista resultante.
O mesmo vale para o último dia, com bf_ultimo_dia.
7

Responda quem respondeu

Resposta a template abre a janela de 24h. Com volume alto, o Brain responde primeiro e passa para o time quando precisa. Adicione a promoção à base de conhecimento e ligue a resposta automática:
exitTriggers.maxMessages conta o histórico inteiro com o contato, incluindo as mensagens da campanha. Cada passagem para humano gera o webhook conversation.needs_human. Modos, gatilhos e pré-requisitos do Brain em Atendimento com vários atendentes.

Armadilhas

A janela de decisão do A/B test conta a partir da criação da campanha, não do envio. Em campanha agendada, some o tempo até o scheduledAt ao decisionWindowMinutes, senão o teste termina antes de ter métricas.

Próximos passos

Campanhas de marketing

O que vale fora da data sazonal.

Campanhas na API

Todos os campos e erros.

Carrinho abandonado

Fluxo contínuo, que segue depois da campanha.