Ir al contenido principal

Automatizaciones para usuarios avanzados

Domina escenarios complejos de automatización: desde flujos multicanal hasta un control inteligente de automatizaciones

Mika Hally avatar
Escrito por Mika Hally
Actualizado hoy

Este artículo cubre conceptos avanzados que te ayudarán a dominar escenarios complejos de automatización y evitar errores comunes.

Trabajar con múltiples automatizaciones

Tan pronto como comienzas a crear múltiples automatizaciones, pueden surgir problemas rápidamente, especialmente cuando varias automatizaciones escuchan la misma señal: un nuevo mensaje entrante.

Comprender el problema

Los diferentes triggers de mensajes escuchan la misma señal básica (un mensaje entrante), solo con diferentes circunstancias:

  • Nueva conversación entrante: Circunstancia: Debe ser el primer mensaje de una conversación Y provenir del contacto

  • Conversación reabierta: Circunstancia: La conversación existente tiene el estado "Hecho" Y el contacto envía un nuevo mensaje (no cuando el agente la reabre)

  • Contacto escanea código QR / abre enlace: Circunstancia: Esencialmente "Nuevo mensaje entrante" + contenido del mensaje predefinido

  • Nuevo mensaje entrante: Circunstancia: Sin restricciones adicionales - cada mensaje activa el trigger

¿Cuándo surgen problemas?

Los triggers anteriores (Nueva conversación, Reabierta, Código QR) son mutuamente excluyentes porque ya tienen el filtro integrado en el trigger. No pueden activarse simultáneamente para el mismo mensaje.

Los problemas solo surgen cuando usas "Nuevo mensaje entrante". Este trigger no tiene restricciones y, por lo tanto, siempre puede activarse simultáneamente con los otros triggers.

Ejemplo: Cuando las cosas salen mal

Has creado dos automatizaciones:

Automatización 1:

  • Trigger: "Nueva conversación entrante"

  • Acción: El agente AI responde a la consulta

Automatización 2:

  • Trigger: "Nuevo mensaje entrante"

  • Filtro: El mensaje contiene "Ayuda"

  • Acción: Enviar enlace del centro de ayuda

¿Qué sucede cuando un cliente escribe por primera vez: "Ayuda, necesito soporte"?

  1. La Automatización 1 se activa (nueva conversación) → El agente AI comienza a responder

  2. La Automatización 2 se activa simultáneamente (el mensaje contiene "Ayuda") → Se envía el enlace del centro de ayuda

  3. El contacto recibe 2 mensajes al mismo tiempo - uno del agente AI Y el enlace del centro de ayuda

  4. El contacto se confunde, la comunicación parece descoordinada

El problema: Ambas automatizaciones se ejecutan en paralelo y no saben la una de la otra.

La solución: Verificar y ceder en la automatización más general

La mejor solución para este problema: Permitir que la automatización más general verifique si una automatización más específica ya se está ejecutando. Si es así → se detiene.

En nuestro ejemplo, la Automatización 1 es más general (solo trigger, sin condiciones adicionales), la Automatización 2 es más específica (trigger + filtro "contiene Ayuda").

Así es como se construye:

Automatización 1 (la más general):

  1. Trigger: "Nueva conversación entrante"

  2. Nodo "Esperar / Pausa": Esperar 4 segundos

  3. Nodo "Filtro / Condición": Automatización activa

    • Ruta 1: No contiene ninguna de "Automatización 2" → Continuar al agente AI

    • De lo contrario: La automatización se detiene (no hacer nada)

  4. Nodo "Agente AI"

La Automatización 2 permanece igual (no se necesitan cambios)

¿Qué sucede ahora?

Escenario 1: El cliente escribe "Ayuda, necesito soporte"

  1. Ambas automatizaciones se activan simultáneamente

  2. La Automatización 2 comienza inmediatamente (filtro "contiene Ayuda" → coincide)

  3. La Automatización 1 espera 4 segundos

  4. Después de 4 segundos: El filtro verifica si la Automatización 2 está activa → Sí, se está ejecutando

  5. La Automatización 1 se detiene → El contacto solo recibe el enlace del centro de ayuda

