Saltar al contenido
Docs

Guía práctica

Crea un endpoint de webhook, elige sus eventos, añade filtros de payload, envía un evento de prueba, activa o desactiva el webhook y rota su secreto.

Actualizado el 1 oct 2026

En esta guía crearás un webhook, lo limitarás a los eventos que necesitas y comprobarás que tu endpoint recibe peticiones firmadas. Puedes hacerlo todo en el panel o con la API de webhooks.

Antes de empezar

  • Una URL pública que acepte peticiones POST. Se recomienda encarecidamente usar HTTPS. Las URL en localhost o en rangos de IP privadas se rechazan; para el desarrollo local, usa un túnel como ngrok o Cloudflare Tunnel.
  • Un endpoint que conserve el cuerpo en bruto de la petición para poder verificar la firma.
  • Para la API, una clave con Full Access.
  • Margen para un webhook más. Pay as you go incluye 3 endpoints; Pro, 10, y Business y Custom, 100.

Crear el webhook

  1. Abre Webhooks. Ve a Email APIWebhooks y selecciona Add webhook.

  2. Introduce un nombre y una URL. El nombre debe ser único en el espacio de trabajo, por ejemplo Production events. La URL es tu endpoint, por ejemplo https://acme.com/webhooks/emailit. Selecciona Create.

  3. Copia el secreto. El cuadro de diálogo muestra el secreto del webhook, que empieza por whsec_, junto con el aviso «You can see the webhook secret only once. Store it safely». Cópialo en el entorno de tu aplicación, por ejemplo como EMAILIT_WEBHOOK_SECRET, y selecciona Done.

Un webhook creado en el panel está suscrito a todos los tipos de eventos. Se abre la pestaña Settings del webhook para que puedas limitarlo.

Elegir los eventos

Un webhook recibe todos los tipos de eventos o solo los tipos que selecciones.

En la pestaña Settings del webhook, desactiva All events y selecciona los tipos en la tarjeta Events. Los eventos se agrupan por recurso (Emails, Domains, Audiences, Subscribers, Contacts, Templates, Suppressions, Email Verifications, Email Verification Lists), y cada grupo tiene una casilla Select all. Selecciona Save.

El selector no muestra todos los tipos que envía Emailit. email.canceled, email.held, email.unsubscribed, email.resubscribed, subscriber.resubscribed y los eventos campaign.* llegan a los webhooks que tienen All events activado, o puedes añadirlos a la lista con la API. El grupo Deprecated contiene nombres de eventos antiguos que ya no se envían. Consulta Tipos de eventos.

Filtrar eventos por payload

Pay as you goProBusinessCustom

Un filtro de payload entrega un evento solo cuando sus datos cumplen tus reglas. Los filtros se aplican además de la selección de eventos: un evento tiene que estar suscrito y cumplir el filtro.

Úsalo para repartir el tráfico entre endpoints, por ejemplo un webhook por línea de producto, o para descartar eventos que, de lo contrario, ignorarías en el código.

  • Modo de coincidencia: All rules match (all) o Any rule matches (any).
  • Reglas: hasta 25. Cada regla tiene un campo, un operador y un valor.
  • Campo: una ruta con puntos dentro del data.object del evento, por ejemplo to, status, meta.plan o, en los eventos de clic, link.url. El prefijo payload. es opcional, así que payload.from y from son equivalentes.
  • Las comparaciones distinguen entre mayúsculas y minúsculas y comparan los valores como texto, salvo greater_than y less_than, que comparan números.
Operador Coincide cuando el campo
equals / not_equals Es / no es exactamente el valor.
contains / not_contains Contiene / no contiene el valor.
starts_with / ends_with Empieza / termina por el valor.
greater_than / less_than Es un número mayor / menor que el valor.
is_set / is_not_set Tiene un valor no vacío / falta o está vacío. No necesita valor.
in / not_in Es igual / no es igual a uno de los valores de un array. Envía el array con la API, como en el ejemplo de abajo.

