Broadcasts: Emails Masivos

Un broadcast es un email que se envía a toda una audiencia (o a un segmento de ella) en un solo disparo. Es el equivalente de una campaña de email marketing: tú decides el contenido, eliges a quién va dirigido y cuándo se envía.

Broadcast vs Email Transaccional

Antes de seguir, es importante entender la diferencia entre estos dos tipos de email porque Resend los maneja de forma distinta:

Email transaccional: se dispara automáticamente cuando un usuario realiza una acción en tu aplicación. Ejemplos: confirmación de registro, recibo de compra, reseteo de contraseña. Se envía con resend.emails.send() desde tu código.

Broadcast: tú decides cuándo enviarlo. Ejemplos: newsletter semanal, anuncio de nueva feature, promoción de temporada. Se envía desde el dashboard de Resend o usando la API de broadcasts.

TransaccionalBroadcast
Disparado porAcción del usuarioDecisión tuya
Métodoresend.emails.send()Dashboard o API de broadcasts
DestinatarioUn usuario específicoToda una audiencia o segmento
FrecuenciaCuando ocurre la acciónCuando tú lo programes

Crear un Broadcast desde el Dashboard

La forma más rápida de enviar tu primer broadcast es desde el dashboard de Resend:

  1. Ve a Broadcasts en el menú lateral
  2. Haz clic en Create Broadcast
  3. Selecciona la audiencia a la que quieres enviar
  4. Escribe el subject (asunto) del email
  5. Crea el contenido usando el editor visual o pegando HTML directamente
  6. Haz clic en Preview para ver cómo se verá el email
  7. Envía inmediatamente o programa el envío para una fecha futura

Crear un Broadcast por API

Si prefieres automatizar la creación de broadcasts desde tu código, puedes usar la API:

typescript
import { Resend } from 'resend'
 
const resend = new Resend(process.env.RESEND_API_KEY)
 
// Paso 1: crear el broadcast
const { data, error } = await resend.broadcasts.create({
  audienceId: 'aud_xxxx',
  from: 'Newsletter <news@tudominio.com>',
  subject: 'Novedades de marzo',
  html: '<h1>Novedades</h1><p>Este mes lanzamos...</p>'
})
 
if (error) {
  console.error('Error al crear broadcast:', error)
  throw error
}
 
// Paso 2: enviar el broadcast
await resend.broadcasts.send(data.id)

Programar el Envío

Si no quieres enviar el broadcast inmediatamente, puedes programarlo para una fecha y hora específica usando el parámetro scheduledAt con formato ISO 8601:

typescript
const { data, error } = await resend.broadcasts.create({
  audienceId: 'aud_xxxx',
  from: 'Newsletter <news@tudominio.com>',
  subject: 'Novedades de marzo',
  html: '<h1>Novedades</h1><p>Este mes lanzamos...</p>',
  scheduledAt: '2026-03-15T10:00:00Z'
})

El broadcast se enviará automáticamente en la fecha indicada. Puedes cancelarlo antes de que se envíe desde el dashboard.

Analytics de Broadcasts

Después de enviar un broadcast, Resend te muestra métricas en tiempo real desde el dashboard:

  • Opens (aperturas) -- cuántos destinatarios abrieron el email
  • Clicks (clics) -- cuántos hicieron clic en algún link dentro del email
  • Bounces (rebotes) -- cuántos emails no pudieron ser entregados
  • Unsubscribes (desuscripciones) -- cuántos usuarios se desuscribieron después de recibir el email

Estas métricas te ayudan a entender qué tan efectivo fue tu broadcast y a mejorar los siguientes.

Link de desuscripción automático

Los broadcasts incluyen automáticamente un link de unsubscribe (desuscripción) al final del email. Esto es obligatorio por ley en la mayoría de jurisdicciones, incluyendo CAN-SPAM (Estados Unidos) y GDPR (Unión Europea). No necesitas agregarlo manualmente.

Envío de prueba

Siempre haz un envío de prueba a tu propio email antes de enviar a toda la audiencia. Revisa que el subject, el contenido y los links funcionen correctamente. Un error en un broadcast llega a todos tus contactos de golpe.