Broadcasts
Uma campanha.Milhares de contatos.
Monte a lista em lotes de mil, dê a cada destinatário as suas próprias variáveis e envie pelo canal que faz sentido — ou deixe cada contato ser alcançado do jeito que funciona para ele. O custo é reservado antes da primeira mensagem sair, e o envio é legível enquanto acontece.
Canais que uma campanha pode tomar
Seis valores, e nenhum outro. smart decide contato a contato, e por isso responde à mesma verificação que SMS e email — ele pode rotear para qualquer um dos dois.
O que trava um envio
Rascunhar é grátis. Enviar não.
A verificação trava o envio, nunca o rascunho. Escolha um canal e leia exatamente o que ele exige, o que revisa o conteúdo e o que um envio bloqueado devolve.
As duas. Verificação de identidade (KYC) e de empresa (KYB), e passar em uma não basta. smart não é exceção: pode rotear um contato para SMS ou para email, então responde à mesma régua que eles.
Primeiro revisão automática de conteúdo, depois uma pessoa libera antes de qualquer coisa sair.
403 kyc_required ou 403 kyb_required, nomeando a que estiver faltando.
Nada disso toca um rascunho. Crie a campanha, adicione todos os destinatários, reescreva o texto — sem verificação e sem cobrança. Os controles rodam no envio.
A máquina de estados
Doze estados. Percorra-os.
Todo estado que uma campanha pode reportar, e todo movimento entre eles. Clique num estado para lê-lo; pressione uma transição para tomá-la.
Rascunho
Criada, não submetida. Não custa nada, não pede verificação, e pode ser editada e reabastecida pelo tempo que você quiser.
O que aceita
- PATCH /v1/broadcasts/{id} — reescreva o texto
- POST /v1/broadcasts/{id}/contacts — adicione até 1.000 destinatários por chamada
- DELETE /v1/broadcasts/{id} — descarte-a
- POST /v1/broadcasts/{id}/send — submeta-a
Cada movimento acima dispara o webhook broadcast.status_changed, então nada disso precisa ser consultado para ser notado.
Uma campanha, uma mensagem para cada
Cada destinatário leva as suas próprias variáveis.
Um lote é uma lista de destinatários, cada um com o seu próprio objeto templateVariables. Edite o corpo ou qualquer linha e veja o que aquela pessoa realmente recebe — e o que o endpoint responderia.
added
+14155551234
Hi John, order ORD-001 shipped today.
added
+5491133445566
Hi Lucía, order ORD-002 shipped today.
added
mara@example.com
Hi Mara, order ORD-003 shipped today.
3
added
0
duplicates
0
invalid
Até 1.000 destinatários por requisição, chamada quantas vezes a lista precisar. Duplicados e inválidos voltam contados, com um motivo cada, em vez de serem descartados em silêncio. Templates de WhatsApp aceitam mais dois objetos por destinatário: templateButtonVariables, indexado por botão, e templateHeaderVariables, indexado por 1.
Enquanto roda
Contagens, custo e uma hora de término.
Uma única chamada responde com o quadro inteiro. Arraste o envio para a frente, ou cancele-o em pleno voo e veja o que acontece com os destinatários que ainda não tinham saído.
48%
percentComplete
5,000 destinatários
startedAt 10:30 · eta 10:45
2,500
pending
100
sending
2,352
delivered
48
failed
0
skipped
$75.00
estimatedCost
$75.00
reservedAmount
$35.28
actualCost
O custo estimado é reservado do seu saldo quando o envio começa, para que uma campanha não fique pela metade por falta de fundos. actualCost acumula sobre o que foi entregue, e a diferença volta.
Quatro chamadas
Broadcasts está no SDK.
Crie, preencha, envie, acompanhe. Métodos reais em TypeScript e Python, e os mesmos quatro passos sobre HTTP puro.
import Zavudev from '@zavudev/sdk';
const zavu = new Zavudev({ apiKey: process.env['ZAVUDEV_API_KEY'] });
// channel: smart | sms | sms_oneway | whatsapp | telegram | email
const broadcast = await zavu.broadcasts.create({
name: 'October update',
channel: 'smart',
text: 'Hi {{name}}, order {{order_id}} shipped today.',
});
console.log(broadcast.id, broadcast.status); // -> "draft"Escreva uma vez. Alcance todos.
Comece grátis, sem cartão. Rascunhos não custam — a verificação só é pedida no envio, e nunca no WhatsApp.