Broadcasts
Componha, agende e envie um email para muitos contatos.
Um broadcast é um email enviado a muitos contatos: todos eles, um segmento ou um tópico. Componha no editor de blocos do painel (com campos de mesclagem por contato) ou crie broadcasts pela API.
Ciclo de vida
draft → scheduled → sending → sent
↘ canceled- Broadcasts são criados como rascunhos (
draft). Só rascunhos podem ser editados ou apagados. POST /broadcasts/{id}/sendagenda o envio — imediatamente, ou em um timestampscheduled_at.- Um broadcast na fila — agendado, ou já saindo — pode ser cancelado com
POST /broadcasts/{id}/cancel. Os e-mails já enviados não voltam; ocanceled_remainingda resposta diz quantos foram parados, e osent_countde uma leitura diz quantos já tinham saído. - Na comunicação,
scheduledesendingaparecem ambos comoqueued(correspondendo à união de status do SDK do Resend);canceledé uma extensão do MillionSend. Um broadcast aparece comoqueuedcomsent_atnulo até o último e-mail sair, leve o tempo que levar.
O que o fan-out faz
Cada email de destinatário passa pelo mesmo pipeline de um envio transacional, mais o tratamento específico de broadcast:
- Resolução de audiência — contatos descadastrados globalmente são sempre excluídos; filtros de segmento e inscrições em tópicos são avaliados no momento do envio.
- Checagens de supressão — endereços na lista de supressão são pulados.
- Campos de mesclagem — valores por contato (nome, propriedades customizadas) são substituídos no template.
- Links de descadastro — headers
List-Unsubscribede um clique (RFC 8058) e um link de descadastro hospedado são adicionados a cada mensagem. Para colocar o link no corpo, escreva{{{UNSUBSCRIBE_URL}}}— ele é substituído por destinatário pela URL de descadastro hospedada.{{{RESEND_UNSUBSCRIBE_URL}}}é um alias suportado, então templates escritos para o Resend continuam funcionando sem mudança (e voltam sem mudança).
Os e-mails de broadcast entram na fila de envio abaixo dos transacionais: um e-mail transacional aceito enquanto um broadcast está saindo é enviado antes dos destinatários restantes. Os envios rodam em várias pistas ao mesmo tempo, no ritmo da taxa de envio do SES da instância.
Em uma instância auto-hospedada, os links de descadastro são construídos a
partir de APP_BASE_URL, então o envio de broadcasts é rejeitado até que ela
esteja configurada — veja
Auto-hospedagem. Na Nuvem isso
é automático.
Ritmo de envio
A plataforma envia uma quantidade limitada de e-mails por dia. Um broadcast que cabe no que está disponível sai de uma vez, na taxa de envio. Um maior sai em levas: a primeira agora, o restante conforme a capacidade libera nos dias seguintes. E-mails transacionais nunca ficam retidos atrás de um broadcast.
O envio avisa de antemão:
{
"id": "8c1f0b8e-…",
"finishes_at": "2026-09-18T13:26:05Z",
"estimated": true,
"warning": {
"code": "paced",
"days": 3,
"message": "170,000 recipients exceed the broadcast capacity available now; sending is paced and finishes about 2026-09-18T13:30:00Z. Transactional email is unaffected."
}
}finishes_até o instante estimado em que o último e-mail sai;nullquando não há estimativa. É uma estimativa: outros envios a movem.warningsó aparece quando o envio leva mais de uma leva —pacedquando a audiência passa da capacidade disponível agora,queued_behindquando outros envios estão na frente (a mensagem diz quando este começa).- Enquanto um broadcast está saindo,
GET /broadcasts/{id}e a lista trazemfinishes_atao vivo esent_count. - Uma audiência que precisaria de mais de 24 dias de capacidade — da
plataforma, ou do limite do seu plano — é recusada com
422 broadcast_too_largeem vez de aceita e deixada esperando. Divida em segmentos menores ou fale com o suporte.
Salvaguardas
- Somente um domínio verificado do seu time pode aparecer em
from. - Se sua taxa recente de bounce ou reclamação cruzou o limite de pausa do
SES, novos envios de broadcast são bloqueados com um erro
403 sending_paused— contendo o estrago antes que o SES pause o envio por completo. - Se a taxa agregada de bounce ou reclamação da plataforma na região SES do seu
remetente se aproxima da linha de revisão do SES, envios de broadcast nessa
região são recusados com
403 broadcasts_pausedaté a taxa se recuperar. O e-mail transacional continua saindo, e a pausa libera sozinha.
Veja a referência da API para todos os endpoints de broadcast.
Mudanças recentes
- Um broadcast com e-mails ainda esperando — por capacidade, ou pela virada
do limite do plano — aparece como
queuedcomsent_atnulo até o último e-mail sair. Antes aparecia comosentassim que todos os e-mails eram gravados. - Uma audiência cujo limite do plano precisaria de mais de 24 dias é recusada
com
422 broadcast_too_largeem vez de aceita e deixada esperando. POST /broadcasts/{id}/cancelfunciona em um broadcast que já está saindo; a resposta trazcanceled_remaining.