Sincroniza bajas con tu base de datos
Envía cada cambio de suscripción desde Bitelio hacia tu propia tabla de usuarios con el paso de webhook de un flujo de trabajo
Cada vez que el indicador subscribed de un contacto se desactiva — ya sea por una edición manual, la página de baja alojada, un rebote, o una queja de spam — Bitelio emite contact.unsubscribed. Un flujo de trabajo que escuche ese evento puede reenviarlo directamente a tu backend mediante un paso WEBHOOK.
Configuración
Construye el endpoint receptor
Expón una ruta HTTPS pública que verifique un secreto compartido antes de tocar el registro del usuario. Mantén el manejador rápido — las entregas de webhook se cortan a los 10 segundos, así que empuja cualquier cosa lenta a una cola.
app.post('/bitelio/unsubscribes', async (req, res) => {
if (req.header('authorization') !== `Bearer ${process.env.BITELIO_WEBHOOK_SECRET}`) {
return res.status(401).end();
}
const { contact, event } = req.body;
await db.user.update({
where: { email: contact.email },
data: {
emailSubscribed: false,
emailUnsubscribedReason: event.reason ?? 'user_action',
},
});
res.status(204).end();
});Cuando la baja fue automática, event.reason lleva "bounce" o "complaint"; para las bajas manuales o por autoservicio el campo simplemente no está presente.
Crea el flujo de trabajo
En Flujos de trabajo → Nuevo flujo de trabajo:
- Disparador:
EVENTencontact.unsubscribed - Añade un paso
WEBHOOK:- URL:
https://api.example.com/bitelio/unsubscribes - Encabezados:
{ "Authorization": "Bearer your-shared-secret" } - Deja el cuerpo vacío para que Bitelio envíe la carga útil por defecto.
- URL:
Activa el flujo de trabajo.
Reflejar las resuscripciones
Para la dirección opuesta del indicador, clona la misma estructura en un segundo flujo de trabajo disparado en contact.subscribed. No fusiones los dos en un flujo único con ramas — un par de flujos de trabajo pequeños y de propósito único es mucho más fácil de vigilar.
La dirección inversa
Cuando la copia autoritativa vive de tu lado — digamos que un usuario cambia su preferencia de correo dentro de tu propia página de ajustes — envía el cambio a Bitelio con PATCH /contacts/:id desde tu backend:
curl -X PATCH https://api.bitelio.com/contacts/cnt_abc \
-H "Authorization: Bearer sk_your_secret_key" \
-d '{"subscribed": false}'Ten en cuenta que esta actualización también emite contact.unsubscribed, así que el webhook que construiste arriba reflejará el cambio de vuelta a tu manejador. Como la escritura es idempotente, el ciclo normalmente es inofensivo — simplemente no te sorprenda.
Qué sigue
Lista de espera con correo de confirmación
Registra cada inscripción como un evento, mantén a cada inscrito como contacto, y envíales una confirmación sin mover un dedo
Doble opt-in
Haz que las nuevas inscripciones hagan clic en un enlace de confirmación antes de que les llegue cualquier correo de marketing