## Visión general

Una **regla de automatización** ejecuta acciones automáticamente cuando ocurre un evento y se cumplen
las condiciones que definiste. Es la forma más directa de eliminar el trabajo repetitivo: asignar
conversaciones, añadir etiquetas, enviar mensajes, resolver conversaciones, mover negocios del CRM o
notificar a sistemas externos mediante webhook.

Toda regla sigue la estructura **disparador → condiciones → acciones**:

- **Disparador**: el evento que inicia la evaluación (por ejemplo, "conversación creada").
- **Condiciones**: filtros que deben ser verdaderos para que la regla actúe.
- **Acciones**: lo que hace la plataforma cuando el disparador se activa y las condiciones se cumplen.

## Requisitos previos

- Permiso de administrador para acceder al área de Automatización en Configuración.
- Al menos una bandeja de entrada con conversaciones, para que los disparadores tengan qué evaluar.
- Para acciones que dependen de otros módulos (CRM, Catálogo, Tareas, Follow-ups), el módulo
  correspondiente debe estar activo en la cuenta.

## Paso a paso

Si aún no hay reglas, el estado vacío de la página resume el objetivo de la automatización y permite
crear la primera regla sin buscar otra acción en la pantalla.

1. En Configuración, abre el área de **Automatización** y crea una nueva regla.
2. Dale a la regla un **nombre** y una descripción claros.
3. Elige **cómo se ejecuta la regla**. El selector **¿Cuándo debe ejecutarse esta regla?** aparece
   cuando la ejecución diferida está habilitada en la cuenta:
   - **Ejecutar al instante** — "Se ejecuta en el momento en que ocurre un evento, siempre que se
     cumplan las condiciones." Es el comportamiento clásico, con el selector de disparador y la lista
     de condiciones justo debajo.
   - **Ejecutar después de una espera** — "Espera durante un periodo definido y se ejecuta solo si
     todo sigue igual. Si algo cambia, la regla se omite." En este modo, el disparador y las
     condiciones dan paso al bloque **Condición de espera**, detallado en Configuración y opciones.
4. Elige el **disparador** (evento). Los principales son:
   - **Conversación creada**, **Conversación actualizada**, **Conversación resuelta**, **Conversación
     abierta**;
   - **Mensaje creado** (entrante o saliente);
   - **Contacto creado**, **Contacto actualizado**, **Contacto fusionado**, **Contacto eliminado** —
     reglas que actúan directamente sobre la ficha del contacto, sin depender de una conversación;
   - **Pedidos**: pedido registrado, estado del pedido cambiado, pedido pagado, reembolso parcial ajustado, pedido reembolsado, pago revertido y
     negocio con pedidos totalmente pagados (con los módulos de Pagos/Comercio activos);
   - **Pagos**: cobro creado, confirmado, pagado, parcialmente reembolsado, vencido, reembolsado, fallido
     o cancelado. **Confirmado** significa que el cliente completó el pago aunque el gateway pueda
     liberar el saldo al vendedor más tarde; **pagado/recibido** registra esa etapa posterior del
     proveedor. No crees reglas duplicadas con las mismas acciones para ambos eventos;
   - **Contratos**: contrato visualizado, firmante firmó y contrato expirado (con el módulo de
     Contratos activo);
   - **Agenda** — dos niveles, y la diferencia importa:
     - **Reserva creada / reprogramada / cancelada**: el cliente reservó, reprogramó o canceló desde la
       página pública de reservas (es decir, hay una reserva detrás);
     - **Evento de agenda creado / reprogramado / cancelado**: la cita cambió en la agenda — incluso
       cuando un agente la edita, la arrastra o la cancela desde el panel, o desde la pestaña Agendar
       dentro de la conversación.
     Una cita con reserva dispara **ambos** niveles cuando la modificas desde el panel; una cita creada
     directamente en la agenda, sin reserva, dispara solo el nivel de **evento**.
   - eventos de CRM, Catálogo y Tareas cuando esos módulos están activos.
5. Añade **condiciones**. Combina campos (estado, prioridad, bandeja de entrada, etiquetas, idioma del
   navegador, atributos de contacto/conversación, campos del CRM) con operadores como **igual a**,
   **distinto de**, **contiene** o **no contiene**. Los disparadores de contacto y de pedidos exponen
   condiciones específicas: **ciudad**, **tipo de contacto** (visitante, lead o cliente),
   **bloqueado**, **estado del pedido**, **gateway del pedido** y **monto del pedido** — además de los
   **atributos personalizados del contacto**.
6. Define una o más **acciones** (consulta la lista abajo).
7. **Guarda** y activa la regla. Pruébala con una conversación real para confirmar el comportamiento.

