# Condiciones de salida y objetivos

> Saca a los contactos de una automatización en el momento en que compran o salen de una lista, haz saltar las ejecuciones a un objetivo y mueve a los contactos entre automatizaciones.

Normalmente, una ejecución recorre sus pasos hasta el final de su rama. Las condiciones de salida y los objetivos cambian eso en cuanto el contacto hace algo, esté donde esté la ejecución, incluso mientras espera: una **condición de salida** termina la ejecución, y un **objetivo** la hace avanzar hasta el paso del objetivo.

| Quieres | Usa |
| --- | --- |
| Dejar de enviar recordatorios de carrito cuando el contacto compra | Una [condición de salida](#exit-conditions) sobre la compra |
| Detener una secuencia cuando el contacto sale de la lista que la inició | [Salir de la lista](#leave-when-removed-from-the-audience) |
| Saltarte los recordatorios restantes y enviar un agradecimiento | Un [objetivo](#goals) |
| Sacar a los compradores de todas las automatizaciones promocionales | Un paso [Remove from automations](#move-contacts-between-automations) |
| Detener la ejecución de un contacto a mano o desde tu aplicación | [Cancelar la ejecución o quitar al contacto](/es/docs/automations/runs/#cancel-a-run) |

Los pasos **Goal**, así como las condiciones de salida, los objetivos y las esperas sobre [eventos de espacio de trabajo o personalizados](/es/docs/events/), están incluidos en los planes Pro, Business y Custom. En Pay as you go, guardar una automatización que los añade devuelve `403` con `"error": "plan_required"`. Las automatizaciones que ya los tienen los conservan después de bajar de plan.

## Condiciones de salida

Las condiciones de salida están en la pestaña **Settings** de la automatización, en **Exit conditions**. Cuando se cumple una para un contacto, su ejecución en esta automatización se cancela de inmediato: los pasos en espera se descartan y no se ejecuta ningún paso más. El estado de la ejecución pasa a ser **Canceled**, con la nota **Met an exit condition**.

Hay dos tipos:

- **Cuando ocurre algo:** un evento del contacto, que se elige como un [disparador](/es/docs/automations/triggers/#contact-triggers), con sus opciones. Por ejemplo, **Custom event** `purchase` enviado con la [API de eventos](/es/docs/events/send-events/) (los eventos del [script de seguimiento](/es/docs/events/tracking-script/#identify-visitors) no terminan ejecuciones), **Tag added** `customer`, **Contact updated** con **Field that changed** `Purchased`, o **Unsubscribed**. Los eventos personalizados y los pedidos aceptan un filtro opcional, por ejemplo solo los pedidos con un `total` mayor que `50`.
- **Cuando el contacto cumple unas reglas:** reglas sobre el contacto, como en un paso [Condition](/es/docs/automations/steps/#condition-ifelse). Por ejemplo, «has tag `customer`» o «**Purchased** is true». Se comprueban cada vez que cambia el contacto y antes de cada paso, así que un contacto que ya las cumple nunca recibe el siguiente email, aunque el cambio haya llegado un instante antes.

Las condiciones de salida se aplican a las ejecuciones que ya están en curso en cuanto las guardas, siguen funcionando mientras la automatización está en pausa y necesitan una automatización de tipo Contact. Una automatización puede tener hasta 20.

El equipo de Emailit también puede hacer salir a los contactos con **Placed an order** y **Abandoned a cart**, de [Comercio electrónico](/es/docs/commerce/), y con **Removed from segment**, de un [segmento con seguimiento](/es/docs/segments/tracked/), y usar reglas **Segment** y **Purchases** en las condiciones. Están en alfa, como Comercio electrónico y los segmentos. Los contactos que salen de un segmento porque alguien ha editado sus reglas no salen de la automatización.

### Salir cuando se quita al contacto de la lista

En las automatizaciones que inicia **Added to audience**, activa **Leave when removed or unsubscribed from the audience that started the run**. A partir de ese momento, la ejecución de un contacto se cancela cuando se le quita de esa lista, se da de baja de ella o se da de baja de todos los emails de marketing, por ejemplo cuando tu tienda lo quita de una lista «Carritos abandonados» después de una compra. La nota de la ejecución es **Left the audience**. Un paso **Remove from audience** o **Subscribe / unsubscribe** de la propia ejecución no termina esa ejecución.

Las automatizaciones de tipo Contact creadas en el panel tienen esta opción activada. Las creadas con la API la tienen desactivada, salvo que definas `exit_on_audience_removal: true`. Sin ella, una ejecución continúa después de que el contacto salga de la lista; los emails de marketing se siguen omitiendo para los contactos que se han dado de baja.

### Con la API

Define `settings.exit_conditions` cuando [crees](/es/docs/api-reference/automations/create/) o [actualices](/es/docs/api-reference/automations/update/) la automatización. Cada elemento es un selector de evento (la clave del disparador en `event` y sus opciones) o `{ "condition": { "match", "rules" } }`:

```json
{
  "settings": {
    "exit_on_audience_removal": true,
    "exit_conditions": [
      { "event": "contact.on_event", "event_name": "purchase" },
      { "event": "contact.on_event", "event_name": "c:order.completed", "filter": { "match": "all", "rules": [{ "field": "properties.total", "operator": "greater_than", "value": 50 }] } },
      { "event": "contact.tag_added", "tag": "customer" },
      { "condition": { "match": "all", "rules": [{ "field": "custom_fields.purchased", "operator": "is_true" }] } }
    ]
  }
}
```

## Objetivos

Un paso **Goal** marca un punto al que la ejecución debe llegar en cuanto el contacto cumple el objetivo. Cuando el contacto lo cumple, su ejecución salta hasta ahí desde donde esté: los pasos y las esperas intermedios se omiten (aparecen como **skipped** en la ejecución), el objetivo se marca como alcanzado y la ejecución continúa con los pasos que siguen al objetivo. Los objetivos están incluidos en los planes Pro, Business y Custom.

Por ejemplo, una secuencia de prueba envía un consejo cada tres días, con un objetivo «**Tag added** `paid`» cerca del final seguido de un email de agradecimiento. Un contacto que cambia a un plan de pago el día 2 se salta los consejos restantes y recibe el agradecimiento de inmediato.

| Ajuste | Notas |
| --- | --- |
| **Goal is met when** | **Something happens** (un evento del contacto) o **The contact matches a condition** (se comprueba con cada cambio del contacto). |
| **When a contact reaches the goal without meeting it** | **Continue anyway**, **Wait until the goal is met** (hasta 365 días; después, la ejecución termina) o **End the automation for them**. |

Una ejecución alcanza cada objetivo como máximo una vez, y los objetivos dentro de una rama de un [reparto aleatorio](/es/docs/automations/steps/#api-only-steps) no vuelven después al reparto. Como las condiciones de salida, los objetivos siguen funcionando mientras la automatización está en pausa.

Con la API, un objetivo es un paso `goal`: `{ "event": { "event": "contact.tag_added", "tag": "paid" }, "if_not_met": "continue" }` o `{ "condition": { ... } }`.

## Mover contactos entre automatizaciones

- **Start automation** inicia otra automatización para el contacto. Activa **Move the contact** para terminar después la ejecución actual.
- **Remove from automations** cancela las ejecuciones del contacto en las otras automatizaciones que elijas, o en **Every other automation**.

Por ejemplo, cuando tu tienda pone a los compradores la etiqueta `customer` con la API, una automatización «Compradores» que se inicia con esa etiqueta puede sacarlos de todas las automatizaciones promocionales y pasarlos al onboarding:

```json
{
  "steps": [
    { "key": "bought", "type": "trigger", "trigger": "contact.tag_added", "config": { "tag": "customer" } },
    { "key": "leave", "type": "action", "action": "exit_automation", "config": { "all": true } },
    { "key": "onboard", "type": "action", "action": "run_automation", "config": { "automation_id": "aut_3Mv8Xq2nKp5Lt", "exit_current": true } }
  ],
  "connections": [
    { "from": "bought", "to": "leave", "branch": "default" },
    { "from": "leave", "to": "onboard", "branch": "default" }
  ]
}
```

## Ver también

  - [Pasos](/es/docs/automations/steps/): Wait until, Goal, Remove from automations y más.
  - [Ejecuciones y estadísticas](/es/docs/automations/runs/): Mira por qué se canceló una ejecución y cancela ejecuciones.

---
Fuente: https://emailit.com/es/docs/automations/exits-and-goals/
