Resumen
- ¿Qué es la Automatización de Correos?
- Acceso y disponibilidad
- Crear tu flujo de trabajo
- Disparadores comportamentales
- Eventos externos (Webhooks)
- Guardar y Publicar Flujos de Trabajo
- Crear un flujo de trabajo a partir de una plantilla
- Ejemplos de flujo de trabajo
- Estadísticas de la automatización
- Enlaces de baja en los correos electrónicos de automatización
- Gestionar un flujo de trabajo existente
¿Qué es la Automatización de Correos?
Las automatizaciones te ayudan a enviar mensajes oportunos y personalizados a tu audiencia sin necesidad de gestionar cada envío manualmente. Utilizando disparadores predefinidos, puedes crear flujos de trabajo que respondan automáticamente a las acciones de tus contactos, reduciendo las tareas manuales y mejorando al mismo tiempo el recorrido del cliente.
Los flujos de trabajo automatizados son flexibles, eficientes y están diseñados para ayudarte a conectar con tu audiencia en el momento preciso, sin gastos adicionales.
El editor de automatizaciones de Mailjet simplifica el diseño y la gestión de tus flujos de trabajo. Esta herramienta intuitiva de arrastrar y soltar te permite crear recorridos del cliente con facilidad. Puedes hacer zoom para obtener una visión detallada, reorganizar los bloques a medida que evoluciona tu estrategia y crear recorridos que crezcan con tu empresa.