## Configuración y opciones

Acciones disponibles (varían según el disparador y los módulos activos):

| Acción | Qué hace |
| --- | --- |
| Asignar agente | Dirige la conversación a un agente específico. |
| Asignar equipo | Dirige la conversación a un equipo. |
| Añadir etiqueta | Marca la conversación con una o más etiquetas. |
| Enviar mensaje | Envía un mensaje al contacto. |
| Enviar correo al equipo | Notifica al equipo por correo. |
| Enviar transcripción por correo | Envía el historial de la conversación por correo. |
| Silenciar conversación | Pone la conversación en silencio. |
| Resolver conversación | Cierra la conversación automáticamente. |
| Enviar adjunto | Adjunta un archivo a la conversación. |
| Disparar webhook | Envía el evento a un endpoint externo. |
| Añadir etiqueta al contacto | Marca el **contacto** (no la conversación) con etiquetas. |
| Quitar etiqueta del contacto | Quita etiquetas de la ficha del contacto. |
| Añadir nota al contacto | Registra una nota interna en la ficha del contacto. |
| Definir atributo del contacto | Escribe un valor en un atributo personalizado del contacto. |
| Lanzar disparo masivo | Inicia un disparo masivo de un flujo publicado del Flow Builder. |

Cuando los módulos están activos, aparecen acciones específicas: mover un negocio de etapa, asignar y
definir valor/prioridad en el **CRM**, añadir un producto a un negocio en el **Catálogo**, crear tareas
e inscribir al contacto en una secuencia de **Follow-ups**.

En los **disparadores de contacto** (creado/actualizado/fusionado) la regla corre sobre el **contacto**
— y ahora ofrece **todo el catálogo anclado al contacto**: además de las acciones de contacto
(etiquetas, nota, atributo), puedes crear un negocio en el **CRM** ya vinculado al contacto, mover
etapa, crear una **tarea** o **cita** ligadas al contacto, enviar **cobros** y **suscripciones**,
inscribir en **follow-ups** y **contratos**, acciones de **engagement** y de **grupo de WhatsApp** (el
participante por defecto es el propio contacto), **disparar un webhook** y lanzar un flujo masivo. Las
acciones que actúan sobre una **conversación** (asignar agente/equipo, resolver, enviar
mensaje/nota/adjunto, SLA, IA/Maestro, plantilla de WhatsApp) siguen no disponibles en estos
disparadores porque no hay conversación — usa **Crear conversación** para encadenar en un disparador de
conversación.

- **Condiciones "Y"**: todas las condiciones deben ser verdaderas para que la regla actúe.
- **Orden**: las acciones se ejecutan en el orden en que aparecen en la regla.
- **Activar/desactivar**: puedes pausar una regla sin eliminarla.

### Acciones por disparador

La lista de acciones está **acotada por el asunto del disparador**: cada disparador ofrece **todas las
acciones que su asunto puede ejecutar realmente** — así armas la regla completa sin combinaciones que
nunca se ejecutarían.

- **Disparadores de conversación y de mensaje** (conversación creada, actualizada, abierta, resuelta y
  mensaje creado) ofrecen el **catálogo completo** de acciones.
- **Disparadores de contacto** (creado/actualizado/fusionado) ofrecen todo el catálogo **anclado al
  contacto**: CRM (crear un negocio ya vinculado al contacto, mover etapa), tareas y citas ligadas al
  contacto, cobros y suscripciones, follow-ups, contratos, engagement, acciones de grupo de WhatsApp
  (participante por defecto = el contacto), webhook y disparo masivo de flujo. Las acciones que actúan
  sobre una **conversación** quedan fuera (no hay conversación) — encadena con **Crear conversación**.
### Suscripciones: qué dispara y qué no

Una suscripción creada en el panel del gateway se adopta aquí y **sí** dispara la regla: para la
plataforma está ocurriendo ahora, ya filtrada por la **fecha de corte** de la conexión. Una suscripción
traída por una **importación de historial** nunca dispara — es pasado, y reprocesarla abriría negocios
y notificaciones sobre ventas antiguas.

La suscripción adoptada puede llegar **sin cliente vinculado**. Las acciones que dependen de una
persona (abrir negocio, enviar mensaje, puntuar) no tienen a quién dirigirse, y un negocio sin
contacto, empresa ni conversación se rechaza en lugar de convertirse en una tarjeta inútil en el
embudo. Para actuar solo cuando haya alguien del otro lado, añade la condición **Contacto vinculado a
la suscripción** con "está presente".

- **Disparador de contacto eliminado**: como la ficha dejó de existir, ofrece solo **webhook** y
  acciones totalmente controladas por parámetros.
