# Disparadores de las automatizaciones

> Referencia de todos los disparadores de las automatizaciones por contexto, con sus opciones y filtros, qué los activa y las claves que se usan en la API.

Un disparador determina cuándo una automatización inicia una ejecución. Esta página lista todos los disparadores disponibles en cada [contexto](/es/docs/automations/#contexts), qué los activa, sus opciones y la clave que usas para cada uno en la API.

## Cómo funcionan los disparadores

- **Un disparador por automatización en el panel.** Selecciona el disparador en el lienzo y cámbialo con **Trigger type**. Con la API, las automatizaciones de tipo Contact y Email pueden tener varios disparadores, siempre que todos se conecten al mismo primer paso. Las de tipo Event tienen exactamente uno.
- **La automatización tiene que estar en marcha.** Los disparadores de las automatizaciones en borrador, en pausa o detenidas se ignoran. Los eventos anteriores al inicio de una automatización no inician ejecuciones más tarde.
- **Las ejecuciones se inician en cuestión de segundos.** Emailit recoge los eventos nuevos cada pocos segundos.

### Filtros

Contact updated y todos los disparadores de email admiten un filtro opcional, en **Filter events (optional)**. Cada regla compara un campo del evento con un valor:

- **Operadores:** **Equals**, **Not equals**, **Contains**, **Not contains**, **Greater than**, **Less than**, **Is set**, **Is not set**, **In**, **Not in**, **Starts with** y **Ends with**. **Greater than** y **Less than** comparan números. El resto compara texto y distingue entre mayúsculas y minúsculas.
- **Modo de coincidencia:** **All rules match** o **Any rule matches**.

Con la API, un filtro es `{ "match": "all", "rules": [{ "field": "...", "operator": "equals", "value": "..." }] }` en el `config.filter` del disparador, con `match` en `all` o `any`. Los campos son rutas dentro del objeto del evento, por ejemplo `to` o `link.url`.

## Disparadores de contacto

| Disparador | Clave en la API | Opciones | Inicia una ejecución cuando |
| --- | --- | --- | --- |
| **Added to audience** | `contact.added_to_audience` | **Audience**. Déjalo vacío para cualquier lista. | Un contacto se une a la lista, o se vuelve a añadir después de haberse dado de baja. |
| **Removed from audience** | `contact.removed_from_audience` | **Audience**. Déjalo vacío para cualquier lista. | Se elimina la pertenencia de un contacto a la lista. |
| **Contact updated** | `contact.updated` | Filtro opcional | Cambian el email, los nombres, los campos personalizados o el estado de marketing de un contacto. |
| **Date anniversary** | `contact.date_anniversary` | **Date field** | Una vez al año, en el mes y el día guardados en un campo personalizado de tipo fecha. |

### Added to audience

Se activa cuando alguien se añade a una lista desde el panel (**Add subscriber**, **Add to audience**, **Add contact** con listas), con la API ([Añadir un suscriptor](/es/docs/api-reference/audiences/subscribers/add/) o [Crear un contacto](/es/docs/api-reference/contacts/create/) con `audiences`) o con la acción masiva **Add to audience**. Volver a añadir a alguien que se había dado de baja también lo activa.

No se activa con los contactos añadidos mediante una [importación de archivo](/es/docs/contacts/import-export/), un alta por la [URL de suscripción](/es/docs/audiences/subscribe-url/) o el paso **Add to audience** o **Create contact** de otra automatización, y volver a activar **Subscribed** en un suscriptor existente tampoco cuenta.

### Removed from audience

Se activa cuando se elimina un suscriptor: **Delete** en la página de la lista, **Remove from audience**, [Eliminar un suscriptor](/es/docs/api-reference/audiences/subscribers/delete/) o una actualización del contacto cuya lista `audiences` deja fuera esa lista. Eliminar un contacto lo activa una vez por cada lista en la que estaba el contacto. Darse de baja no lo activa, porque la persona sigue en la lista.

### Contact updated

Se activa cada vez que se actualiza un contacto en el panel o con la API, incluidas las acciones masivas **Unsubscribe** y **Resubscribe**. El filtro puede comprobar los valores actuales de **Email**, **First name**, **Last name**, **Unsubscribed** y los campos personalizados, y sus valores anteriores, que aparecen como **Previous email**, **Previous first name**, etc. Los valores anteriores solo están presentes en los campos que han cambiado.

Por ejemplo, para reaccionar cuando un contacto pasa al plan `pro`, añade dos reglas con **All rules match**: `custom_fields.plan` **Equals** `pro` y **Previous plan** (`previous.custom_fields.plan`) **Not equals** `pro`.

### Date anniversary

Elige un **Date field**, un [campo personalizado](/es/docs/contacts/custom-fields/) de tipo fecha, como un cumpleaños. Una vez al día, Emailit inicia una ejecución para cada contacto cuya fecha tiene el mes y el día de hoy, en UTC. El año no importa, así que un contacto con `1990-04-12` tiene una ejecución cada 12 de abril. Cada automatización gestiona hasta 10.000 contactos al día.

> **Configura el campo de fecha con la API:** En la beta actual, la comprobación diaria lee el ajuste `date_field` del disparador, que el selector **Date field** del panel todavía no configura. Si tu automatización de aniversario no inicia ejecuciones, configúralo con [Actualizar una automatización](/es/docs/api-reference/automations/update/): asigna al disparador `"config": { "date_field": "birthday" }`, con la clave del campo personalizado sin prefijo.

### Disparadores de contacto solo para la API

| Clave en la API | Inicia una ejecución cuando |
| --- | --- |
| `contact.loaded_email` | Un contacto carga un email con seguimiento enviado a su dirección. |
| `contact.clicked_in_email` | Un contacto hace clic en un enlace con seguimiento de un email enviado a su dirección. |
| `contact.on_date` | El campo de fecha de un contacto, definido en `config.date_field`, coincide con la fecha de hoy en UTC. Se activa una sola vez, no cada año. |

La API también acepta `contact.visits_url`, `contact.on_purchase` y `contact.on_event`, pero todavía nada los activa.

## Disparadores de email

Los disparadores de email se activan con los emails de tu espacio de trabajo: todo lo que envías con la API o por SMTP, los emails de campañas y de automatizaciones, y el email entrante en el caso de **Email received**. Cada ejecución corresponde a un email.

| Disparador | Clave en la API | Inicia una ejecución cuando | Campos de filtro |
| --- | --- | --- | --- |
| **Email delivered** | `email.delivered` | El servidor del destinatario ha aceptado el email. | From, To, Subject, Status |
| **Email bounced** | `email.bounced` | El email ha fallado de forma permanente. | From, To, Subject, Status |
| **Email failed** | `email.failed` | No se ha podido enviar el email por un error. | From, To, Subject, Status |
| **Email suppressed** | `email.suppressed` | El email no se ha enviado porque el destinatario está bloqueado. | From, To, Subject, Status |
| **Email complained** | `email.complained` | El destinatario ha marcado el email como spam. | From, To, Subject, Status |
| **Email received** | `email.received` | Ha llegado un email entrante. Consulta [Emails entrantes](/es/docs/inbound/). | From, To, Subject |
| **Email loaded** | `email.loaded` | El destinatario ha cargado un email con seguimiento. | Recipient, Sender, Subject, IP address, User agent |
| **Email clicked** | `email.clicked` | El destinatario ha hecho clic en un enlace con seguimiento. | Recipient, Sender, Subject, Link URL, IP address, User agent |

El editor también muestra **Email accepted**, **Email scheduled**, **Email attempted** y **Email rejected**. Las automatizaciones con estos disparadores todavía no se pueden guardar, así que elige uno de los disparadores anteriores. Con la API también puedes usar `email.canceled`, que se activa cuando se cancela un email programado o en cola.

> **Evita los bucles:** Los emails que envían las automatizaciones también activan los disparadores de email. Una automatización que envía un email cada vez que rebota un email también se ejecutaría con su propio aviso si este rebotara. Añade un filtro, por ejemplo **To** **Not equals** con tu dirección de avisos, para que una automatización no pueda activarse a sí misma.

## Disparadores de evento

Por ahora, las automatizaciones de tipo Event solo se pueden crear con la API.

| Disparador | Clave en la API | Inicia una ejecución cuando |
| --- | --- | --- |
| **Manual trigger** | `system.manual` | Llamas a [Lanzar una ejecución](/es/docs/api-reference/automations/trigger/). |
| Schedule | `system.schedule` | Reservado. Todavía nada lo activa, así que llama al endpoint de disparo desde tu propio programador de tareas, como una tarea cron. |

### Manual trigger

Llama al endpoint de disparo de una automatización en marcha, con un objeto `payload` opcional:

```bash
curl https://api.emailit.com/v2/automations/aut_3Mv8Xq2nKp5Lt/trigger \
  -X POST \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "payload": { "email": "ada@example.com", "plan": "pro" } }'
```

El endpoint devuelve `{ "message": "Automation trigger dispatched." }`, o `422` si la automatización no está en marcha. Los pasos pueden leer el payload como `{{payload.email}}`, `{{payload.plan}}`, etc. Emailit añade `automation_id` al payload.

> **Una llamada llega a todas las automatizaciones manuales:** En la beta actual, una llamada al endpoint de disparo inicia una ejecución en todas las automatizaciones en marcha del espacio de trabajo cuyo disparador es **Manual trigger**, no solo en la de la URL. Si tienes más de una, haz que cada una compruebe primero su propio ID con un paso **Condition** sobre `payload.automation_id`.

`system.manual` también funciona como disparador en las automatizaciones de tipo Contact y Email creadas con la API. Incluye `contact_id` (un ID `con_`) o `email_id` en el payload para ejecutar la automatización para ese contacto o email.

## Datos disponibles para los pasos

Los ajustes de los pasos, como el destinatario de **Send email** o los valores de **Edit contact**, pueden incluir marcadores que se rellenan en cada ejecución:

| Marcador | Contiene |
| --- | --- |
| `{{contact.<field>}}` | El contacto de la ejecución en las automatizaciones de tipo Contact, por ejemplo `{{contact.email}}` o `{{contact.custom_fields.plan}}`. |
| `{{email.<field>}}` | El email de la ejecución en las automatizaciones de tipo Email, por ejemplo `{{email.rcpt_to}}` o `{{email.subject}}`. |
| `{{payload.}}` | El evento que inició la ejecución. En los eventos de estilo webhook, los datos del evento están en `payload.object`, por ejemplo `{{payload.object.to}}`. En los disparadores manuales, es tu `payload`. |
| `{{meta.}}` | Datos adicionales que Emailit guarda sobre la ejecución. |

Las plantillas de email que envía **Send email** usan [Temple](/es/docs/templates/temple/) con los mismos datos. Consulta [Pasos](/es/docs/automations/steps/#send-email).

## Ver también

  - [Pasos](/es/docs/automations/steps/): Lo que puede hacer una ejecución una vez iniciada.
  - [Tipos de eventos de webhook](/es/docs/webhooks/event-types/): Los eventos que hay detrás de los disparadores de contacto y de email.

---
Fuente: https://emailit.com/es/docs/automations/triggers/
