Conecta tu cuenta de GoHighLevel

Conecta tu CRM una vez y olvídate: cada contacto que etiquetes en GoHighLevel recibirá la llamada de tu agente de Calligence, y el resultado volverá solo al contacto — sin exportar hojas de cálculo ni copiar datos a mano.

Qué hace esta integración

El circuito completo, en tres movimientos:

1 · GoHighLevel

Tu workflow se dispara (por ejemplo, al añadir una etiqueta a un contacto) y envía el contacto a Calligence.

2 · Calligence

El contacto entra como lead en tu campaña y el agente de IA le llama dentro de su ventana horaria.

3 · De vuelta en GHL

Tras cada llamada, el contacto recibe una nota con el resumen; al cerrar el lead, también una etiqueta con el resultado.

En concreto, después de cada llamada verás en el propio contacto de GoHighLevel:

Calligence nunca crea contactos nuevos en tu CRM ni duplica los existentes — solo escribe notas y etiquetas sobre el contacto que tú enviaste.

Antes de empezar

1

Acceso de administrador a la sub-cuenta (location) de GoHighLevel donde están tus contactos — no a la cuenta Agency. El token del paso 2 se crea dentro de la sub-cuenta; es el error más común.

2

Un usuario administrador en Calligence — la página Integraciones solo es visible para administradores de tu organización.

3

Una campaña creada en Calligence (o créala sobre la marcha en el paso 3).

4

¿Tu CRM se llama LeadConnector u otra marca? Es GoHighLevel con marca blanca — los menús son los mismos. Esta guía navega por nombres de menú, no por URLs, así que te sirve igual.

Paso 1 — Crea la conexión en Calligence

Inicia sesión en Calligence y abre Integraciones en el menú lateral. Pulsa + Crear conexión y rellena el formulario:

Deberías ver la conexión en la lista, con estado activo y el token enmascarado (solo los últimos 4 caracteres).

Paso 2 — Crea el token en GoHighLevel

Dentro de tu sub-cuenta de GoHighLevel:

  1. Ve a Settings → Private Integrations. Si no ves esa opción, actívala primero en Settings → Labs.
  2. Pulsa Create new Integration y ponle un nombre, por ejemplo Calligence.
  3. En los permisos (scopes), marca exactamente estos dos: View Contacts y Edit Contacts. No necesita ningún otro permiso.
  4. Crea la integración y copia el token ahora — GoHighLevel solo lo muestra una vez.

Importante: el token correcto empieza por pit-. Las claves de API antiguas de GoHighLevel (las de la versión 1, cadenas largas que empiezan por eyJ) no funcionan — Calligence las rechaza al crear la conexión.

Vuelve a Calligence y pega el token (y el Location ID) en el formulario del paso 1. Al guardar, Calligence comprueba las credenciales contra GoHighLevel antes de crear nada: si el token no es válido, ha caducado o pertenece a otra sub-cuenta distinta de la del Location ID, verás un error en el formulario y la conexión no se creará. Si todo encaja, la verás creada y activa en la lista de Integraciones.

Paso 3 — Asocia la conexión a una campaña y copia tu URL

En Calligence, abre Campañas y crea una campaña nueva (o edita una existente). En el campo Conexión (CRM), selecciona la conexión que acabas de crear y guarda.

Al guardar, Calligence te muestra la URL de webhook de esa campaña — "Conexión asociada. Pega esta URL en tu workflow de GoHighLevel" — con un botón Copiar. Si editas la campaña más adelante, la misma URL aparece como URL actual.

Trata esta URL como una contraseña. Cualquiera que la tenga puede crear leads en tu campaña y provocar llamadas. No la publiques ni la compartas fuera de tu workflow de GoHighLevel. Si crees que se ha filtrado, puedes rotarla tú mismo desde la campaña (Editar → botón Rotar junto a la URL): la anterior deja de funcionar al instante y solo tendrás que pegar la nueva en tu workflow.

Paso 4 — Configura el workflow en GoHighLevel

De vuelta en tu sub-cuenta de GoHighLevel:

  1. Ve a Automation → Workflows y crea un workflow nuevo.
  2. Como disparador (trigger), añade Contact Tag con la condición Tag added y una etiqueta dedicada, por ejemplo calligence. Así controlas exactamente qué contactos entran en la campaña: etiquetas un contacto, y Calligence le llama.
  3. Añade una acción de tipo Webhook, método POST, y pega en el campo URL la URL de tu campaña (paso 3). No necesitas configurar cabeceras ni cuerpo: el envío estándar del webhook ya incluye la información del contacto que Calligence necesita.
  4. Guarda y — esto es lo que más se olvida — publica el workflow (Publish). En borrador, el botón de prueba funciona, pero los contactos reales no disparan nada.

Deberías ver el workflow como Published en la lista de workflows.

Paso 5 — Prueba el circuito completo

La mejor prueba es una de verdad, contigo al otro lado del teléfono:

  1. Crea en GoHighLevel un contacto de prueba con tu propio móvil en formato internacional, por ejemplo +34600111222.
  2. Añádele la etiqueta del workflow (calligence). El workflow se dispara y envía el contacto a Calligence.
  3. En Calligence, abre la campaña: deberías ver el contacto como lead en unos segundos.
  4. Espera la llamada. Se realiza dentro de la ventana horaria configurada en tu organización y en la disponibilidad del lead — si estás fuera de ventana, quedará programada.
  5. Al terminar la llamada, abre el contacto en GoHighLevel: deberías ver la nota Calligence — resumen de la llamada: en su timeline y, si el lead quedó cerrado, la etiqueta Calligence: … con el resultado.