- **Disparadores de pedidos** anclan en el **contacto del pedido** — todas las acciones ancladas al
  contacto quedan disponibles.
- **Disparadores de tareas, agenda, grupos de WhatsApp, suscripciones, comercio, contratos, engagement,
  CRM y anuncios** ganaron el catálogo completo que su asunto soporta — incluidas las acciones de
  **conversación** cuando el asunto tiene una conversación vinculada (por ejemplo, una tarea con
  conversación vinculada o un grupo con la conversación del grupo).

Al **crear una regla nueva** (o cambiar el disparador), el selector ya viene con la **primera acción
válida** de ese disparador preseleccionada — nunca más abres una regla nueva y encuentras "Asignar al
Agente · No disponible para este disparador".

Si editas una **regla antigua** que tiene una acción que ya no pertenece al disparador actual, esa
acción sigue visible con la marca **"No disponible para este disparador"**. No se elimina: la regla se
puede seguir guardando y puedes cambiarla por una acción compatible cuando quieras.

### Acciones sin parámetros

Algunas acciones no piden ningún campo extra porque resuelven el contexto por sí solas a partir del
disparador. **Se guardan sin exigir parámetros**, tanto en **Automatizaciones** como en **Macros**:

- **Cancelar**, **pausar**, **reanudar** y **saltar paso** de follow-up;
- **Enviar cobro** y **cancelar suscripción**;
- **Enviar tarjeta de producto**;
- **Pausar campaña de anuncios**, **enviar conversión** y **marcar como lead de anuncio**.

### Cuando una acción no aplica

Si una acción depende de algo que no existe en ese contexto — por ejemplo, una acción de conversación
en un disparador que no tiene conversación vinculada — se **ignora y se registra**, sin romper la
regla: las demás acciones se siguen ejecutando normalmente.

### Variables en las acciones (`{ } Insertar`)

Todo campo de texto que la plataforma resuelve al ejecutar muestra el botón **{ } Insertar** y abre la
lista de variables cuando escribes `{{`. La variable elegida entra **en la posición del cursor** y la
ventana de la regla sigue abierta. Los mismos campos aceptan variables en **Automatizaciones**, **Macros**
y en el **Flow Builder** — en el flujo, esos campos también resuelven `{{ vars.* }}` y `{{ steps.* }}`.

| Acción | Campos que aceptan variables |
| --- | --- |
| Enviar mensaje, Añadir nota privada | Mensaje |
| Enviar un correo al equipo | Mensaje |
| Enviar transcripción por correo | Correos |
| Crear contacto | Nombre, correo, teléfono, identificador, documento fiscal, país fiscal y valores de los atributos personalizados |
| Crear conversación | Primer mensaje |
| Añadir nota al contacto | Nota |
| Definir atributo o campo del contacto / de la empresa | Valor (texto) |
| Definir afiliado del contacto | Código de referido |
| Crear negocio del CRM | Título, descripción, correo y teléfono del contacto, valor, fechas y valores de los atributos personalizados |
| Atributo, estado y mensajes del negocio | Valor del atributo, motivo del cierre, nota, ítem de checklist, mensaje |
| Crear tarea, Comentar tarea | Título, descripción, vencimiento, valores de los atributos personalizados, comentario |
| Crear, cancelar e invitar en una cita | Título, descripción, lugar, inicio, fin, atributos personalizados, motivo, correo del invitado |
| Crear cobro, Crear suscripción | Descripción |
| Registrar pedido | Título, importe, id externo |
| Ventas | Métrica de los puntos, motivo de la transferencia y de la recompensa |
| WhatsApp (grupos y contactos) | Teléfono, nombre del contacto, anuncio de la comunidad |
| Enviar plantilla o Flow de WhatsApp | Variables de la plantilla, encabezado y contenido; botón, cuerpo, encabezado y pie del Flow |
| Preguntar a Maestro | Pregunta |
| Ajustar presupuesto de anuncios | Presupuesto diario |

Campos que **no** aceptan variables, a propósito:

- **Selectores** (agente, equipo, etiqueta, embudo, etapa, bandeja de entrada, conexión): el valor viene
  de la lista.
- **URL del webhook**: el destino es fijo por seguridad; los datos de la conversación o del contacto ya
  viajan en el cuerpo del webhook.
- **Importe de cobros y suscripciones**: es dinero enviado a la pasarela y nunca viene de un texto.
- **Pasarela del pedido**, **idioma** y **namespace** de la plantilla: son identificadores.
- **Atributos adicionales** y los campos **numéricos y de fecha** del editor de reglas (por ejemplo, el
  valor del negocio en "Definir valor"): en el formulario del Flow Builder el valor del negocio acepta variable.