Acceso y Disponibilidad
- La automatización está disponible exclusivamente para los Planes Prémium 15 000 y superiores.
- Si pasas a un Plan que no incluya Automatizaciones, todos los flujos de trabajo activos se pausarán automáticamente.
Con la introducción del nuevo Editor de flujos de trabajo de automatización, la función de Automatización antigua ya no estará disponible para crear nuevos flujos de trabajo. Eso sí, cualquier flujo de trabajo activo creado previamente con la versión anterior seguirá ejecutándose como se esperaba.
Te animamos a que vuelvas a crear tus flujos de trabajo actuales utilizando el nuevo editor para aprovechar al máximo sus funciones mejoradas, sus mejoras y sus futuras actualizaciones. El nuevo editor es más intuitivo, flexible y está creado pensando en que pueda evolucionar con tus necesidades.
Crear tu Flujo de Trabajo
Para comenzar, navega a Automatizaciones en la barra de navegación de Mailjet y selecciona "Crear un flujo de trabajo".
Una vez en el editor, elija el tipo de correos electrónicos que enviará el flujo de automatización: Marketing o Transaccional.
Luego, utilice los bloques del panel derecho para crear el recorrido del cliente. Aunque utilizamos principalmente el término recorrido, también podemos referirnos a él como un workflow cuando el contexto lo requiera.
Cada bloque te permitirá desencadenar una acción, escuchar un evento o aplicar una condición al flujo de trabajo.
Bloque de Inicio
El Bloque de inicio determina qué criterios debe cumplir tu contacto para entrar en el flujo de trabajo. Determinarás los criterios seleccionando un tipo de disparador y configurando tu audiencia.
-
Opciones de activación del flujo de trabajo:
- Evento de suscripción: Desencadena el flujo de trabajo cuando un contacto se suscribe a una, varias o todas las listas de contactos.
- Evento de actualización de una propiedad de contacto (CPU): Desencadena el flujo de trabajo cuando se actualiza una propiedad de un contacto.
-
Disparador comportamental (OPEN/CLICK): Se activa cuando un contacto abre un email o hace clic en un enlace, con filtros opcionales por Campañas, Etiquetas y Remitentes.
Para más detalles sobre los disparadores comportamentales, ve a la sección « Disparadores comportamentales » de este artículo. -
Evento externo (Webhook): Activa un flujo cuando tu sistema (sitio web, app, CRM, etc.) envía un evento a Mailjet mediante la API. Puedes seleccionar uno o más calificadores de webhook (los “nombres” de los eventos) para decidir qué eventos externos pueden iniciar el flujo.
Para obtener más detalles sobre los webhooks, ve a la sección « Eventos externos (Webhooks) » de este artículo.
-
Segmenta tu audiencia (opcional):
- Selecciona o crea un segmento a partir de tus segmentos existentes.
- Crea un filtro personalizado: Segmenta tu audiencia creando un segmento que solo esté disponible dentro del flujo de trabajo.
Ejemplos de configuración:
- El contacto se suscribe a cualquier lista de contactos y se encuentra en Francia.
- Contactos que se suscriben a la lista de contactos "Newsletter".
- Contactos que se suscriben a "Newsletter" o "Promociones" y que pertenecen al segmento "Usuario activo".
- Comportamental (OPEN): el contacto abre un email de la campaña «Spring_Sale_2026» o «VIP_Offers».
- Comportamental (CLICK): el contacto hace clic en un enlace etiquetado con
pricingoupgradeen cualquier campaña. - Comportamental (OPEN + Remitentes): el contacto abre un email enviado desde
news@mail.example.comooffers@mail.example.com. - Comportamental (CLICK + Campañas + Etiquetas): el contacto hace clic en un enlace etiquetado con
shoesosneakersen las campañas «Summer_Catalog» o «Back_To_School». - Evento externo (Webhook): El contacto activa el evento externo
purchase_completed.
Una vez que hayas configurado tu bloque de inicio para definir qué criterios debe cumplir tu audiencia para entrar en el flujo de trabajo, empezarás a diseñar el recorrido del cliente.
Bloque de Envío de Correo
Envía automáticamente un email predefinido a los contactos cuando alcanzan esta etapa del workflow.
- Editar diseño: Personaliza el contenido de tu plantilla de email.
- Nombre de la campaña: Introduce un nombre para identificar tu campaña.
- Datos del webhook: La opción Usar datos del webhook permite que el bloque Enviar un email utilice los datos recibidos de un webhook entrante o de un evento externo. Esto permite personalizar el email con los valores enviados en el payload del webhook, y no solo con las propiedades de contacto estándar.
👉Ejemplo: Usar datos de un webhook
Imagina que tienes una tienda online. Cada vez que un cliente completa una compra, tu sitio web envía una solicitud HTTP POST al endpoint del webhook de Mailjet Workflows. Este evento activa la acción correspondiente en tu workflow de automatización.
El webhook envía este tipo de datos:
{
"Tag": "purchase_completed",
"contactMail": "localpart@domainpart.tld",
"Data": {
"Variables": {
"firstname": "John",
"product_name": "Running Shoes",
"order_number": "ORD-45821",
"delivery_date": "25 June",
"discount_code": "THANKYOU10"
}
}
}
Tu automatización podría ser:
Evento externo/webhook recibido → Enviar un email
En el bloque Enviar un email, activa la opción Usar datos del webhook.
https://api.mailjet.com/V3/REST/workflow2/event al procesar ese bloque concreto de Enviar un email.A continuación, en el contenido del bloque Enviar un email, puedes utilizar el lenguaje de plantillas de Mailjet (https://documentation.mailjet.com/hc/es/articles/16886347025947-Mailjet-Templating-Language) y, en concreto, las variables de tipo var. Los valores de sustitución de estas variables se envían mediante la llamada a https://api.mailjet.com/V3/REST/workflow2/event:
Hola {{var:firstname:""}},
Gracias por tu pedido {{var:order_number:""}}.
Has comprado: {{var:product_name:"tu artículo"}}
La fecha estimada de entrega es {{var:delivery_date:"próximamente"}}.
Aquí tienes un descuento para tu próximo pedido: {{var:discount_code:""}}
El destinatario recibiría:
Hola John, Gracias por tu pedido ORD-45821. Has comprado: Running Shoes. La fecha estimada de entrega es 25 June. Aquí tienes un descuento para tu próximo pedido: THANKYOU10
Sin la opción Usar datos del webhook, el email solo utilizaría los datos de contacto estándar ya almacenados en Mailjet, como las propiedades de contacto, que pueden recuperarse mediante variables de tipo data y no mediante variables de tipo var. El email no podría utilizar valores temporales del webhook, como el número de pedido, el nombre del producto o el código de descuento.
👉Definición del endpoint
Los eventos del webhook se envían al siguiente endpoint:
POST /v3/REST/workflow2/event
Campos del payload
| Campo | Obligatorio | Tipo | Descripción |
|---|---|---|---|
ContactID |
Opcional | Integer | El ID del contacto para el evento. Debes proporcionar al menos ContactID o ContactMail. |
ContactMail |
Opcional | String | La dirección de email del contacto para el evento. Debes proporcionar al menos ContactID o ContactMail. |
Tag |
Obligatorio | String | El nombre del evento. Este valor debe coincidir con el nombre del evento utilizado en el activador del workflow. |
Data |
Opcional | Object | Un objeto que contiene datos adicionales del mensaje que pueden reutilizarse más adelante en un bloque Enviar un email del workflow. |
Si el objeto Data se incluye en el payload del evento, los datos se almacenan temporalmente en el estado del workflow del contacto. Después, pueden utilizarse en un bloque Enviar un email posterior del mismo workflow.
Estos datos se eliminan del estado del workflow una vez utilizados o cuando el contacto sale del workflow.
Campos disponibles en el objeto Data
El objeto Data puede incluir campos compatibles con la API Send de Mailjet.
| Campo | Obligatorio | Tipo | Descripción |
|---|---|---|---|
From |
Opcional | Object | Define la dirección de email y el nombre del remitente. El objeto contiene dos propiedades: Email y Name. |
Variables |
Opcional | Object | Define variables que pueden utilizarse para personalizar el contenido del email. Las variables deben proporcionarse como pares clave-valor, por ejemplo: { "firstname": "John" }. |
CustomID |
Opcional | String | Añade un ID personalizado al mensaje. |
EventPayload |
Opcional | String | Añade un payload al mensaje. El payload puede utilizar cualquier formato estándar, como JSON, XML o CSV. |
TrackOpens |
Opcional | String | Activa o desactiva el seguimiento de aperturas para este mensaje. Valores permitidos: account_default, enabled y disabled. Valor predeterminado: account_default. |
TrackClicks |
Opcional | String | Activa o desactiva el seguimiento de clics para este mensaje. Valores permitidos: account_default, enabled y disabled. Valor predeterminado: account_default. |
TemplateErrorDeliver |
Opcional | Boolean | Cuando se establece en true, el mensaje se entrega aunque se detecte un error en el lenguaje de plantillas. Cuando se establece en false, la entrega se detiene si se detecta un error de plantilla. Este campo solo puede utilizarse cuando el lenguaje de plantillas está activado. Valor predeterminado: false. |
TemplateErrorReporting |
Opcional | Object | Define el destinatario que debe recibir una copia del email con el mensaje de error si se produce un problema con la plantilla. El objeto contiene Email y Name. |
Ejemplo de payload
{
"ContactMail": "john@example.com",
"Tag": "purchase_completed",
"Data": {
"Variables": {
"firstname": "John",
"product_name": "Running Shoes",
"order_number": "ORD-45821",
"delivery_date": "25 June",
"discount_code": "THANKYOU10"
},
"TrackOpens": "enabled",
"TrackClicks": "account_default",
"CustomID": "order-confirmation-ORD-45821"
}
}
En este ejemplo:
-
ContactMailidentifica el contacto que debe entrar en el workflow. -
Tagdefine el nombre del evento utilizado para activar el workflow. -
Variablescontiene valores temporales que pueden utilizarse en un bloque Enviar un email posterior. -
TrackOpensactiva el seguimiento de aperturas para este mensaje. -
TrackClicksutiliza la configuración de seguimiento definida en la cuenta de Mailjet. -
CustomIDañade un identificador personalizado al mensaje.
Para utilizar en el email los valores del objeto Variables, activa la opción Usar datos del webhook en el bloque Enviar un email.
A continuación, puedes hacer referencia a estas variables en la plantilla de email mediante el lenguaje de plantillas de Mailjet, por ejemplo:
Hola {{var:firstname:""}},
Gracias por tu pedido {{var:order_number:""}}.
Has comprado: {{var:product_name:"tu artículo"}}
La fecha estimada de entrega es {{var:delivery_date:"próximamente"}}.
Aquí tienes tu código de descuento: {{var:discount_code:""}}
Bloque de Gestión de Contactos en Listas
Te permite gestionar tus contactos dentro de listas específicas:
- Suscribir a una lista: Añade y suscribe al contacto a una lista seleccionada.
- Añadir a una lista y volver a suscribir: Añade el contacto y vuelve a suscribirlo si ya está presente.
- Añadir a una lista sin suscribir: Añade el contacto sin alterar el estado de suscripción.
- Dar de baja de una lista: Elimina la suscripción del contacto de la lista seleccionada.
- Eliminar de una lista: Elimina completamente el contacto de la lista seleccionada.
Bloque de Actualización de Propiedad de Contacto
Permite actualizar las propiedades existentes de tus contactos:
- Selecciona la propiedad del contacto que deseas actualizar de entre las disponibles (p. ej. edad, ciudad, cumpleaños...).
- Define el nuevo valor a aplicar.
Bloque de Condición
Al utilizar el bloque de condiciones puedes evaluar el contacto según unos criterios para determinar en qué ruta del flujo de trabajo entrará seleccionando un segmento.
- Los criterios de la condición se establecen por segmentos o filtros personalizados.
- Los contactos que no cumplan ninguna condición pasarán por una ruta predeterminada "alternativa".
Ejemplo:
Se puede aplicar una condición para determinar si el contacto ha interaccionado recientemente creando un filtro con "Ha abierto un email en los últimos X días". Si el destinatario ha abierto un correo enviado en los últimos X días, saldrá del flujo de trabajo. Si no han abierto ninguno, recibirán un nuevo email.
Bloque de Evento
El bloque de eventos espera a que se produzca un evento antes de que el contacto avance en el flujo de trabajo. Para configurar el bloque de eventos seleccionarás:
Tipos de eventos
- Suscripción a lista — añadido/suscrito a una lista.
- Actualización de propiedad de contacto — cambia un valor.
- Comportamental: OPEN — el contacto abre un email (se puede filtrar).
-
Comportamental: CLICK — el contacto hace clic en un enlace (se puede filtrar).
Para más detalles sobre los disparadores comportamentales, ve a la sección « Disparadores comportamentales » de este artículo. -
Evento externo (Webhook) — el flujo se pausa hasta que tu sistema envía un evento externo coincidente (calificador de webhook) para ese contacto.
Para obtener más detalles sobre los webhooks, ve a la sección « Eventos externos (Webhooks) » de este artículo.
Configura el temporizador alternativo: Esto garantiza que un contacto nunca se quede atascado en el flujo de trabajo porque el evento nunca se produzca.
Bloque de Temporizador
Este bloque te permite determinar cuándo pasará el contacto al siguiente paso del trayecto estableciendo un temporizador con retraso, un filtro de fecha personalizado o un temporizador con una propiedad de fecha.
- El temporizador con retraso te permite retrasar el siguiente paso del flujo de trabajo en minutos, horas o días.
- El temporizador de fecha personalizada retrasará el siguiente paso en función de una fecha establecida. Una vez seleccionada la fecha, determinarás si quieres que ocurra una sola vez, o que se repita anual o mensualmente.
- El temporizador con una propiedad de fecha te permite retrasar el siguiente paso en función de una fecha de propiedad del contacto. (p. ej. la fecha de cumpleaños).
Si quieres más precisión sobre cuándo se envía el email, los tres tipos de temporizador te permiten especificar a qué hora del día quieres que se envíe el correo y en qué días de la semana quieres que se envíe.
Bloque de Salida
El bloque de salida representa el final de un flujo de trabajo para el contacto. Un flujo de trabajo puede tener muchos bloques de salida para cada ruta representada en el flujo de trabajo, y cada bloque de salida te permite determinar si se debe permitir que el contacto vuelva al flujo de trabajo si coincide de nuevo con los criterios de activación del bloque de salida.
Disparadores comportamentales
Los disparadores comportamentales te permiten crear flujos de automatización avanzados basados en el comportamiento de tus contactos: apertura de un email o clic en un enlace. Estos dos eventos están disponibles en los bloques Inicio y Evento del creador de automatizaciones.
Filtros disponibles
Puedes aplicar cuatro tipos de filtros, usar uno o combinarlos.
👉 Filtrar por campañas
Espera un evento (OPEN/CLICK) en emails de campañas específicas. Puedes seleccionar hasta 10 campañas por filtro de evento, combinando cualquiera de los siguientes tipos:
-
Campañas de marketing (Newsletters) – Enviadas desde la app o vía
/v3/REST/campaigndraft. - Campañas transaccionales – Mensajes enviados mediante Send API v3.1 usando un nombre CustomCampaign (las estadísticas se agregan con ese nombre).
- Campañas de workflow – Campañas emitidas desde bloques de Enviar email en automatización (del flujo actual u otros flujos publicados).
- Campañas personalizadas – Nombres de campañas transaccionales futuras; añádelos ahora como texto libre.
👉 Filtrar por etiquetas
Las etiquetas son cadenas ASCII personalizadas (máx. 64 caracteres) sin espacios ni caracteres especiales (salvo el guion bajo _); la etiqueta no puede ser solo _. Puedes añadir hasta 10 etiquetas por filtro de evento.
- OPEN — Espera aperturas en emails asociados a etiquetas específicas.
- CLICK — Espera clics en enlaces asociados a etiquetas específicas.
Cómo se aplican las etiquetas de OPEN
-
Editor (UI) – En el editor de emails, ve a Settings > Tags y añade una o varias etiquetas (longitud combinada ≤ 255 caracteres).
-
Send API v3 – Usa la cabecera
Mj-WorkflowTagscon una lista separada por comas (p. ej.,tag1,tag2).
{
"Messages": [
{
"FromEmail": "sender@example.com",
"FromName": "Your Mailjet Pilot",
"Recipients": [{ "Email": "user@example.com", "Name": "Passenger 1" }],
"Mj-WorkflowTags": "tag1,tag2,tag8",
"Subject": "Your email flight plan!",
"Text-Part": "Welcome to Mailjet!",
"HTML-Part": "<h3>Welcome to <a href="https://www.mailjet.com/?mj-workflow-tags=tag4,tag5">Mailjet</a></h3>"
}
]
}
-
Send API v3.1 – Usa la propiedad del mensaje
WorkflowTagscon una lista separada por comas.
{
"SandboxMode": false,
"Messages": [
{
"From": { "Email": "sender@example.com", "Name": "Your Mailjet Pilot" },
"Sender": { "Email": "sender@example.com", "Name": "Your Mailjet Co-pilot" },
"To": [{ "Email": "user@example.com", "Name": "Passenger 1" }],
"WorkflowTags": "tag1,tag2",
"Subject": "Your email flight plan!",
"TextPart": "Welcome to Mailjet!",
"HTMLPart": "<h3>Welcome to <a href="https://www.mailjet.com/?mj-workflow-tags=tag4,tag5">Mailjet</a></h3>",
"Priority": 2,
"CustomCampaign": "test-send-api-tag-1"
}
]
}
Cómo se aplican las etiquetas de CLICK
-
Editor (UI) – Al añadir un enlace a un texto o botón, define las etiquetas en el modal del enlace (longitud combinada ≤ 255 caracteres).
-
HTML personalizado vía APIs (v3 o v3.1) – añade tú mismo las etiquetas a cada enlace usando un parámetro de consulta:
mj-workflow-tags=tag1,tag2
mj-workflow-tags durante la redirección, por lo que los destinatarios no lo verán en la URL final.👉 Filtrar por remitentes
Espera un OPEN/CLICK en emails enviados desde direcciones de remitente específicas. Puedes elegir hasta 10 remitentes por filtro de evento (de cualquier remitente de tu clave API).
Combinar filtros
Puedes utilizar un solo filtro (Campañas, Etiquetas o Remitentes) o combinar varios.
- Cuando eliges varios elementos dentro del mismo tipo de filtro (p. ej., varias campañas), estás diciendo «cualquiera de estos vale». (Es un OR.)
- Cuando combinas distintos tipos de filtro (p. ej., Campañas y Etiquetas), estás diciendo «todos los tipos elegidos deben coincidir al mismo tiempo». (Es un AND.)
🔎Ejemplo (evento CLICK):
Eliges las campañas A o B, y las etiquetas X o Y.
El flujo solo se activa cuando alguien hace clic en un enlace que:
- está en la campaña A o la campaña B
Y
- ese enlace tiene la etiqueta X o la etiqueta Y.
Notas (Disparadores comportamentales)
- Se requiere al menos un filtro.
- Máximos por filtro: 10 campañas, 10 etiquetas, 10 remitentes.
-
Formato de etiquetas: solo ASCII; ≤ 64 caracteres cada una; sin espacios; solo se permite
_como carácter especial; la etiqueta no puede ser solo_. - Límite total de longitud en el editor: longitud combinada de todas las etiquetas ≤ 255 caracteres.
- Seguimiento requerido: los disparadores OPEN y CLICK necesitan tener habilitado el seguimiento de aperturas/clics en tu cuenta y emails; de lo contrario, los eventos no se activarán.
- Enlaces del sistema excluidos (CLICK): los enlaces de baja, salida del workflow y otros enlaces del sistema no se consideran para el filtro de campañas.
-
Limpieza de URL:
mj-workflow-tagsse elimina durante la redirección (con el seguimiento de clics activado), por lo que permanece invisible para los destinatarios.
Eventos externos (Webhooks)
Los eventos externos te permiten activar o continuar un flujo de automatización en función de acciones que ocurren fuera de Mailjet, como:
una compra completada
una prueba iniciada
una suscripción renovada
recordatorio de carrito abandonado
A diferencia de los webhooks de la Event API de Mailjet (donde Mailjet envía eventos de email a tu servidor), esta función es lo contrario: tu sistema envía un evento a Mailjet para mover a un contacto a través de un flujo.
Conceptos clave
Calificador del webhook: El “nombre del evento” que eliges en el builder (por ejemplo
purchase_completed). Tu llamada a la API debe enviar el mismo calificador para que Mailjet pueda asociarlo con el bloque Inicio/Evento.Coincidencia del contacto: El evento externo está vinculado a un contacto específico (normalmente por dirección de email). Si el calificador y el contacto no coinciden con lo que el bloque está esperando, no ocurre nada.
👉 Cómo funciona en el bloque Inicio
Selecciona El contacto activa un evento externo
Añade uno o más calificadores de webhook (estos son los eventos externos que pueden iniciar el flujo).
(Opcional) Añade un segmento/filtro personalizado para restringir quién puede entrar.
Implementa la llamada a la API en tu sistema usando el fragmento de código mostrado en el builder.
👉 Cómo funciona en el bloque Evento
Usa el bloque Evento cuando un contacto ya está dentro de un flujo, y quieres esperar una acción externa:
Añade un bloque Evento.
Selecciona Evento externo (Webhook) como el tipo de evento.
Elige el/los calificador(es) de webhook que el flujo debe escuchar.
(Opcional) Añade un segmento/filtro personalizado para restringir quién puede entrar.
Configura el temporizador de respaldo: esto garantiza que un contacto nunca quede atascado indefinidamente en el flujo, en caso de que el evento nunca ocurra.
Ejemplo de caso de uso: Enviar un email → esperar purchase_completed hasta 3 días → si sí, enviar “Gracias”; si no, enviar un recordatorio.
Activar el evento externo (llamada a la API)
Cuando la acción externa ocurra en tu sistema, envía una solicitud POST al endpoint external-event de Mailjet usando la misma clave API que el flujo.
curl -X POST "https://api.mailjet.com/V3/REST/workflow2/event" -H "Content-Type: application/json"
-d '{ "Tag": "$tag_Name", "contactMail": "$Email_Of_Existing_Contact" }'
-u "$MJ_APIKEY_PUBLIC:$MJ_APIKEY_PRIVATE"
En el cuerpo de la solicitud:
envía el calificador de webhook seleccionado (nombre del evento)
envía el identificador del contacto (normalmente el email del contacto)
Buenas prácticas
Mantén los calificadores consistentes y descriptivos (p. ej.,
trial_started,plan_upgraded,invoice_paid).Usa una convención de nombres controlada (minúsculas + guiones bajos).
Configura siempre un temporizador de respaldo en los bloques Evento para evitar contactos “atascados”.
Registra la llamada a la API saliente y la respuesta de nuestro servidor en tu sistema (código de estado + payload) para facilitar la resolución de problemas.
Lista de verificación de troubleshooting
Si el flujo no inicia (o el contacto no avanza más allá de un bloque Evento):
Confirma que el calificador en la llamada a la API coincide exactamente con el calificador seleccionado en el bloque.
Confirma que estás usando la clave API correcta (la que pertenece al flujo).
Confirma que el contacto existe en tu audiencia de Mailjet y que el identificador coincide (p. ej., la misma dirección de email).
Si esto es un bloque Evento, confirma que el contacto ya llegó a ese bloque (y que no ha salido del flujo).
Respuestas de la API y errores comunes
👉 404 — El contacto no existe
Lo que verás
HTTP/2 404
content-type: application/json; charset=utf-8
{"Code":"","Message":"The requested resource does not exist","Status":404,"Details":null}
Significado
Mailjet no pudo encontrar el contacto referenciado en tu solicitud (por ejemplo, el email del contacto no está presente en los contactos de tu clave API).
Cómo solucionarlo
Confirma que el contacto existe en tu audiencia de Mailjet antes de enviar el evento.
Verifica que estás usando la cuenta / clave API correcta (donde está almacenado el contacto).
Revisa cuidadosamente el valor enviado en
contactMail(errores tipográficos, espacios extra, dominio incorrecto).
👉 204 — Mailjet recibió correctamente tu solicitud
Una respuesta 204 significa que Mailjet recibió correctamente tu solicitud, pero no devuelve un cuerpo de respuesta. Un 204 no indica de forma fiable si se activó una acción del flujo.
Lo que verás
HTTP/2 204
Significado
A) Solicitud recibida y se activó una acción del flujo
Esto ocurre cuando el evento coincide con todo lo que el flujo espera:
el contacto existe y es identificable mediante
contactMailel calificador del webhook (
Tag) coincide con un calificador seleccionado en el bloque Inicio o Eventoel contacto cumple cualquier filtro adicional del bloque Inicio/Evento (pertenencia a segmento, condiciones, etc.)
Qué hacer
Revisa el avance del contacto en la UI de Automatización (p. ej., el contacto avanzó más allá del bloque Inicio/Evento o entró en el siguiente paso).
Si el siguiente paso del flujo envía un email, confirma que el mensaje aparece en el historial/actividad del contacto.
B) Solicitud recibida, pero no se activó ninguna acción del flujo
Un 204 también puede ocurrir cuando la solicitud es válida pero no coincide con las condiciones de la automatización, por ejemplo:
el calificador (
Tag) no coincide con los calificadores seleccionados en el bloqueel contacto no coincide con los filtros del flujo (segmento / condiciones)
el contacto no es elegible para entrar/reentrar en el flujo debido a la configuración del flujo (por ejemplo, “Los contactos no pueden reentrar”)
el contacto no está actualmente esperando en el bloque Evento específico que querías satisfacer
Qué hacer
Verifica que la ortografía/mayúsculas coincida exactamente con lo configurado en el builder.
Confirma que el contacto cumple el segmento/los filtros usados en el bloque Inicio/Evento.
Confirma las reglas de entrada (reentrada) del flujo y dónde está actualmente el contacto dentro del flujo.
Recomendación: trata 204 como “aceptado” y verifica el resultado en la UI
Como 204 puede corresponder a ambos resultados anteriores, trátalo como solicitud aceptada y confirma el resultado revisando:
la posición/progreso del contacto en el flujo
Verificar el resultado de un 204 vía API (endpoint Messages)
Como 204 No Content solo confirma que la solicitud fue aceptada (y no incluye un cuerpo de respuesta), puedes validar si el flujo realmente envió un email consultando el recurso Messages de Mailjet para ese contacto dentro de una ventana de tiempo definida. (Para más detalles, consulta nuestra documentación para desarrolladores aquí.)
1) Consultar mensajes enviados a un contacto específico
Usa el ContactID del contacto y un timestamp de inicio:
GET https://api.mailjet.com/v3/REST/message?Contact=$ContactID&FromTS=2026-01-19T00:00:00
Cómo interpretar el resultado
Mensajes devueltos (Count > 0 / el array Data contiene registros): el flujo activó el envío de un email para ese contacto dentro del periodo solicitado.
No se devuelven mensajes (Count = 0 / Data vacío): o no se envió ningún email en ese rango de tiempo, o necesitas ampliar la ventana (o verificar que estás usando el ContactID/cuenta correctos).
Buenas prácticas
Usa una ventana
FromTSsuficientemente amplia al probar (por ejemplo, empieza 15–60 minutos antes de tu llamada de prueba).Usa una zona horaria consistente en tus logs y timestamps (UTC recomendado).
2) Si no tienes el ContactID
Si tu sistema solo dispone de la dirección de email, recupera primero el ContactID (vía los recursos Contacts) y luego llama al endpoint Messages con el filtro Contact. Encuentra más información aquí.
3) Qué confirma esto (y qué no)
Esta comprobación confirma que existe un objeto de mensaje para ese contacto en el rango de tiempo. No prueba, por sí sola, qué bloque lo activó; así que al hacer troubleshooting, combínalo con:
la progresión en la UI del flujo (posición del contacto en el flujo), y/o
los logs de tu sistema (timestamp + calificador/tag enviado + request GUID).
👉 400 — Tag no válido (caracteres no compatibles, p. ej., usar “-”)
Lo que verás
HTTP/2 400
content-type: application/json; charset=utf-8
{"Code":"MJ-0001","Message":"invalid Tag: should contain only alphanumeric ASCII characters and underscores","Status":400,"Details":null}
Significado
El calificador del webhook (Tag) contiene caracteres no válidos. Los tags deben usar solo caracteres ASCII alfanuméricos y guiones bajos (por ejemplo: purchase_completed). No se permiten guiones (-).
Cómo solucionarlo
-
Sustituye los guiones por guiones bajos:
purchase-completed→purchase_completed
Estandariza una convención de nombres para los calificadores en tus sistemas (recomendado: minúsculas + guiones bajos).
👉 400 — Estructura de payload no válida (intento de enviar Tag como un array)
Lo que verás
HTTP/2 400
content-type: application/json; charset=utf-8
{"Code":"MJ-0001","Message":"error casting payload into associated model","Status":400,"Details":null}
Significado
El cuerpo de la solicitud no coincide con el esquema esperado. Tag debe ser una cadena única, no un array.
Cómo solucionarlo
Envía un calificador por solicitud (un valor
Tag).Si necesitas activar varios calificadores, envía varias llamadas a la API — una por calificador.
👉 400 — ContactMail no válido (formato de email no válido)
Lo que verás
HTTP/2 400
content-type: application/json; charset=utf-8
{"Code":"MJ-0001","Message":"invalid ContactMail: mail: missing '@' or angle-addr","Status":400,"Details":null}
SignificadocontactMail no tiene un formato de email válido (por ejemplo, falta @).
Cómo solucionarlo
Valida las direcciones de email en tu sistema antes de llamar al endpoint.
-
Asegúrate de enviar una dirección de email simple (sin formato de nombre para mostrar), por ejemplo:
Válido:
user@example.comNo válido:
John Doe <user@example.com>
Guardar y Publicar Flujos de Trabajo
- Los flujos de trabajo se guardan automáticamente y la última hora guardada se anotará en la cabecera del flujo de trabajo.
- Puedes guardar manualmente un flujo de trabajo, o seleccionar "Guardar y publicar".
- Una vez publicado un flujo de trabajo, puedes seguir editándolo seleccionando la opción de borrador.
Cuando lo tengas todo listo para publicar y hayas seleccionado la opción, tendrás que elegir si quieres aceptar solo los eventos futuros o incluir también los contactos existentes comparándolos con los criterios del bloque de inicio.
Una vez publicado el flujo de trabajo, verás las estadísticas básicas de los contactos que han entrado, están actualmente en el flujo de trabajo y han salido de él. Además, si pasas el ratón por encima de la miniatura de cualquier bloque de acción de email del flujo de trabajo, tendrás una vista previa de las estadísticas de campaña de ese bloque.
Crear un flujo de trabajo a partir de una plantilla
Para facilitar aún más el inicio con las automatizaciones, Mailjet ofrece ahora una selección de plantillas de flujos de trabajo predefinidas para casos de uso comunes.
En lugar de crear tu flujo de trabajo desde cero, puedes elegir una plantilla ya preparada y personalizarla según tus necesidades. Esto ahorra tiempo y te asegura seguir las buenas prácticas de automatización de correos electrónicos.
Cómo usar una plantilla:
- Accede a la sección Automatizaciones de tu cuenta de Mailjet.
- Haz clic en Crear desde una plantilla en la esquina superior derecha.
- Explora las plantillas disponibles y elige la que mejor se adapte a tu objetivo.
- Haz clic en Comenzar a crear para personalizar el flujo de trabajo.
Plantillas disponibles:
- Serie de bienvenida – Da la bienvenida a nuevos usuarios y presenta tu marca.
- Secuencia de incorporación (Onboarding) – Acompaña a los usuarios en sus primeros pasos.
- Campaña de reactivación – Recupera contactos inactivos.
- Confirmación de actualización de perfil – Valida los cambios importantes en los datos del contacto.
- Emails de aniversario de suscripción – Celebra los hitos de tus usuarios.
- Nurturing de leads – Educa a tus prospectos durante su recorrido de compra.
También hay otras plantillas disponibles: Celebraciones de hitos, Solicitudes de comentarios, Invitaciones a eventos, Inscripción a programas de fidelización, Campañas de recuperación, y más.
También puedes elegir la opción Lienzo en blanco para crear un flujo de trabajo totalmente personalizado.
Ejemplos de flujo de trabajo
Flujo de aniversario (por ejemplo, cumpleaños)
Con el generador de automatizaciones de Mailjet, puedes crear fácilmente flujos de trabajo que se activen en fechas recurrentes, ideales para cumpleaños, aniversarios de suscripción o recordatorios de renovación.
A continuación, te mostramos un ejemplo paso a paso para configurar un flujo de correo electrónico de cumpleaños:
Estructura del flujo de trabajo
El flujo consta de tres pasos principales:
- Disparador: cuando se actualiza la fecha de cumpleaños del contacto.
- Temporizador: esperar hasta la próxima ocurrencia anual del cumpleaños.
- Acción: enviar un correo electrónico de cumpleaños.
1. Definir el disparador (actualización de propiedad del contacto)
Comienza creando un nuevo flujo de trabajo y selecciona el disparador "Actualización de propiedad del contacto".
- Establece el filtro de propiedad en cumpleaños (propiedad de tipo fecha y hora).
- Aplica un segmento: añade la condición "Está en la lista" y selecciona la lista de contactos que deseas utilizar (por ejemplo: MyFirstTest).
2. Añadir un temporizador (esperar hasta la siguiente fecha)
Añade un bloque Temporizador después del disparador.
- Selecciona la propiedad cumpleaños.
- Configúralo en "Activar en la próxima ocurrencia anual".
- Opcional: puedes especificar una hora del día, días de la semana o aplicar un retraso si es necesario.
3. Configurar el correo (Enviar correo)
Agrega un bloque Enviar correo después del temporizador.
- Crea tu plantilla de cumpleaños.
- Ejemplo de asunto: “🎂 ¡Feliz cumpleaños de parte de todo el equipo!”
4. Activar la repetición anual
Conecta el final del flujo de trabajo de nuevo al temporizador para que se repita cada año en el cumpleaños del contacto.
📝 Consejos
- Realiza pruebas con contactos ficticios para verificar el flujo.
- Puedes reutilizar esta configuración para otros eventos recurrentes como aniversarios, recordatorios de renovación o hitos de fidelidad.
Estadísticas de la automatización
Una vez que una automatización está publicada y los contactos empiezan a avanzar por el flujo, tienes varias formas de supervisar el rendimiento del flujo de trabajo:
- Contadores generales del flujo de trabajo (arriba a la derecha del editor)
- Estadísticas de emails enviados (aparecen cuando seleccionas un bloque Enviar email)
- Estadísticas del flujo de trabajo a nivel de bloque (se muestran directamente en los bloques del flujo de trabajo en la vista publicada)
Contadores generales del flujo de trabajo
Los contadores generales del flujo de trabajo, situados en la esquina superior derecha, resumen el estado general de los contactos en tu automatización:
- Entraron — Contactos únicos que iniciaron el flujo de trabajo.
- Activos — Contactos que siguen avanzando por el flujo de trabajo (por ejemplo, esperando un retraso o una condición).
- Salieron — Contactos que completaron una ruta o llegaron a un bloque de salida.
- Salieron antes de tiempo — Contactos que abandonaron el flujo de trabajo antes de completarlo.
- Pueden volver a entrar — Contactos autorizados a entrar de nuevo en el flujo de trabajo, según tu configuración de reentrada.
Estadísticas de emails enviados
Selecciona un paso Enviar email para ver los KPI de ese mensaje:
- Entregado — Aceptado por los servidores de los destinatarios.
- Abierto — Aperturas registradas. (Puede estar inflado por funciones de privacidad como Apple Mail Privacy Protection.)
- Clicado — Al menos un clic en un enlace.
- Dado de baja — Bajas desde este email.
- Bloqueado — Suprimido debido a hard bounces, quejas o bajas anteriores.
- Marcado como spam — Quejas por spam.
- Hard bounce — Fallos permanentes, como una dirección de email no válida.
- Soft bounce — Problemas temporales, como una bandeja de entrada llena o límites de envío.
- Reintentando — Diferido; Mailjet intentará volver a entregar el email.
Estadísticas del flujo de trabajo a nivel de bloque
En la vista publicada de una automatización, también puedes ver estadísticas detalladas directamente en cada bloque del flujo de trabajo.
Estas estadísticas a nivel de bloque te ayudan a entender cómo se mueven los contactos por el flujo de trabajo y con qué frecuencia se utiliza cada paso.
Cómo se muestran las estadísticas
Puedes cambiar entre las estadísticas disponibles a nivel de bloque desde el panel de estadísticas del flujo de trabajo, en la esquina superior derecha del editor.
Cuando seleccionas una de estas vistas, la métrica correspondiente aparece directamente en cada bloque del flujo de trabajo.
Para cada bloque, verás:
- la estadística seleccionada
- un icono y un color correspondientes
- un contador mostrado en el bloque
Al pasar el cursor sobre la estadística mostrada en un bloque, aparece una descripción emergente con todas las métricas disponibles para ese bloque.
Contactos actualmente en el bloque
Esta vista muestra cuántos contactos individuales están actualmente en un bloque.
Es especialmente útil para bloques en los que los contactos pueden permanecer durante un tiempo, como:
- Inicio
- Evento
- Temporizador
- Salida
Usa esta vista para ver dónde están esperando o avanzando actualmente los contactos dentro del flujo de trabajo.
Contactos que llegaron al bloque
Esta vista muestra cuántos contactos individuales han llegado a un bloque al menos una vez.
Incluye tanto:
- contactos que están actualmente en ese bloque
- contactos que pasaron por él anteriormente
Usa esta métrica para entender cuántos contactos únicos han pasado por cada paso de la automatización.
Número de veces que se llegó al bloque
Esta vista muestra el número total de veces que se llegó a un bloque.
Este número puede ser mayor que el número de contactos individuales, porque un mismo contacto puede llegar al mismo bloque más de una vez, por ejemplo cuando:
- el flujo de trabajo permite la reentrada
- un contacto vuelve a recorrer el flujo de trabajo
- diferentes rutas llevan al mismo contacto de vuelta al mismo paso
Esta métrica es útil para medir:
- cuántas veces se ejecutó un bloque de acción
- qué rutas se utilizan con más frecuencia
📝Consejos
- Las estadísticas aparecen después de que el primer contacto entra en el flujo de trabajo y pueden tardar un poco en actualizarse.
- Si tu flujo envía varios emails, revisa las estadísticas de cada bloque Enviar email.
- Las estadísticas del flujo de trabajo a nivel de bloque solo están disponibles en la vista publicada de un flujo de automatización.
Enlaces de baja en los correos electrónicos de automatización
Los correos electrónicos enviados desde un flujo de automatización deben incluir al menos una opción de baja generada por Mailjet. Puede ser:
- un enlace de salida del flujo de trabajo («dejar de recibir correos electrónicos de esta serie»), o
- un enlace de baja global («darse de baja de todos los correos electrónicos de marketing»).
Puede sustituir uno de estos enlaces generados por Mailjet por su propia URL, pero no ambos.
Si su correo electrónico no contiene ningún enlace de salida del flujo de trabajo o de baja generado por Mailjet, Mailjet añade automáticamente un pie de página de baja al mensaje. Este pie de página contiene tanto un enlace de salida del flujo de trabajo como un enlace de baja global.
Enlaces obligatorios para las plantillas de automatización
Al crear plantillas de automatización, debe incluirse al menos una de las siguientes variables:
-
[[WORKFLOW_EXIT_EN]]– Permite al destinatario salir del flujo de trabajo. -
[[UNSUB_ALL_LINK_EN]]– Permite al destinatario salir del flujo de trabajo y darse de baja de todos los correos electrónicos de marketing.
Gestionar un flujo de trabajo existente
Para gestionar un flujo de trabajo existente, ve a Mis flujos de trabajo automatizados y haz clic en el icono de engranaje de la derecha.
Desde allí, puedes elegir entre las siguientes opciones:
Duplicar – Crea una copia del flujo de trabajo seleccionado. Esto resulta útil cuando quieres reutilizar una configuración existente en lugar de crear un nuevo flujo de trabajo desde cero.
Bloquear – Bloquea el flujo de trabajo para evitar que nuevos contactos entren en él, mientras permite que los contactos que ya están en el flujo continúen y lo finalicen.
Detener – Detiene el flujo de trabajo. Usa esta opción si ya no quieres que la automatización siga procesando contactos o eventos.
Eliminar – Elimina permanentemente el flujo de trabajo de tu cuenta.