Guía: doble opt-in
Recoge una preferencia de correo pendiente, envía un enlace de confirmación y solo escribe GRANTED cuando la persona hace clic.
Algunas normativas (ePrivacy, ciertas interpretaciones del RGPD) exigen opt-in confirmado para el correo de marketing: registra la intención, envía un correo de verificación y activa la suscripción solo cuando se hace clic en el enlace. Esta guía cubre el flujo completo.
Antes de empezar
- Crea un propósito del centro de preferencias con categoría
marketing(p. ej. clavenewsletter). - Crea una clave
sk_para tu servidor. - Ten listo un servicio de correo transaccional — el correo lo envías tú; Tripticonsent proporciona el token.
1. El usuario envía el formulario de registro
En tu servidor, escribe un registro de preferencia pendiente y solicita un token de confirmación de corta duración.
// servidor — clave sk_
const { token, expiresAt } = await tc.createPreferenceConfirmationToken({
subject: 'email:' + user.email,
channel: 'marketing',
topic: 'newsletter',
redirectUrl: 'https://acme.com/suscripcion/confirmada',
});2. Envía el correo de confirmación
Construye el enlace tú mismo y envíalo a través de tu proveedor de correo. El endpoint de confirmación es público — no necesita clave.
const confirmUrl = `https://api.tripticonsent.com/v1/preferences/confirm?token=${token}`;
await mailer.send({
to: user.email,
subject: 'Por favor, confirma tu suscripción',
html: `<a href="${confirmUrl}">Sí, suscríbeme</a>`,
});3. El usuario hace clic
Tripticonsent escribe GRANTED en la bóveda, dispara el webhook preference.confirmed y redirige al usuario a tu redirectUrl. No hay nada más que hacer por tu parte.
getPreferences devuelve { state: "PENDING" } hasta que se confirma. Condiciona cualquier envío a state === "GRANTED" — nunca a PENDING.PENDING indefinidamente. Puedes reenviar un token nuevo en cualquier momento.