Qué variables ofrece la lista depende del **disparador**:

- **Conversación y mensaje**: contacto, conversación, bandeja de entrada, agente, equipo, SLA, cuenta y
  los módulos (CRM, empresa, pago, pedido, agenda, tarea, contrato y otros).
- **Contacto y empresa**: no hay conversación — la lista oculta conversación, bandeja de entrada, agente,
  equipo y SLA.
- **Pagos**: `{{ payment.* }}` describe **el cobro que disparó** la regla. **CRM**: `{{ crm.* }}`
  describe **el negocio que disparó** la regla.
- Los demás módulos ligados al contacto (pedido, agenda, tarea, contrato) usan el registro más reciente
  del contacto.
- Las reglas y macros nunca ofrecen las variables exclusivas del Flow Builder (`vars`, `steps`,
  `trigger`) ni las de otras pantallas (producto, campaña, grupo, artículo).

Cuando una variable no tiene valor, ese tramo del texto queda **en blanco** — el cliente nunca recibe
`{{ ... }}`. En campos que son datos (teléfono, correo del invitado, ids, importes y fechas), la acción
se **omite y se registra** en lugar de guardar un valor incorrecto. El teléfono se normaliza al formato
internacional **después** de resolver la variable, así que `55 11 98888-7777` pasa a `+5511988887777`.

El **valor** de una variable siempre se trata como texto: si el nombre del contacto, un atributo o una
respuesta del cliente contiene `{{ }}` o `{% %}`, aparece exactamente como está — nunca se ejecuta — y en el
correo al equipo tampoco se convierte en HTML. Una plantilla que genera demasiado texto o repite sin fin se
interrumpe y queda en blanco.

### El formulario de la regla

La regla se abre en una **ventana modal sobre la lista**, anclada en la parte superior de la pantalla
y con desplazamiento propio: el formulario completo cabe ahí, desde el nombre hasta las acciones. Los
menús de condición y de acción se abren **dentro** de esa ventana — es una elección deliberada de la
plataforma, para que ninguna lista desplegable quede escondida detrás del modal.

El orden de los campos es siempre el mismo: **nombre**, **descripción**, el selector **¿Cuándo debe
ejecutarse esta regla?** (cuando la ejecución diferida está habilitada) y, debajo, el disparador y las
condiciones — o el bloque **Condición de espera**, si eliges la espera. Las acciones van al final,
seguidas de los botones de cancelar y guardar.

Algunos detalles que evitan sorpresas:

- **Cambiar entre "al instante" y "con espera" no pierde la duración escrita.** El valor queda
  guardado en el formulario, así que puedes ir y volver entre las dos tarjetas sin volver a escribir
  "4 horas".
- **Al reabrir una regla con espera**, el tiempo aparece en la **mayor unidad entera**: 240 minutos se
  muestran como "4 horas"; 2.880 minutos, como "2 días".
- **Al convertir una regla al instante en una regla con espera**, las condiciones del editor instantáneo
  se **sustituyen** por las condiciones del disparador de espera elegido. Es intencional: un filtro
  que sobrara del editor anterior armaría el contador en el evento equivocado.
- En el bloque de espera, el estado ya viene con **Pendientes**; las opciones son **Abiertas**,
  **Resueltas**, **Pendientes** y **Postpuestas** — "Todos" no se ofrece aquí, porque una espera
  necesita un estado concreto contra el cual contar.
- En una **regla nueva**, cambiar el evento avisa por escrito: "El cambio de tipo de evento
  restablecerá las condiciones y eventos que has añadido abajo".
- Los disparadores cuyo asunto no tiene ningún campo filtrable (grupo de WhatsApp, catálogo y otros)
  simplemente **no muestran la sección de condiciones** — en lugar de mostrar una fila de condición
  vacía.

### Reglas con espera: ejecutar después de un tiempo

La ejecución diferida se controla con la funcionalidad **Delayed Automations**
(`delayed_automations`), que **viene desactivada** y se habilita por cuenta. Con ella activa, el
formulario de la regla gana el selector **¿Cuándo debe ejecutarse esta regla?**, con dos opciones en
tarjeta: **Ejecutar al instante** y **Ejecutar después de una espera**.

Al elegir la espera, el disparador y la lista de condiciones dan paso al bloque **Condición de
espera**, con cuatro campos:

| Campo | Qué completas |
| --- | --- |
| **Cuando** | La situación que inicia el contador: **La conversación permanece en un estado**, **El cliente no ha respondido** o **Ningún miembro del equipo ha respondido**. |
| **El estado es** | Solo aparece en la primera opción: el estado en el que la conversación debe permanecer. |
| **Durante** | La duración, en minutos, horas o días. |
| **Bandeja de entrada** | Restringe la regla a bandejas específicas. Sin selección, aplica a todas. |

