Marketing por correo: buenas prácticas y baja
Consentimiento, el enlace y la página de baja, la baja con un clic, temas y los cuidados que mantienen tus campañas y automatizaciones fuera del spam.
#Transaccional y marketing
Los correos transaccionales responden a una acción de la persona: confirmación de pedido, restablecimiento de contraseña, aviso de entrega. Salen por POST /emails o SMTP y no consultan la audiencia. Los correos de marketing son los que tú decides enviar: newsletters, promociones, secuencias de bienvenida. Para ellos, usa campañas y automatizaciones: Postal respeta la baja, filtra la lista de supresión y coloca el enlace y los encabezados de baja en cada mensaje.
Baja y POST /emails
La baja de un contacto (unsubscribed) vale para las campañas y para los envíos de las automatizaciones, no para POST /emails. Si envías marketing por ahí, consulta el contacto antes y respeta su decisión: el webhook contact.updated avisa cuando cambia.
#Consentimiento
- Envía marketing solo a quien lo pidió: quien se suscribió en un formulario, marcó la opción en el registro o es cliente y fue avisado. Las listas compradas, alquiladas o extraídas de internet no están permitidas por la Política de Uso Aceptable y destruyen la reputación del dominio.
- Activa el double opt-in en los formularios públicos: la persona confirma la dirección antes de entrar en la audiencia, lo que evita direcciones mal escritas e inscripciones de robots.
- Guarda de dónde vino cada contacto (una propiedad como
source) y cuándo se suscribió. Según la LGPD, necesitas poder demostrar la base legal del envío. - Quien solo recibió un correo transaccional tuyo no aceptó recibir marketing. Esas direcciones entran solas en la audiencia como contactos sin confirmar y quedan fuera de campañas y automatizaciones hasta que el propietario o un administrador confirme que las personas aceptaron, asumiendo la responsabilidad de ese consentimiento. Mira Audiencia automática de los correos transaccionales.
- Al importar una lista antigua, trae también las bajas (la columna
unsubscribeden la asignación de columnas) y empieza por los contactos más recientes y más activos.
#Enlace y página de baja
Cada correo de campaña o de automatización lleva un enlace firmado, exclusivo del contacto, a la página de preferencias en el host de los formularios:
https://forms.postal.so/preferencias/019a1e00-1a2b-7c3d-8e4f-5a6b7c8d9e0f?email=019a1b2c-4d5e-7f60-8a9b-0c1d2e3f4a5b&signature=5d1c9a…
En la página, que usa el nombre de tu equipo, la persona puede:
- salir de todo: el contacto queda con
unsubscribed: truey no recibe más campañas ni correos de automatizaciones; - volver a recibir, si cambia de opinión;
- elegir los temas: aparecen los temas públicos del equipo, con la suscripción actual marcada.
El enlace no caduca, para que los correos antiguos sigan funcionando, y solo vale para ese contacto: si se modifica, muestra “Enlace no válido” (“Invalid link”, en inglés). Cada cambio dispara el webhook contact.updated. En una campaña, el enlace ya está en el pie automático; para colocarlo donde quieras, usa {{{POSTAL_UNSUBSCRIBE_URL}}} en el HTML (y, en las automatizaciones, en la plantilla).
Idioma del pie y de la página
El pie automático y la página de preferencias (con los avisos que muestra) hablan el idioma de quien recibe, pt-BR o en. Postal lo elige para cada destinatario, usando el primero que exista:
- el
languagede la campaña (pt-BRoen); - la propiedad
languagedel contacto, comopt-BRoen-US(vale el idioma anterior al guion; los demás idiomas se ignoran); - la propiedad
localedel contacto, de la misma forma; - el idioma que el propietario del equipo eligió en el panel;
- portugués de Brasil, cuando nada indica cuál es el idioma.
La página de preferencias usa el mismo orden. La campaña que vale es la del correo en el que la persona hizo clic (el enlace lleva el ID del correo); los enlaces de automatizaciones y los enlaces antiguos, sin el correo de la campaña, empiezan por el contacto. El Accept-Language del navegador no cuenta en estas páginas. La página de enlace no válido (enlace alterado, o de un contacto que no existe) elige así: el idioma del contacto citado en el enlace (el de las propiedades o, si no lo tiene, el del equipo), después el Accept-Language del navegador (pt-BR o en) y, por último, portugués de Brasil.
Para fijar el idioma de una campaña, envía language al crearla o actualizarla. Postal no traduce tu contenido (asunto, HTML, texto): solo lo que ella misma añade.
#Baja con un clic
Todos los correos de campaña y de automatización incluyen los encabezados de baja con un clic (RFC 8058), que los grandes proveedores de bandeja de entrada exigen a quien envía en volumen y usan para mostrar el botón “Cancelar suscripción” junto al remitente:
List-Unsubscribe: <https://forms.postal.so/preferencias/019a1e00-1a2b-7c3d-8e4f-5a6b7c8d9e0f?email=019a1b2c-4d5e-7f60-8a9b-0c1d2e3f4a5b&signature=5d1c9a…>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
El proveedor hace un POST en el enlace con List-Unsubscribe=One-Click y Postal responde 200, sin pedir confirmación. El efecto depende del origen:
| Qué hace el clic | |
|---|---|
Campaña con topic_id | Quita al contacto solo de ese tema (opt_out). Sigue recibiendo los demás asuntos. |
| Campaña sin tema | Da de baja al contacto de todo (unsubscribed: true). |
| Correo de automatización | Da de baja al contacto de todo. |
En las campañas, cada baja cuenta una vez en stats.unsubscribed y en la métrica unsubscribed de GET /emails/metrics.
#Usa temas
Quien solo tiene la opción “salir de todo” sale de todo. Con temas (“Novedades”, “Promociones”, “Contenido”), la persona puede dejar de recibir promociones y seguir leyendo la newsletter.
- Crea los temas como
publicpara que aparezcan en la página de preferencias. - Envía cada campaña con el
topic_iddel asunto: solo recibe quien está suscrito, y el clic único quita a la persona solo de ese tema. - Elige con cuidado el valor predeterminado:
opt_inincluye a quien nunca eligió nada;opt_outsolo incluye a quien lo pidió, lo ideal para asuntos más frecuentes.
#Reputación y entregabilidad
- Usa un dominio verificado y un remitente estable, como
novidades@. Separar el marketing en un subdominio (por ejemplo,news.lojaexemplo.com.br) protege la entrega de los correos transaccionales. Consulta Dominios y DNS. - Crece poco a poco. En un dominio nuevo, empieza por los segmentos más activos y aumenta el volumen a lo largo de varios días. Los envíos grandes también se pausan solos cuando se agota la cuota y continúan cuando se renueva.
- Cuida la lista. Los rebotes permanentes y las quejas de spam van a la lista de supresión y quedan fuera de los próximos envíos. Los contactos que llevan meses sin abrir merecen una campaña de reactivación o la eliminación.
- Sigue las tasas. Postal pausa los envíos del equipo cuando los rebotes permanentes superan el límite del nivel de la reputación de la cuenta (del 3% al 5%) o las quejas superan el 0,3%. Una tasa de bajas alta en una campaña indica que el asunto o la frecuencia no encajan con ese segmento. Los avisos antes de la pausa y cómo detectarla están en Límites; una campaña en curso queda
paused(consulta los estados) y solo continúa cuando los envíos se reanudan. - Prueba antes. Revisa la vista previa con un contacto real, envía una prueba, escribe un
preheadery mantén una versión en texto. - Sé reconocible. Indica en el pie quién envía y por qué la persona lo recibe (“Recibes este correo porque te suscribiste en lojaexemplo.com.br”).
#Mide y reacciona
- Compara campañas.
GET /emails/metricscondimensions=broadcasttrae entrega, apertura, clic y baja de cada campaña en el período, y la propia campaña incluyestats. Consulta Métricas y webhooks. - Prueba una cosa cada vez. El paso
experimentde una automatización reparte los contactos entre 2 y 4 variantes (asuntos, contenidos, esperas), mide aperturas, clics, respuestas y conversiones y te deja declarar la ganadora. Depende del plan. - Escucha las respuestas. Con
detect_replies, Postal registra cada respuesta (el webhookemail.replied) y sigue reenviándola a tureply_to. Consulta Detectar respuestas. - Reacciona a lo que hace la persona. Una automatización puede empezar cuando el contacto abre o hace clic en un correo (
email.opened,email.clicked), recibe una etiqueta o cambia una propiedad, y el pasowait_forespera la acción durante un plazo antes de seguir por otro camino.
#Sincroniza con tu sistema
Si tu producto también guarda la preferencia de correo electrónico, mantén ambos lados iguales:
- Suscríbete al webhook
contact.updatedy actualiza tu registro cuandounsubscribedo los temas cambien. - Cuando la persona cambie la preferencia en tu producto, usa
PATCH /contacts/{id}conunsubscribed, oPATCH /contacts/{id}/topics. - Quien vuelve a suscribirse mediante un formulario vuelve a recibir mensajes, aunque se haya dado de baja antes.