# Pasos

> Qué hace cada tipo de paso, por qué salidas sigue y en qué se diferencia entre WhatsApp e Instagram.

Después del disparador, la automatización sigue por los pasos que conectaste. Cada paso sale por una de sus **salidas**, y cada salida puede ir a otro paso. Si una salida no está conectada, la automatización termina ahí.

| Grupo | Pasos |
| --- | --- |
| **Mensajes** | [Mensaje](#mensaje), [Pregunta](#pregunta) |
| **Lógica** | [Condición](#condicion), [Aleatorio](#aleatorio), [Esperar](#esperar) |
| **Acciones** | [Acción](#accion), [Solicitud HTTP](#solicitud-http), [Pasar a una persona](#pasar-a-una-persona), [Ir a otra automatización](#ir-a-otra-automatizacion), [Fin](#fin) |

## Antes de empezar: la ventana de 24 horas

WhatsApp e Instagram solo te dejan escribir libremente durante las **24 horas siguientes al último mensaje del cliente**. Esto también vale para las automatizaciones:

- **Si el cliente acaba de escribir** (palabra clave, primer mensaje, anuncio, historia), la ventana está abierta y puedes mandar cualquier mensaje.
- **Si la automatización arranca sin que el cliente haya escrito** (webhook, API, inicio manual) o después de una espera larga, la ventana puede estar cerrada. En WhatsApp, lo único que se puede mandar entonces es una **plantilla aprobada**. En Instagram no hay plantillas: hay que esperar a que el cliente vuelva a escribir.

Por eso el paso **Mensaje** tiene una salida **Ventana cerrada**, y la **Condición** tiene la opción **Ventana de 24 h abierta**. Más en [La ventana de 24 horas](/conceptos/ventana-24-horas).

## Mensaje

Manda un mensaje. En **Tipo de mensaje** eliges:

| Tipo | Qué manda | WhatsApp | Instagram |
| --- | --- | --- | --- |
| **Texto** | Un texto con [variables](/guias/automatizaciones/crear#variables), hasta 4.096 caracteres. | ✓ | ✓ |
| **Archivo** | Una foto, un video, un audio o un PDF, con un comentario opcional. | ✓ | ✓ |
| **Link** | Un texto con un botón que abre una página (**Texto del botón** hasta 20 caracteres). | ✓ | ✓ |
| **Plantilla** | Una [plantilla aprobada](/guias/plantillas/crear), con sus variables. Es la única forma de escribir con la ventana cerrada. | ✓ | — |
| **Corazón** | Un ❤️. | — | ✓ |

**Salidas:**

| Salida | Cuándo |
| --- | --- |
| **Enviado** | El mensaje salió. |
| **Ventana cerrada** | La ventana de 24 horas estaba cerrada y el mensaje no es una plantilla. Si no la conectas, la ejecución termina con un error. |

<Tip>
  Si la automatización arranca desde tu sistema o después de una espera larga, conecta **Ventana cerrada** a un **Mensaje** de tipo **Plantilla**. Así el cliente recibe algo aunque haya pasado más de un día.
</Tip>

Si la automatización corre en los dos canales, separa el camino con una [condición de canal](#condicion) antes de una plantilla (solo WhatsApp) o de un corazón (solo Instagram). El editor no te deja publicar si no lo haces.

## Pregunta

Manda una pregunta y **espera la respuesta** del cliente. En **Qué espera** eliges el tipo de respuesta:

| Tipo | Acepta | Ejemplo |
| --- | --- | --- |
| **Opciones** | Una de las opciones que cargues. | _Ver catálogo_ / _Horarios_ / _Hablar con alguien_ |
| **Texto** | Cualquier texto. | Un nombre, una dirección |
| **Número** | Un número. Entiende `1.234,50`, `1234.5` y `$ 1500`. | Cantidad, presupuesto |
| **Email** | Un email válido. | `sofia@gmail.com` |
| **Teléfono** | Un teléfono de 8 a 15 dígitos. | `11 2345-6789` |

### Cómo se ven las opciones

Cada opción tiene hasta 20 caracteres.

| Canal | Cómo le llegan |
| --- | --- |
| **WhatsApp**, hasta 3 opciones | Botones de respuesta. |
| **WhatsApp**, de 4 a 10 opciones | Una lista, que se abre con el botón de **Botón que abre la lista (WhatsApp)** (por defecto, _Ver opciones_). |
| **Instagram**, hasta 13 opciones | Respuestas rápidas debajo del mensaje. |

El cliente puede tocar la opción o escribirla. También vale escribir el número de la opción (_“2”_) o una frase que empiece con la opción. No importan las mayúsculas ni las tildes.

### Salidas

| Salida | Cuándo |
| --- | --- |
| Una por opción (con el texto de la opción) | Eligió esa opción. Solo con **Opciones**. |
| **Respondió** | Dio una respuesta válida. Con **Texto**, **Número**, **Email** y **Teléfono**. |
| **Otra respuesta** / **Respuesta inválida** | Escribió algo que no corresponde, incluso después de volver a preguntarle. |
| **Sin respuesta** | No respondió en el tiempo de **Si no responde en** (por defecto, 24 horas; hasta 7 días). |

### Más opciones

- **Si la respuesta no sirve, vuelve a preguntar**: cuántas veces repite la pregunta ante una respuesta inválida (de 0 a 3) antes de salir por **Otra respuesta** o **Respuesta inválida**. Con **Texto para volver a preguntar (opcional)** puedes mandar otro texto, como _“Ese email no parece válido. ¿Me lo pasas de nuevo?”_.
- **Guardar en la variable**: guarda la respuesta para usarla después como `{var.nombre_que_elijas}`. La última respuesta siempre está en `{var.respuesta}`.
- **…y en el campo del contacto**: además, la guarda en un [campo del contacto](/guias/contactos/campos). Así queda en su ficha y puedes usarla en segmentos y campañas.

<Warning>
  Una pregunta necesita la ventana de 24 horas abierta. Si está cerrada, la ejecución termina con un error. En WhatsApp, manda antes una plantilla y deja que el cliente responda.
</Warning>

## Condición

Separa el camino según se cumpla o no. Puedes sumar varias condiciones y elegir en **Cómo se combinan** si **Se cumplen todas** o **Se cumple alguna**.

| Condición | Pregunta | Ejemplo |
| --- | --- | --- |
| **Etiqueta** | ¿El contacto tiene (o no tiene) una etiqueta? | Tiene _cliente VIP_ |
| **Dato del contacto** | ¿Qué dice el nombre, el teléfono, el Instagram o un campo personalizado? | _ciudad_ es _Córdoba_ |
| **Variable** | ¿Qué dice una variable de esta ejecución? | _presupuesto_ es mayor que _50000_ |
| **Canal** | ¿La conversación es de WhatsApp o de Instagram? | Canal es _Instagram_ |
| **Horario de atención** | ¿Ahora es horario de atención? Eliges los días y las horas, en hora de Argentina. | Lunes a viernes de 9 a 18 |
| **Ventana de 24 h abierta** | ¿Se le puede escribir sin plantilla? | |

Para datos y variables, las comparaciones son: **es**, **no es**, **contiene**, **no contiene**, **está vacío**, **tiene un valor**, **es mayor que** y **es menor que**. No importan las mayúsculas ni las tildes.

**Salidas:** **Sí** y **No**.

<Tip>
  Las acciones de la misma ejecución ya cuentan: si un paso anterior le agregó la etiqueta _interesado_, una condición posterior la ve.
</Tip>

## Aleatorio

Reparte a los contactos al azar entre 2 y 5 caminos, según el peso de cada uno. Sirve para comparar dos mensajes y ver cuál funciona mejor.

**Salidas:** una por camino, con su letra y su porcentaje (por ejemplo, **A · 50%** y **B · 50%**).

## Esperar

Frena la ejecución un rato y después sigue sola. En **Tipo de espera**:

- **Un tiempo**: minutos, horas o días.
- **Hasta el horario**: sigue cuando abre el horario de atención que elijas (hora de Argentina). Si ya está abierto, sigue enseguida.

**Salida:** **Siguiente**.

Las esperas tienen una precisión de alrededor de un minuto. Mientras una ejecución espera, un mensaje del cliente que coincide con otra automatización la corta. Mira [Qué pasa si ya hay una en curso](/guias/automatizaciones/disparadores#que-pasa-si-ya-hay-una-en-curso).

<Warning>
  Después de una espera larga, la ventana de 24 horas puede haberse cerrado. Usa la salida **Ventana cerrada** del mensaje siguiente o una condición **Ventana de 24 h abierta**.
</Warning>

## Acción

Hace una o varias cosas en eltick, sin mandar mensajes (hasta 20 por paso):

| Acción | Qué hace |
| --- | --- |
| **Agregar etiqueta** / **Quitar etiqueta** | Cambia las etiquetas del contacto. |
| **Guardar un dato** | Guarda un valor en un campo del contacto. Admite variables, por ejemplo `{var.email}`. |
| **Asignar la conversación** | La asigna a alguien del equipo, o la deja sin asignar. |
| **Cerrar la conversación** | Cierra la conversación en el chat. |
| **Iniciar un seguimiento** | Arranca una de tus [secuencias de seguimiento](/guias/chat/seguimientos). |
| **Sumar a un segmento** / **Sacar de un segmento** | Suma o saca al contacto de un [segmento fijo](/guias/contactos/segmentos). Los segmentos dinámicos se actualizan solos, así que no aparecen. |

**Salida:** **Siguiente**. Si una acción no se puede hacer (por ejemplo, el segmento ya no existe), queda marcada con error en el historial y la ejecución sigue igual.

## Solicitud HTTP

Llama a tu sistema, tu CRM o cualquier servicio web: manda los datos del contacto y usa la respuesta en los pasos siguientes. No está en el plan Inicial.

**Salidas:** **Éxito** (respondió con un código `2xx`) y **Error** (cualquier otro código, no respondió en 10 segundos o se usaron todas las solicitudes del mes).

Todo el detalle, con ejemplos para verificar la firma, está en [Conectar con tu sistema](/guias/automatizaciones/integraciones#el-paso-solicitud-http).

## Pasar a una persona

Termina la automatización y deja la conversación al equipo:

- La conversación queda **abierta** y, si elegiste a alguien en **Asignar a**, asignada a esa persona.
- Las automatizaciones **se callan por 24 horas** en esa conversación, igual que cuando alguien del equipo responde.

No tiene salidas.

<Tip>
  Antes de pasar la conversación, manda un mensaje como _“Listo, en un rato te escribe alguien del equipo”_ para que el cliente sepa qué esperar.
</Tip>

## Ir a otra automatización

Termina esta automatización y arranca otra en la misma conversación. Usa el disparador de **Inicio manual** de la otra (o su primer disparador, si no tiene uno manual). La otra tiene que estar activa.

Sirve para reutilizar partes: por ejemplo, un _Menú principal_ al que se llega desde la bienvenida, desde las palabras clave y desde el final de otros flujos. Una automatización no puede ir a sí misma: para repetir, conecta una salida a un paso anterior.

No tiene salidas.

## Fin

Termina la ejecución. No hace falta ponerlo: una salida sin conectar también termina. Úsalo si te ayuda a leer el flujo.

## Límites de una ejecución

- **100 pasos por ejecución.** Si una ejecución pasa por más de 100 pasos (por ejemplo, un menú que se repite muchas veces), se corta con el error _“Se cortó después de 100 pasos: revisá que no haya un bucle.”_
- Cada paso cuenta para los [pasos del mes](/guias/automatizaciones/introduccion#planes-y-limites) de tu plan.