Junto a los campos hay un **panel lateral** con el icono de información. Explica en frases completas
qué significa la combinación elegida, usando la misma unidad que escribiste ("4 horas", "2 días"):

- **La conversación permanece en un estado** — "El contador comienza cuando una conversación pasa a
  este estado. Si continúa en él {duración} después, se ejecutan las acciones siguientes. Si el estado
  cambia antes, no ocurre nada."
- **El cliente no ha respondido** — "El contador comienza cuando responde un miembro del equipo. Si el
  cliente no ha vuelto a escribir {duración} después, se ejecutan las acciones siguientes. Si
  responde, no ocurre nada y la siguiente respuesta del equipo vuelve a iniciar el contador."
- **Ningún miembro del equipo ha respondido** — "El contador comienza cuando un cliente envía un
  mensaje. Si ningún miembro del equipo ha respondido {duración} después, se ejecutan las acciones
  siguientes. Si alguien responde antes, no ocurre nada."

El mismo panel incluye la nota al pie: "Solo la actividad nueva inicia un contador. Las conversaciones
que ya se encuentren en este estado se procesarán la próxima vez que ocurra algo en ellas."

Dos precisiones que el panel no tiene espacio para explicar, y que cambian el resultado:

- En **El cliente no ha respondido**, cada nueva respuesta del equipo **adelanta el vencimiento**: el
  plazo pasa a contarse desde la respuesta más reciente. Una serie de mensajes del equipo empuja el
  plazo hacia adelante; no acumula varios plazos.
- En **Ningún miembro del equipo ha respondido**, vale el contador del **primer** mensaje sin
  respuesta del cliente. Si envía tres mensajes más seguidos, el plazo sigue contando desde el
  primero — no se reinicia con cada mensaje.

**Límites de la espera**

- Mínimo de **10 minutos** y máximo de **30 días** (43.200 minutos). El campo **ajusta solo** un
  valor fuera de ese rango al límite más cercano — al salir del campo, al pulsar Enter o al cambiar de
  unidad. Escribir 5 minutos deja 10. El error "La espera debe ser de entre 10 minutos y 30 días"
  aparece al intentar guardar con el campo de duración **vacío**.
- La duración sugerida en una regla nueva es de **4 horas**.
- Al cambiar de unidad, el mínimo acompaña: en días, el menor valor posible es 1 día.
- Una nota privada es un mensaje saliente. Por eso la opción **El cliente no ha respondido** añade por
  su cuenta un filtro que ignora las notas internas — una anotación del equipo no reinicia el contador.

**Lo que la espera no acepta**

- Condiciones con el operador de **cambio de atributo** (`attribute_changed`): la revisión que se hace
  al momento de ejecutar no puede reconstruir qué cambió, así que la regla se rechaza al guardar.
- En los disparadores de conversación, solo **estado** y **bandeja de entrada** pueden usarse como
  condición. Los demás campos cambian durante la espera y mezclarían periodos distintos en un solo
  contador.

**Editar una regla con espera reinicia los contadores en curso**

Cambiar el disparador, las condiciones, las acciones o la duración — o simplemente desactivar y
reactivar la regla — **descarta las esperas ya armadas**. Vuelven a armarse en el siguiente evento que
coincida. Es intencional: una regla desactivada y reactivada antes del plazo no debe ejecutar
justamente las acciones que desactivaste para evitar.

Una única excepción: una espera que ya **empezó a ejecutar las acciones** no se interrumpe — lo que
está en curso no puede devolverse. Todo lo que solo estaba aguardando se descarta.

### Cómo la lista separa reglas al instante y con espera

Cuando la cuenta puede crear reglas con espera (o todavía tiene alguna), la lista gana dos pestañas
con contador: **Se ejecutan al instante** y **Se ejecutan después de una espera**. Crear una regla
desde la segunda pestaña abre el formulario con la espera ya seleccionada.

- Cada regla con espera muestra junto al nombre la insignia **Se ejecuta después de {tiempo}**,
  escrita en la mayor unidad entera: `30m`, `4h`, `2d`.
- La pestaña de espera sin reglas muestra "Aún no hay reglas que se ejecuten después de una espera".
- Cada fila trae tres **iconos de acción**, con ayuda al pasar el cursor: **Editar**, **Clonar** y
  **Eliminar**. En el formulario, cada acción de la regla también tiene su icono (un sobre para la
  transcripción por correo, una etiqueta para etiquetar, una campana tachada para silenciar, un reloj
  para posponer, y así sucesivamente) — los mismos iconos aparecen en las Macros.