En la pestaña Settings del webhook, busca la tarjeta Filter. Elige el modo de coincidencia, añade reglas con un campo, un operador y un valor, y selecciona Save. Deja las reglas vacías para entregar todos los eventos suscritos. En Pay as you go, la tarjeta está bloqueada y muestra Upgrade.

Más ejemplos:

Objetivo Regla
Solo el correo recibido en una dirección to equals support@inbound.acme.com
Solo un dominio remitente from ends_with @billing.acme.com
Solo los emails que etiquetaste con metadatos meta.source equals checkout
Solo los clics en tu página de precios link.url starts_with https://acme.com/pricing
Solo los emails que llevan un ID de cliente meta.customer_id is_set

Si un espacio de trabajo pasa a Pay as you go, los filtros existentes se conservan, pero se ignoran, y se entregan todos los eventos suscritos.

Enviar un evento de prueba

Una prueba envía de inmediato un evento de ejemplo a tu URL, firmado con el secreto actual del webhook. Se ignoran los eventos suscritos y los filtros, la petición no se reintenta y no aparece en la pestaña Requests. Cada webhook permite 5 pruebas por minuto.

En la página del webhook, abre el menú de acciones (…) y selecciona Send test. Elige un tipo de evento y selecciona Send test. El cuadro de diálogo muestra «Your endpoint returned 200» (o el estado que haya devuelto tu endpoint) y el cuerpo de la respuesta. «Could not reach the endpoint» significa que la petición no obtuvo una respuesta HTTP, por ejemplo por un error de DNS, un tiempo de espera agotado o una redirección.

Los eventos de prueba usan datos de ejemplo, con un event_id que empieza por evt_test_, y su forma puede diferir ligeramente de la de los eventos reales. Desarrolla tu controlador a partir de la referencia de eventos y confírmalo con un envío real.

Activar o desactivar un webhook

Desactiva un webhook para detener las entregas sin perder su configuración, por ejemplo durante un mantenimiento.

  • Panel: abre el menú de acciones y selecciona Disable webhook o Enable webhook. La página del webhook muestra el estado Enabled o Disabled.
  • API: llama a Actualizar un webhook con {"enabled": false} o {"enabled": true}.

Mientras un webhook está desactivado, no se ponen en cola eventos nuevos para él y las peticiones que ya esperaban un reintento quedan en pausa. Los eventos que ocurren mientras está desactivado no se entregan más tarde; si los necesitas, léelos con la API de eventos. Emailit también desactiva los webhooks automáticamente tras 3 días de fallos; consulta Reintentos y fallos.

Al eliminar un webhook se descartan todos sus eventos pendientes.

Rotar el secreto

Rota el secreto si puede haberse filtrado, o como medida de seguridad habitual.

  • Panel: abre el menú de acciones, selecciona Webhook secret y después Reset. El nuevo secreto se muestra una sola vez.
  • API: llama a Rotar el secreto de firma. La respuesta contiene el nuevo secret. Obtener un webhook también devuelve el secreto actual.

El secreto anterior deja de funcionar de inmediato, y todas las peticiones a partir de ese momento, incluidos los reintentos de eventos anteriores, se firman con el nuevo. Para rotarlo sin rechazar peticiones, haz que tu endpoint acepte cualquiera de los dos secretos durante unos minutos, restablece el secreto, despliega el nuevo valor y después elimina el anterior.

Comprobar que funciona

  1. Envía un evento de prueba y confirma que tu endpoint devuelve 2xx.
  2. Envía un email real o dispara el evento al que te suscribiste.
  3. En la pestaña Requests del webhook, la petición muestra Delivered. La hora de Last used del webhook se actualiza.

¿Te ha resultado útil esta página?

Gracias por tu opinión.

Gracias. Leemos todos los mensajes.