Escenario 2: El cliente escribe "Hola, tengo una pregunta"

  1. Ambas automatizaciones se activan simultáneamente

  2. La Automatización 2 verifica el filtro "contiene Ayuda" → no coincide → se detiene inmediatamente

  3. La Automatización 1 espera 4 segundos

  4. Después de 4 segundos: El filtro verifica si la Automatización 2 está activa → No, ya no se está ejecutando

  5. La Automatización 1 continúa → El contacto recibe el agente AI

¿Por qué esperar 4 segundos?

Sin el tiempo de espera, podrían ocurrir problemas de sincronización: la Automatización 1 verifica si la Automatización 2 se está ejecutando antes de que esta haya comenzado o verificado sus filtros. Los 4 segundos dan a la Automatización 2 suficiente tiempo para iniciarse y ejecutar sus filtros.

Importante - La regla:

La automatización más general (menos filtros, alcance más amplio) debe verificar y ceder, no la más específica. ¿Por qué? Porque la automatización más específica está más dirigida y debe tener prioridad en los casos en los que aplica.

Recuerda para múltiples automatizaciones

Los problemas con múltiples automatizaciones superpuestas siempre se resuelven con una combinación de:

  • Nodo "Esperar / Pausa" - Da tiempo a otras automatizaciones para iniciarse

  • Filtro "Automatización activa" - Verifica qué otras automatizaciones se están ejecutando actualmente

  • Nodo "Finalizar otra automatización" - Finaliza específicamente otras automatizaciones que no deberían continuar ejecutándose

Con estas tres herramientas puedes manejar cualquier colisión de automatizaciones.

Trabajar con automatizaciones omnicanal

Una automatización puede ejecutarse en múltiples canales simultáneamente. Esto significa que puedes comenzar a comunicarte con un contacto a través de WhatsApp en una sola automatización y luego continuar por correo electrónico.

¿Cómo funciona?

Escenario de ejemplo:

  1. Trigger: "Contacto escanea código QR" (WhatsApp)

  2. Nodo "Hacer una pregunta": "¿Cuál es tu dirección de correo electrónico?"

  3. Nodo "Editar contacto": Guardar correo electrónico en el contacto

  4. Ahora viene el truco: Nodo "Enviar mensaje"

En el nodo "Enviar mensaje", normalmente tienes el campo "Para" prellenado con "Conversación del trigger". Esto significa que el mensaje se enviará a la conversación de WhatsApp.

Pero: Puedes seleccionar en su lugar "Al contacto".

Tan pronto como lo hagas, aparece un nuevo menú desplegable con solo correo electrónico y SMS como opciones (estos son los únicos canales salientes que admitimos).

Selecciona "Correo electrónico" o "SMS", redacta tu mensaje y se abrirá una segunda conversación dentro de la misma automatización.

¿Por qué no WhatsApp?

WhatsApp no aparece aquí porque tiene un nodo dedicado: "Enviar plantilla de WhatsApp". WhatsApp tiene reglas más estrictas (ventana de 24 horas, solo plantillas aprobadas fuera de la ventana), por eso hay un nodo separado. Para correo electrónico y SMS, usas el nodo regular "Enviar mensaje".

¿Qué significa esto para tu automatización?

A partir del momento en que has abierto una segunda conversación, tienes dos conversaciones paralelas:

  1. La conversación de WhatsApp (del trigger)

  2. La conversación de correo electrónico (del nodo "Enviar mensaje")

Importante: Para todas las acciones basadas en una conversación, ahora debes seleccionar a qué conversación se debe aplicar la acción.

Ejemplo: Actualizar etiqueta

