visto azuldocs
← Site Entrar
Documentação / Campanhas

Campanhas (disparo em massa)

Envie para milhares de contatos com rotação de números, intervalos aleatórios anti-ban e personalização por contato — e acompanhe o progresso em tempo real.

Criar uma campanha

POST/v1/campaigns
curl -X POST https://dashboard.vistoazul.com.br/api/v1/campaigns \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "instances": ["vendas"],
    "template": "{Oi|Olá} {{nome}}! Temos novidade pra você 💙",
    "recipients": [
      {"number":"5511999999999","vars":{"nome":"Ana"}},
      {"number":"5521988888888","vars":{"nome":"Bruno"}}
    ],
    "minDelayMs": 8000,
    "maxDelayMs": 40000
  }'
CampoDescrição
instancesLista de instâncias. Com mais de uma, a campanha rotaciona entre os números (anti-ban).
templateA mensagem. Aceita spintax e variáveis (abaixo).
recipientsLista de { number, vars }. As vars preenchem as variáveis do template.
minDelayMs / maxDelayMsIntervalo aleatório entre envios, em milissegundos. Quanto maior, mais seguro.

Resposta:

{ "campaignId": "cmp_a1b2c3" }

Spintax e variáveis

  • Spintax {a|b|c} — sorteia uma das opções por envio, deixando cada mensagem diferente. Ex.: {Oi|Olá|E aí}.
  • Variáveis {{nome}} — substituídas pelo valor em vars de cada contato.
Por que isso importa: mensagens idênticas em massa são o maior gatilho de banimento. Variar o texto com spintax + nome reduz muito o risco.

Acompanhar o progresso

GET/v1/campaigns/:id
{
  "id": "cmp_a1b2c3", "state": "running",
  "sent": 120, "failed": 3, "total": 500
}

state: running, paused, done ou canceled.

Pausar, retomar, cancelar

POST/v1/campaigns/:id/pause
POST/v1/campaigns/:id/resume
POST/v1/campaigns/:id/cancel
curl -X POST https://dashboard.vistoazul.com.br/api/v1/campaigns/cmp_a1b2c3/pause \
  -H "Authorization: Bearer SUA_API_KEY"

Validar números antes (anti-ban)

Disparar para número sem WhatsApp desperdiça envio e aumenta o risco. Verifique quais contatos têm WhatsApp antes:

POST/v1/wa/chat/check
curl -X POST https://dashboard.vistoazul.com.br/api/v1/wa/chat/check \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "x-instance: vendas" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["5511999999999","5521988888888"]}'

Agendar envios

Para programar mensagens (ex.: lembretes de cobrança ou aquecimento de lançamento), use o agendador nativo do motor via proxy, com scheduled_for em epoch (ms):

POST/v1/wa/sender/simple
curl -X POST https://dashboard.vistoazul.com.br/api/v1/wa/sender/simple \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "x-instance: vendas" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["5511999999999"],"type":"text","text":"Lembrete 💙","delayMin":1,"delayMax":2,"scheduled_for":1782200000000,"folder":"Lembretes"}'
Boas práticas: use listas com opt-in, comece devagar com número novo (aquecimento) e mantenha delays altos. O anti-ban ajuda, mas o uso responsável é o que protege seu número.