Si algo no cuadra, GoHighLevel te dice mucho: abre el workflow y mira sus Execution Logs — ahí verás si el webhook se disparó y qué respondió.

Detener llamadas desde tu CRM

Si un lead se resuelve por otra vía — el comercial lo cerró por teléfono, la oportunidad se ganó o se cerró en GoHighLevel — puedes avisar a Calligence desde ese mismo workflow para que no siga llamando. Al recibir el aviso, Calligence:

No confundas las dos URLs de tu campaña

La URL del paso 3 inicia llamadas; añadirle /stop-lead al final la convierte en la URL que las detiene. Pegar la URL equivocada en el workflow de "parar" haría que Calligence llamase al contacto en vez de dejar de hacerlo.

URL para RECIBIR leads (inicia llamadas)
…/api/connectors/webhook/<token>

La del paso 3 — la que ya tienes en tu workflow de inscripción.

URL para DETENER llamadas
…/api/connectors/webhook/<token>/stop-lead

La misma URL, con /stop-lead al final.

De vuelta en tu sub-cuenta de GoHighLevel:

  1. Ve a Automation → Workflows y crea un workflow nuevo (o edita uno existente).
  2. Como disparador (trigger), usa el que marque para ti el cierre del lead — por ejemplo Opportunity Status Changed a Ganado o Cerrado.
  3. Añade una acción de tipo Webhook, método POST, y pega en el campo URL la URL para DETENER llamadas — tu URL de campaña (paso 3) con /stop-lead al final. Nunca la URL de inscripción.
  4. Opcional: añade un campo de Custom Data llamado reason con el motivo del cierre, por ejemplo Cerrado por el comercial. Se muestra como Motivo en Calligence y en la nota del CRM — máximo 64 caracteres, si escribes más se recorta.
  5. Guarda y publica el workflow (Publish). En borrador no se dispara con contactos reales.

El aviso es idempotente: repetirlo no hace nada nuevo. Si el lead ya había llegado a un estado final por su cuenta — éxito, no interesado o inválido — su estado no cambia; "Trabajado fuera" solo se aplica a leads que seguían activos.

Esto no es una lista de exclusión permanente: detiene la llamada dentro de la campaña actual. Si más adelante vuelves a subir el mismo contacto a una campaña nueva, Calligence le llamará de nuevo.

Solución de problemas

El webhook no se dispara

Casi siempre es una de dos: el workflow está en borrador (publícalo — el botón de prueba funciona en borrador, los contactos reales no), o el disparador no coincide (revisa que la etiqueta del trigger es exactamente la que añades al contacto).

El contacto no aparece como lead en Calligence

Comprueba que el contacto tiene teléfono — un contacto sin teléfono no puede recibir llamadas y se descarta. Añádele el teléfono y vuelve a disparar el workflow (quita la etiqueta y vuelve a ponerla). Si tampoco así entra, mira los Execution Logs del workflow en GoHighLevel.

El lead entra pero nunca recibe la llamada

Usa formato internacional (+34…) en el teléfono, y revisa la ventana horaria de llamadas de tu organización y el estado de la campaña — una campaña pausada acumula los leads y llama al reanudarla.

Errores 401 o 403 en los Execution Logs

El token no tiene los permisos necesarios o ha sido rotado. Crea un token nuevo en GoHighLevel (con View Contacts y Edit Contacts) y actualízalo en Calligence con Rotar token en Integraciones. Mientras el token esté mal, ninguna llamada de esa conexión sincroniza.

Reenvié el mismo contacto y no pasó nada

Hay una protección antiduplicados: reintentos del mismo contacto en menos de ~10 minutos se ignoran. Espera 10 minutos y vuelve a disparar el workflow.

"El proveedor ha rechazado estas credenciales" al crear la conexión

Calligence ha preguntado a GoHighLevel y ha recibido un no. Hay dos causas posibles y desde fuera no se distinguen, así que revisa las dos: el token (¿está bien copiado, sigue existiendo, tiene View Contacts y Edit Contacts?) y el Location ID (¿es el de la misma sub-cuenta donde creaste el token?). Un token de la sub-cuenta A con el Location ID de la sub-cuenta B es el fallo más habitual.

Creé el token en la cuenta equivocada

El token debe crearse en la sub-cuenta (location) donde viven tus contactos, no a nivel Agency. Si lo creaste en la agencia, créalo de nuevo dentro de la sub-cuenta y actualízalo en Calligence.

Creo que se ha filtrado la URL de mi campaña

Rótala: abre la campaña, pulsa Editar y usa el botón Rotar que hay junto a la URL. La URL anterior deja de funcionar de inmediato, así que pega la nueva en tu workflow de GoHighLevel en cuanto la tengas — mientras tanto, los contactos que envíe el CRM se descartan. Rotar la URL no toca tu conexión ni tu token de GoHighLevel: las demás campañas siguen funcionando igual.

¿Se crean contactos duplicados en GoHighLevel?

No. Calligence escribe notas y etiquetas sobre el contacto existente — nunca crea contactos en tu CRM, y reintentar un envío no duplica notas ni etiquetas.

Envié el aviso de parada y Calligence sigue llamando

Revisa, en este orden: que la URL del webhook termina en /stop-lead (no la URL de inscripción del paso 3); que el contacto ya existe como lead en Calligence — un aviso sobre un contacto que nunca entró no tiene nada que detener; y que la campaña tiene una conexión activa. Si las tres están bien, mira los Execution Logs del workflow en GoHighLevel para ver qué respondió Calligence.

¿Sigues atascado? Escríbenos y lo miramos contigo.

← Volver a la documentación