Después del nodo "Enviar mensaje" (correo electrónico), agregas un nodo "Actualizar etiqueta".

  • Antes: Solo un campo "Etiqueta" - claro a qué conversación se refiere (la del trigger)

  • Ahora: Campo adicional en la parte superior: "Conversación" con menú desplegable:

    • "Conversación del trigger" (conversación de WhatsApp)

    • "Conversación del envío de correo electrónico" (conversación de correo electrónico)

Debes elegir explícitamente a qué conversación deseas agregar la etiqueta.

¿Qué nodos se ven afectados?

Todos los nodos que trabajan con conversaciones necesitan la selección:

  • Actualizar etiqueta

  • Marcar conversación como hecha

  • Marcar conversación como spam

  • Eliminar conversación

  • Mover conversación a otra Inbox

  • Asignar conversación

  • Crear nota

Caso de uso ejemplo: Alternativa para problemas de entrega

Escenario: Utilizas un trigger de webhook (por ejemplo, de tu sistema de comercio electrónico) para notificar a los clientes a través de WhatsApp. Pero, ¿qué pasa si el contacto no tiene un número de WhatsApp guardado o no es alcanzable en WhatsApp?

Configuración de la automatización:

  1. Trigger: Webhook entrante (por ejemplo, "Pedido realizado")

  2. Nodo "Enviar plantilla de WhatsApp": Enviar confirmación de pedido por WhatsApp

  3. Rutas de seguimiento del nodo de plantilla de WhatsApp:

    • Ruta de error: El mensaje no pudo ser entregado (por ejemplo, porque el contacto no está en WhatsApp, etc.)

  4. En la ruta de error: Nodo "Enviar mensaje"

    • Para: Contacto

    • Canal: Seleccionar correo electrónico o SMS

    • Redactar la misma confirmación de pedido

  5. Resultado: El contacto está garantizado de recibir la notificación, ya sea por WhatsApp o como alternativa por correo electrónico/SMS

Variables de automatización vs. atributos de contacto

En las automatizaciones existen dos tipos de datos: variables de automatización y atributos de contacto. La diferencia es importante.

La diferencia

Atributos de contacto:

  • Se almacenan permanentemente en el contacto

  • Permanecen incluso después de que finaliza la automatización

  • Pueden usarse en otras automatizaciones

  • Visibles en la vista de detalles del contacto

  • Ejemplos: Nombre, correo electrónico, teléfono, atributos personalizados de contacto

Variables de automatización:

  • Solo existen mientras la automatización se está ejecutando

  • Desaparecen después de que finaliza la automatización

  • NO pueden usarse en otras automatizaciones

  • No son visibles fuera de la automatización

  • Ejemplos: Respuesta de "Hacer una pregunta", respuesta HTTP, etc.

Variable del sistema: Fecha / hora actual

Una variable de automatización particularmente importante es la variable del sistema "Fecha / hora actual".

¿Por qué es tan valiosa?

Puedes usarla para almacenar marcas de tiempo en atributos de contacto y luego utilizarlas para lógica de temporización.

Ejemplo: Seguimiento del último manejo manual

  1. Crea un atributo de contacto "Último manejo manual" (tipo: Fecha/hora)

  2. Automatización con trigger "Conversación marcada como hecha" → Actualizar contacto: Establecer "Último manejo manual" en la variable del sistema "Fecha / hora actual"

  3. Otra automatización con trigger "Conversación nueva/reabierta" → Filtro: "Último manejo manual" es hace más de 30 minutos → Si sí: Al agente AI, Si no: Directamente al equipo

Nodos con variables de salida

Muchos nodos crean variables de automatización después de ser ejecutados. Puedes usarlas en nodos posteriores.

Todos los triggers de mensajes

Cada trigger de mensaje (Nueva conversación entrante, Nuevo mensaje entrante, Conversación reabierta, etc.) genera las siguientes variables:

  • Nombre de la Inbox - En qué Inbox está la conversación

  • Contenido del mensaje - Lo que escribió el contacto

  • Canal - A través de qué canal (por ejemplo, "+491744839743", "test@superchat.de")

