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
}'
| Campo | Descrição |
|---|---|
instances | Lista de instâncias. Com mais de uma, a campanha rotaciona entre os números (anti-ban). |
template | A mensagem. Aceita spintax e variáveis (abaixo). |
recipients | Lista de { number, vars }. As vars preenchem as variáveis do template. |
minDelayMs / maxDelayMs | Intervalo 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 emvarsde 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.