La lista completa de iconos de acción: persona (asignar agente), personas redondeadas (asignar
equipo), persona con X (quitar agente), personas (quitar equipo), etiqueta (etiquetar), etiqueta con
menos (quitar etiqueta), sobre (transcripción por correo), avión de papel (correo al equipo), globo
(enviar mensaje), bloc de notas (nota privada), clip (adjunto), webhook, campana tachada (silenciar),
reloj (posponer), círculo con punto (reabrir), círculo punteado (marcar como pendiente), círculo con
marca (resolver), barras de señal (prioridad) y medidor (SLA). Toda acción sin icono propio usa el
**rayo**.

La cabecera trae además la **búsqueda** ("Buscar reglas de automatización..."), que filtra por **nombre
y descripción** a la vez y vale para las dos pestañas — los contadores acompañan el filtro. Sin
resultados, la tabla muestra "No se encontraron reglas de automatización para tu búsqueda". Junto a
las pestañas aparece el conteo de las reglas visibles en la pestaña actual.

La tabla tiene cuatro columnas: **Nombre**, **Activo**, **Creado el** y **Acciones**. La columna de
fecha muestra el día; la hora completa aparece al pasar el cursor. El interruptor de **Activo** pide
confirmación antes de activar o desactivar, y la pregunta nombra la regla ("Esta acción desactivará la
regla de automatización '...'").

**Cuando la espera está desactivada**

Si la funcionalidad se desactiva y la cuenta todavía tiene reglas con espera, aparece un **aviso
destacado** encima de la lista: "La ejecución diferida está desactivada para esta cuenta, por lo que
las reglas siguientes que se ejecutan después de una espera permanecerán en pausa hasta que vuelva a
activarse."

En ese estado:

- Las esperas ya armadas **no se borran** — quedan detenidas. Al reactivar la funcionalidad, las que
  superaron el límite de 3 días durante la pausa reciben un plazo nuevo para ahora, en lugar de
  descartarse por vencimiento; las demás simplemente entran en la siguiente barrida. Todas pasan por
  la revisión normal antes de ejecutarse.
- No se arma ninguna espera nueva y la regla **no** pasa a ejecutarse al instante: volverse instantánea
  en silencio sería peor que no ejecutarse.
- **Clonar** una regla con espera se rechaza, en lugar de crear una copia que se dispararía de
  inmediato. En pantalla aparece el aviso genérico "No se pudo clonar la regla de automatización, por
  favor inténtalo más tarde"; el motivo específico llega en la respuesta de la API ("Delayed
  automations are not enabled for this account.").

### Cómo se ejecuta la espera entre bastidores

Saber esto ayuda a interpretar lo que ves en pantalla:

1. Cuando ocurre el evento y las condiciones se cumplen, la plataforma **programa** la ejecución en
   lugar de ejecutar las acciones. El contador parte del momento del evento — no del momento en que se
   procesó — así que una cola atrasada igual se dispara a tiempo.
2. Cada **5 minutos** un barrido recoge las ejecuciones vencidas y las entrega a los procesadores.
3. Antes de ejecutar, la plataforma **vuelve a comprobarlo todo**: ¿la regla sigue activa? ¿La
   conversación todavía existe? ¿Sigue siendo el mismo periodo (el estado no cambió, nadie respondió)?
   ¿Las condiciones siguen siendo verdaderas? Cualquier "no" registra el motivo y descarta la
   ejecución sin ejecutar las acciones.
4. Una ejecución con más de **3 días** de vencimiento nunca se ejecuta — eso evita que una caída larga
   vuelque mensajes antiguos de golpe. Los registros ya cerrados se purgan a los **30 días**.
5. Las acciones nunca se repiten: si algo falla después de que empezaron, la plataforma no las vuelve
   a ejecutar. Reenviar un mensaje, un correo o un webhook es peor que no enviarlo.

Dos salvaguardas completan el cuadro:

- **Cada barrido entrega como máximo 1.000 ejecuciones.** El excedente queda para el barrido
  siguiente, 5 minutos después, y quien administra la instalación puede cambiar ese tope. Las cuentas
  con la ejecución diferida desactivada **no consumen** esa cuota — la acumulación de una cuenta en
  pausa nunca retrasa a las demás.
- **Un procesador que muera antes de actuar tiene su ejecución recuperada** a los 15 minutos y
  devuelta a la cola. Un procesador que muera **en medio de las acciones** no se repite, por la misma
  razón del punto 5.

Toda ejecución descartada guarda el **motivo**, lo que hace directo el diagnóstico: `expired` (pasó de
los 3 días), `rule_inactive` (la regla se desactivó), `conversation_gone` (la conversación ya no
existe), `episode_moved` (el periodo terminó — alguien respondió o el estado cambió) y
`conditions_changed` (una condición dejó de ser verdadera).

Un detalle que explica la nota al pie del panel: una espera por **estado** solo se arma cuando la
conversación tiene registro de cuándo entró en su estado actual. Las conversaciones anteriores a la
funcionalidad no tienen ese registro — empiezan a contar en su siguiente cambio de estado, en lugar de
vencer todas de golpe en el primer barrido.

### Enviar la transcripción al correo del contacto

La acción **Enviar transcripción por correo** acepta una lista de direcciones separadas por comas, y
cada dirección pasa por variables antes del envío. Para enviar el historial al propio cliente,
escribe:

```
{{contact.email}}
```

Puedes combinar variable y dirección fija: `{{contact.email}}, supervision@tuempresa.com`. Otras
variables del contacto también funcionan en este campo (por ejemplo
`{{contact.custom_attribute.correo_factura}}` para un atributo personalizado). Usa la variable solo en
reglas cuyas condiciones garanticen un contacto con correo registrado — sin correo no hay nada que
resolver. El envío solo ocurre cuando la transcripción por correo está habilitada para la cuenta, y
respeta el límite de correos de la cuenta.

Dos detalles del campo: **todo espacio en blanco se elimina** antes de separar la lista por las comas
— `{{contact.email}} , supervision@tuempresa.com` funciona igual que la versión sin espacios. Y el
campo resuelve el **mismo conjunto de variables que el compositor de respuesta** (contacto,
conversación, bandeja de entrada, cuenta y los módulos activos), no solo las del contacto. Si la
cuenta alcanza su límite de correos a mitad de la lista, las direcciones restantes de ese envío quedan
fuera.

## Casos de uso

- **Enrutamiento por canal**: las conversaciones creadas en el WhatsApp comercial van al equipo de Ventas.
- **Triaje por palabra clave**: si el mensaje contiene "factura", añadir la etiqueta "facturación".
- **Fuera de horario**: al crear una conversación fuera del horario laboral, enviar un mensaje automático.
- **Higiene de la cola**: resolver conversaciones sin respuesta desde hace mucho tiempo y notificar al equipo.
- **CRM**: al crear una conversación de un lead, crear un negocio y asignarlo al vendedor responsable.
- **El cliente se quedó callado (con espera)**: si el cliente no responde 4 horas después de la última
  respuesta del equipo, etiquetar como "sin respuesta" y crear una tarea de seguimiento.
- **Primera respuesta con retraso (con espera)**: si ningún miembro del equipo responde en 30 minutos,
  avisar al equipo por correo y subir la prioridad.
- **Cola detenida (con espera)**: una conversación en "Pendiente" desde hace 2 días, resolverla y
  enviar la transcripción al correo del contacto.

## Consejos, límites y buenas prácticas

- Usa nombres descriptivos y mantén cada regla enfocada en un solo objetivo.
- Evita **reglas en conflicto** que intentan hacer cosas opuestas en la misma conversación.
- Para acciones que envían mensajes automáticos, respeta los límites del canal (buenas prácticas
  anti-ban de WhatsApp).
- Prueba en una bandeja de pruebas antes de aplicar la regla en producción.
- Documenta para el equipo qué hace cada regla — facilita el mantenimiento futuro.
- Empieza con esperas generosas (horas, no minutos) y acórtalas después de ver el resultado: una
  espera demasiado corta se dispara sobre conversaciones que todavía se estaban atendiendo.
- La espera es un contador continuo, no un reloj de horario laboral: 12 horas iniciadas a las 20:00
  vencen a las 8:00 del día siguiente.
- Al habilitar la ejecución diferida, las conversaciones que ya están detenidas en ese estado no
  empiezan a contar solas — el contador arranca en su siguiente actividad.
- Restringe la regla por **bandeja de entrada** cuando el tiempo de respuesta aceptable varíe según el
  canal.

## Solución de problemas

- **La regla no se disparó**: confirma el disparador y que **todas** las condiciones sean verdaderas;
  verifica que la regla esté activa.
- **La acción no se ejecutó**: comprueba que el agente, equipo o etiqueta referidos todavía existan; y
  que el módulo de la acción (CRM, Catálogo, etc.) esté habilitado.
- **La regla actuó en la conversación equivocada**: las condiciones son demasiado amplias. Refina los
  filtros.
- **Una acción se ignoró**: algunas acciones solo se ejecutan cuando hay una conversación en el
  contexto del disparador; fuera de eso, se registran y se ignoran sin interrumpir la regla. Prefiere
  una acción compatible con el disparador elegido.
- **Una acción muestra un valor bloqueado, solo un número**: la acción apunta a un registro de un módulo
  que está desactivado en la cuenta o al que tu perfil no tiene acceso (por ejemplo, una secuencia de
  follow-up o una política de SLA). Un valor bloqueado también puede significar que la lista aún no
  cargó, que la consulta falló o que la lista de tu perfil de acceso no incluye el registro (puede
  estar fuera de tu alcance o haber sido eliminado). La ayuda explica la causa. La referencia queda
  sin cambios al guardar otras modificaciones. Recarga la página para repetir una consulta fallida;
  si el acceso está restringido, pide ayuda a quien tenga acceso o vuelve a activar el módulo.
- **Una acción muestra un número en lugar del nombre**: el registro puede estar fuera de la página
  cargada de una lista larga o haber sido eliminado. Un lote preparado también puede aparecer solo
  por su identificador. Cuando una consulta confirma la eliminación, el campo lo identifica como
  eliminado. El valor sigue seleccionado y se guarda sin cambios; elige otro
  elemento solo si quieres cambiarlo.
- **El webhook no llegó**: revisa la URL del endpoint y que responda correctamente.
- **La regla con espera nunca se ejecutó**: el motivo más común es que el periodo terminó antes del
  plazo — alguien respondió, el estado cambió o una condición dejó de ser verdadera. Comprueba también
  que la regla siga activa y que la conversación todavía exista.
- **Todas las reglas con espera se detuvieron a la vez**: busca el aviso encima de la lista. Indica que
  la ejecución diferida se desactivó para la cuenta; al reactivarla, las esperas vencidas se
  reprograman.
- **Quiero saber por qué se descartó una espera**: el motivo queda registrado en la propia ejecución —
  `expired`, `rule_inactive`, `conversation_gone`, `episode_moved` o `conditions_changed`. Pide a
  quien administra la instalación que lo consulte cuando el comportamiento no esté claro.
- **Las esperas están venciendo con retraso**: cada barrido entrega hasta 1.000 ejecuciones y se
  ejecuta cada 5 minutos. Una acumulación mayor se drena en los barridos siguientes.
- **No puedo guardar la espera**: elimina las condiciones con el operador de cambio de atributo y, en
  los disparadores de conversación, mantén solo estado y bandeja de entrada.
- **No puedo clonar una regla con espera**: el aviso genérico de fallo al clonar aparece porque la
  funcionalidad está desactivada en la cuenta. Reactívala antes de clonar, para no generar una copia
  que perdió su espera.
- **El bloque de espera no aparece en el formulario**: la funcionalidad **Delayed Automations** no está
  habilitada para la cuenta.

### Cambios de etapa del CRM

Usa **Etapa del negocio del CRM modificada** y selecciona la etapa en las condiciones. La regla se activa únicamente al cambiar de etapa; reordenar una tarjeta dentro de su columna no inicia otra ejecución.

Los adjuntos (incluido PDF) y las conversiones Meta usan la conversación vinculada al negocio. Si falta el vínculo, la acción se registra como omitida; el webhook puede ejecutarse independientemente. Revisa la configuración de conversiones de la bandeja y adjunta los archivos a la propia regla. Encolar una conversión no prueba que Meta la haya aceptado: revisa también su registro de entrega.

Para la ejecución diferida, el plazo comienza al cambiar de etapa. Antes de ejecutar, el sistema comprueba de nuevo la etapa, las condiciones y que la regla siga activa. Pausar la función conserva las acciones pendientes. Al reactivarla se retoman las elegibles; las que vencieron hace más de tres días se marcan como expiradas. Editar o desactivar la regla cancela las acciones pendientes de su definición anterior.

Cada acción conserva su resultado. Repetir el evento o reiniciar el worker no repite las acciones completadas. Si una integración externa pudo ejecutarse antes de una falla, su resultado permanece incierto y debe verificarse antes de reenviar. No reproduzcas cambios históricos de etapa de forma masiva para recuperar una regla: podrías volver a disparar efectos comerciales válidos.

## Ver también

- [Visión general de Automatización y Flujos](/hc/ajuda/articles/automation-flows-overview-es)
- [Disparadores de automatización sobre la IA (Maestro)](/hc/ajuda/articles/automation-flows-gatilhos-de-ia-es)
- [Macros: acciones reutilizables](/hc/ajuda/articles/automation-flows-macros-es)
- [Flow Builder: flujos conversacionales visuales](/hc/ajuda/articles/automation-flows-flow-builder-es)
- [Enrutamiento inteligente (Smart Routing)](/hc/ajuda/articles/automation-flows-smart-routing-es)