Trigger de Webhook

Genera todas las variables mapeadas que definiste en la configuración del trigger bajo "Variables guardadas".

Ejemplo:

Shopify envía order_id → Mapeas a la variable "número_de_pedido" → Usas en el mensaje: "Tu pedido #{{número_de_pedido}} ha sido recibido"

Trigger Manual

Si el trigger manual tiene campos de entrada, estos se generan como variables. Además, el trigger manual también genera el nombre de la Inbox donde se activó la automatización.

Ejemplo:

Campo de entrada "Código de descuento" → El usuario ingresa "VERANO20" → Usas en el mensaje: "Aquí está tu código: #{{código_de_descuento}}"

Nodo de Solicitud HTTP

Genera las siguientes variables:

  • Código de estado - Como texto (por ejemplo, "200", "404", "500")

  • Cuerpo de la respuesta - Toda la respuesta

  • Variables guardadas - Todos los campos que mapeaste desde la respuesta bajo "Variables guardadas"

Ejemplo:

La API devuelve {customer_name: "Max"} → Mapeas a "customer_name" → Usas: "Hola #{{customer_name}}"

Nodo de Formatear Datos

Genera el resultado formateado como una variable.

Ejemplo:

Entrada: "2024-05-20" → Transformación: Formatear a "20 de mayo de 2024" → La variable contiene "20 de mayo de 2024"

Todos los Nodos de Mensajes con Interacción

Los siguientes nodos de mensajes generan la respuesta del cliente como una variable:

  • Lista de WhatsApp - Qué elemento de la lista fue seleccionado

  • Respuestas rápidas de WhatsApp - Qué respuesta rápida fue seleccionada

  • Chat en vivo interactivo - Qué opción fue seleccionada

  • Hacer una pregunta - Lo que respondió el cliente

Importante: La variable contiene ya sea el botón/elemento seleccionado O el texto libre si el cliente escribió algo diferente.

Ejemplo Hacer una pregunta:

  • Preguntas: "¿Cuál es tu nombre?"

  • El cliente responde: "Juan Pérez"

  • La variable contiene: "Juan Pérez"

  • Usas en el siguiente nodo: "¡Gracias #{{ask_question.response}}!"

Nodo Esperar Respuesta

Existe un nodo de seguimiento especial "Esperar respuesta" que también genera la respuesta del cliente como una variable. Este nodo solo puede usarse en dos lugares específicos:

1. Después del nodo "Enviar mensaje":

Puedes colocar "Esperar respuesta" directamente después de cualquier nodo "Enviar mensaje". La automatización entonces hace una pausa hasta que el cliente responde y genera la respuesta como una variable.

2. Después del trigger "Plantilla de WhatsApp enviada":

Puedes colocar "Esperar respuesta" después de este trigger, pero solo si la plantilla seleccionada no contiene elementos interactivos (respuestas rápidas o elementos de lista). Los botones de llamada a la acción están permitidos, pero no elementos de mensaje interactivos.

¿Por qué esta restricción?

Para plantillas con respuestas rápidas o elementos de lista, ya existen rutas de seguimiento automáticas para cada opción de respuesta. El nodo "Esperar respuesta" sería redundante y llevaría a conflictos.

Salida:

El nodo genera la respuesta del cliente como una variable, igual que los otros nodos de mensajes.

Más detalles:

Este nodo se cubre en detalle en el artículo "Nodos de mensajes".

Nodo de Asignación

Si la asignación sigue una regla de "Round Robin" o "Carga de trabajo", el nodo genera las siguientes variables:

  • Nombre - Nombre del usuario asignado

  • Apellido - Apellido del usuario asignado

Ejemplo:

"Tu consulta ha sido remitida a #{{assign_conversation.first_name}}. ¡Nuestro equipo se pondrá en contacto contigo pronto!"

¿Ha quedado contestada tu pregunta?