Cómo evitar que un workflow envíe mensajes duplicados en GoHighLevel
Los mensajes duplicados son uno de los problemas más frecuentes al trabajar con automatizaciones en GoHighLevel. Un contacto recibe el mismo SMS, correo o mensaje de WhatsApp dos, tres o incluso más veces, lo que daña la experiencia del usuario y puede afectar la reputación del remitente. Este tutorial explica por qué ocurre este problema y cómo configurar los workflows para evitarlo de forma sistemática.
Por qué se producen los mensajes duplicados
Antes de aplicar soluciones, conviene entender las causas más habituales:
- El contacto entra al mismo workflow más de una vez. Si el trigger del workflow se activa cada vez que se cumple una condición (por ejemplo, cada vez que se añade una etiqueta), y esa condición se cumple varias veces, el contacto puede iniciar el flujo repetidas veces.
- Hay varios workflows que incluyen la misma acción de mensaje. Dos automatizaciones distintas pueden enviar el mismo contenido si no están bien delimitadas.
- El trigger es demasiado genérico. Eventos como «Contact Changed» o «Tag Added» pueden dispararse más veces de las esperadas si otras automatizaciones o acciones manuales modifican al contacto.
- Pruebas de desarrollo no eliminadas. Workflows creados durante fases de prueba y olvidados en estado activo siguen ejecutándose en producción.
Configurar el workflow para que admita una sola entrada por contacto
Esta es la medida más directa y eficaz para la mayoría de los casos.
- Abre el workflow desde Automation → Workflows.
- Haz clic en el icono de Configuración (rueda dentada) o en la pestaña Settings dentro del editor del workflow.
- Busca la opción «Allow re-entry» o «Permitir reentrada» (el nombre puede variar según el idioma de la interfaz).
- Desactiva esta opción si quieres que cada contacto solo pueda ejecutar el workflow una vez.
- Si el caso de uso requiere que el contacto pueda volver a entrar (por ejemplo, en flujos de renovación anual), activa la reentrada pero añade un filtro de condición antes del paso de envío para verificar si ya se le envió ese mensaje.
Nota: Desactivar la reentrada es suficiente en la mayoría de los flujos de nutrición o bienvenida. Para flujos recurrentes, la combinación de reentrada controlada y condiciones es más adecuada.
Usar condiciones y filtros antes de cada acción de mensaje
Añadir un paso de condición (If/Else) antes de las acciones de envío permite comprobar el estado del contacto antes de ejecutar el mensaje.
- En el editor del workflow, haz clic en «+» para añadir un paso antes de la acción de mensaje.
- Selecciona «If/Else» o «Condición».
- Define una condición que verifique si el contacto ya recibió el mensaje. Las opciones más útiles son:
- Campo personalizado: Crea un campo de tipo «Checkbox» o «Fecha» llamado, por ejemplo, «Email bienvenida enviado». Cuando el workflow envíe el mensaje, añade una acción posterior para marcar ese campo.
- Etiqueta de control: Añade una etiqueta como «workflow-bienvenida-enviado» después del envío. La condición comprueba si la etiqueta ya existe antes de enviar.
- En la rama «Sí» (la condición ya se cumple), usa una acción «Wait» o simplemente no conectes ninguna acción de envío.
- En la rama «No» (el contacto no ha recibido el mensaje), coloca la acción de envío.
Este método es más robusto porque funciona incluso si el mismo contacto entra por diferentes triggers o workflows.
Auditar y consolidar workflows activos
Muchos duplicados no vienen de la configuración interna de un workflow, sino de tener varios workflows activos que se solapan.
- Ve a Automation → Workflows y filtra por estado «Published» o «Active».
- Revisa uno a uno los workflows que incluyen acciones de mensaje similares (mismo asunto de correo, mismo texto de SMS).
- Usa la función de búsqueda o los nombres descriptivos para detectar duplicados de desarrollo o versiones antiguas.
- Desactiva o elimina los workflows obsoletos. Si no estás seguro de si un workflow sigue siendo necesario, pásalo a estado «Draft» en lugar de eliminarlo directamente.
- Documenta en el nombre o en la descripción del workflow su propósito y el trigger exacto. Un nombre como «[ACTIVO] Bienvenida lead - Tag: nuevo-lead» es mucho más claro que «Workflow 3».
Errores comunes y cómo resolverlos
El contacto recibe el mensaje justo después de desactivar la reentrada
Si un contacto ya estaba dentro del workflow cuando desactivaste la reentrada, seguirá avanzando por los pasos pendientes. La opción de reentrada solo afecta a las nuevas entradas. Para detener ejecuciones en curso, busca la opción «Remove from workflow» desde el perfil del contacto o usa la vista de contactos activos del workflow.
El trigger «Tag Added» se dispara varias veces
Esto ocurre cuando otras automatizaciones añaden y eliminan la misma etiqueta cíclicamente. Revisa todos los workflows que modifiquen esa etiqueta y asegúrate de que no forman un bucle. Una solución sencilla es usar etiquetas de «entrada» distintas de las etiquetas de «control interno».
El If/Else no detecta la etiqueta aunque existe en el contacto
Comprueba que el nombre de la etiqueta en la condición coincide exactamente con el nombre real (incluyendo mayúsculas, tildes y espacios). GoHighLevel distingue entre «Lead Nuevo» y «lead nuevo». También verifica que la acción de añadir la etiqueta esté ubicada después del paso de envío, no antes.
El workflow envía mensajes duplicados solo a algunos contactos
Esto puede indicar que el trigger se está activando por dos fuentes distintas: por ejemplo, una integración externa y una acción manual. Revisa el historial del workflow para ese contacto (disponible en su perfil bajo «Workflow History» o similar) para ver cuántas veces y desde qué origen entró al flujo.
Las funciones disponibles varían según el plan contratado
Algunas opciones de configuración avanzada, como ciertos tipos de condiciones o el historial detallado de ejecuciones, pueden estar limitadas según el plan que tengas activo. Si no encuentras una opción mencionada en este tutorial, consulta la documentación oficial de HighLevel o contacta con el soporte de tu proveedor para confirmar su disponibilidad en tu cuenta.
Cuándo GoHighLevel no es la mejor opción
Si tu operación requiere una lógica de deduplicación muy sofisticada —como cruzar datos en tiempo real con un CRM externo o aplicar reglas de negocio complejas antes de cada envío—, puede que necesites complementar GoHighLevel con una herramienta de orquestación externa (como Make o Zapier con lógica condicional avanzada) o plantearte si una plataforma de marketing automation más especializada se ajusta mejor a tu caso de uso. GoHighLevel es una solución generalista potente, pero tiene límites en escenarios de alta complejidad lógica.
¿Sigues con dudas?
Si esta guía no resolvió tu caso, describe tu escenario exacto. Cada duda que recibimos se convierte en un nuevo tutorial.
Enviar mi duda