Configurando webhooks en GoHighLevel: guía para quien nunca los usó
Los webhooks son uno de esos conceptos que suenan intimidantes al principio, pero que en la práctica resultan bastante manejables una vez que entiendes qué hacen y para qué sirven. Esta guía está pensada para quienes trabajan con GoHighLevel y quieren empezar a usar webhooks sin tener experiencia previa en desarrollo o integraciones avanzadas.
Qué es un webhook y por qué importa en GoHighLevel
Un webhook es, en esencia, una notificación automática que un sistema envía a otro cuando ocurre un evento concreto. A diferencia de una integración que «pregunta» constantemente si hay novedades (lo que se llama polling), el webhook «avisa» en el momento en que algo sucede.
En el contexto de GoHighLevel, esto significa que puedes hacer que la plataforma envíe datos a una herramienta externa —como Make, Zapier, n8n, un CRM propio o cualquier servicio que tenga una URL de recepción— cada vez que ocurra algo relevante: un contacto nuevo, un formulario enviado, una cita agendada, un pago completado, etc.
¿Para qué sirve en la práctica?
- Sincronizar contactos con una base de datos externa en tiempo real.
- Disparar notificaciones personalizadas en Slack, Telegram u otras plataformas.
- Activar flujos de trabajo en herramientas de automatización como Make o n8n.
- Registrar eventos en hojas de cálculo o sistemas de análisis propios.
Si tu caso de uso es simplemente mover datos entre GoHighLevel y otra aplicación popular, antes de configurar un webhook evalúa si existe una integración nativa o un conector en Zapier/Make, ya que puede ser más sencillo.
Cómo funciona un webhook: el concepto de URL de destino
Antes de tocar nada en GoHighLevel, necesitas una URL de destino (también llamada endpoint). Esta es la dirección a la que la plataforma enviará los datos. Esa URL debe pertenecer a un servicio que esté preparado para recibirlos.
Algunas opciones habituales para principiantes:
- Make (Makе.com): crea un escenario con el módulo «Webhooks > Custom webhook» y te generará una URL lista para usar.
- n8n: usa el nodo «Webhook» y obtendrás tu URL de escucha.
- Zapier: en el editor de Zaps, selecciona «Webhooks by Zapier > Catch Hook».
- Webhook.site: servicio gratuito para inspeccionar y probar la carga de datos sin configurar nada. Muy útil para entender qué envía GoHighLevel antes de conectarlo a tu herramienta real.
Ten en cuenta que la URL debe ser pública y accesible desde internet. Una URL de localhost o de una red interna no funcionará.
Dónde configurar webhooks en GoHighLevel
GoHighLevel permite configurar webhooks desde dos lugares principales, y es importante no confundirlos:
1. Webhooks dentro de un Workflow (automatización)
Esta es la opción más común para la mayoría de los usuarios. Dentro de un Workflow puedes añadir una acción de tipo «Webhook» que se dispara cuando un contacto llega a ese punto del flujo.
Pasos:
- Ve a Automation > Workflows en el menú lateral de tu subcuenta.
- Crea un nuevo workflow o abre uno existente.
- Añade o selecciona el trigger (desencadenante) que quieras: formulario enviado, etiqueta añadida, etc.
- Haz clic en el botón «+» para añadir una acción y busca «Webhook» o «Custom Webhook».
- En el campo URL, pega la URL de destino que obtuviste en tu herramienta externa.
- Selecciona el método HTTP. En la mayoría de los casos será POST.
- Si el servicio receptor requiere cabeceras de autenticación (por ejemplo, un token Bearer), añádelas en la sección Headers.
- Guarda la acción y publica el workflow.
El body del webhook (los datos que se envían) puede ser JSON personalizado o bien usar las variables de GoHighLevel para incluir datos del contacto, la cita, el formulario, etc. Usa el selector de variables —el icono de llaves {{}}— para insertar campos dinámicos.
2. Webhooks a nivel de agencia o integración API
Si trabajas como administrador de agencia y necesitas recibir eventos globales (por ejemplo, cuando se crea una subcuenta), GoHighLevel dispone de configuraciones de webhook en la sección de Settings > Integrations o en el panel de la API, dependiendo de la versión y el plan que tengas. Esta opción es más avanzada y suele requerir familiaridad con la documentación oficial de la API de HighLevel. Ten en cuenta que las funcionalidades disponibles en esta sección varían según el plan contratado.
Probando que tu webhook funciona correctamente
Antes de activar un webhook en producción, es fundamental verificar que los datos llegan bien al destino.
Flujo de prueba recomendado:
- Configura la URL de Webhook.site como destino temporal.
- Activa el workflow en modo Test o dispara el trigger manualmente si la plataforma lo permite.
- Revisa en Webhook.site qué datos recibiste: comprueba que los campos que necesitas (nombre, email, teléfono, etc.) están presentes y con el formato esperado.
- Una vez validado el payload, sustituye la URL por la de tu herramienta real (Make, n8n, etc.).
- Realiza una prueba final end-to-end para confirmar que el flujo completo funciona.
GoHighLevel incluye en algunos workflows la opción de ver el historial de ejecuciones, lo que te permite comprobar si el webhook se disparó y si recibió una respuesta de éxito (código HTTP 2xx) o un error.
Errores comunes y cómo resolverlos
La mayoría de los problemas con webhooks en GoHighLevel tienen soluciones sencillas una vez que sabes dónde mirar.
El webhook no se dispara
- Verifica que el workflow esté publicado y no en borrador.
- Comprueba que el trigger está correctamente configurado y que el evento realmente se está produciendo.
- Revisa si hay filtros o condiciones en el workflow que impidan que el contacto llegue a la acción del webhook.
Recibo un error HTTP (4xx o 5xx)
- Un error 400 suele indicar que el body enviado no tiene el formato que espera el receptor. Revisa si la URL requiere JSON y si lo estás enviando correctamente.
- Un error 401 o 403 apunta a un problema de autenticación: falta o es incorrecto el header de autorización.
- Un error 5xx es un fallo en el servidor receptor, no en GoHighLevel. Revisa el estado del servicio externo.
Los datos llegan vacíos o con campos incorrectos
- Asegúrate de que las variables dinámicas están bien escritas y hacen referencia a campos que realmente existen en el contacto.
- Algunos campos solo están disponibles si el trigger los incluye (por ejemplo, los datos de una cita solo están disponibles si el trigger es de tipo «Appointment»).
La URL no es alcanzable
- Si estás probando con un servidor local, GoHighLevel no podrá conectarse. Usa un servicio de túnel como ngrok durante el desarrollo, o trabaja directamente con Make/n8n en la nube.
El webhook se dispara varias veces
- Revisa si tienes el mismo workflow duplicado o si el trigger se activa en múltiples etapas. Implementa lógica de deduplicación en el servicio receptor si es necesario.
Cuándo los webhooks no son la mejor solución
Los webhooks son potentes, pero no son siempre la opción más adecuada. Si necesitas sincronizar datos de forma bidireccional (que los cambios en el sistema externo también actualicen GoHighLevel), un webhook por sí solo no es suficiente: necesitarás también llamadas a la API de GoHighLevel desde el otro sistema, lo que aumenta la complejidad técnica considerablemente.
Tampoco son ideales si no tienes un servicio receptor configurado y no quieres usar herramientas de automatización intermedias: en ese caso, las integraciones nativas o los conectores de Zapier/Make suelen ser más accesibles para perfiles no técnicos.
Con estos fundamentos ya tienes lo necesario para configurar tu primer webhook en GoHighLevel, probar que funciona y diagnosticar los problemas más frecuentes. La práctica es la mejor manera de ganar confianza con esta herramienta.
¿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