Saltar al contenido

Tracking de leads en GoHighLevel: de dónde vino cada uno

Tracking de leads en GoHighLevel: ve en tus contactos y oportunidades de qué campaña llegó cada lead, cuándo volvió y cuántas veces convirtió.

HighLevel Playbook Problemas reales y soluciones prácticas.

Menos teoría. Más acción.

HighLevel Playbook

Problemas reales y soluciones prácticas. Lo que importa para trabajar mejor con HighLevel.

Capítulos del video · 15

  1. 00:00Tracking de leads en GoHighLevel: lo que pedían 5 clientes
  2. 01:49Qué es first y last session attribution
  3. 03:58Dónde guarda GoHighLevel el origen de cada contacto
  4. 06:22Por qué los leads de WhatsApp no traen tracking
  5. 07:44Formulario incrustado y código de external tracking
  6. 09:58Cómo se arma una URL con parámetros UTM
  7. 12:25Prueba: el origen del lead en el contacto y la oportunidad
  8. 16:25Segunda conversión: last session attribution
  9. 18:28Campos personalizados de first y last session
  10. 20:29Workflow de nuevo lead: ¿contacto nuevo o existente?
  11. 23:12Contador de conversiones y fecha de última conversión
  12. 26:27Workflow de primera atribución: etiquetas y Update Contact Field
  13. 30:42La atribución en la oportunidad y en el lead que vuelve
  14. 33:06Si tus UTMs salen vacías: activa Pass Input Trigger Parameters
  15. 33:45Claude con MCP: dashboard de tus oportunidades por campaña
En este artículo 8
  1. Recursos del video: la documentación de atribución de GoHighLevel
  2. Paso a paso
  3. Qué es la atribución en GoHighLevel: first y last session
  4. Qué conversiones traen tracking de leads en GoHighLevel y cuáles no
  5. Cómo leer las UTM que llegan a cada contacto
  6. La arquitectura: campos personalizados y workflows modulares
  7. Tu dashboard por campaña con Claude
  8. Preguntas frecuentes

Recursos del video: la documentación de atribución de GoHighLevel

En el video te prometo la documentación de las dos configuraciones que hacen falta cuando mandas anuncios a tu sitio web (09:36). Aquí está, junto con la guía base de atribución. Son artículos de la ayuda oficial de HighLevel y están en inglés:

Para Meta, estos son los parámetros que pide HighLevel. Se pegan tal cual en el anuncio:

utm_source=fb_ad&utm_medium={{adset.name}}&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&campaign_id={{campaign.id}}

Si prefieres verlo en español y paso a paso, tengo la guía de las UTM de Meta Ads en HighLevel y la de cómo conectar Google Ads a GoHighLevel con su plantilla.

Paso a paso

  1. Revisa por dónde te llegan los leads: formularios, encuestas y chat widget de HighLevel traen tracking; WhatsApp no (04:31).
  2. Si tus anuncios llevan a tu web, configura las UTM de Meta y la plantilla de Google Ads con la documentación de arriba (09:36).
  3. Pega el código de External Tracking en el body de tu sitio (08:06).
  4. Crea las carpetas de campos «First session attribution data» y «Last session attribution data» en el contacto, y la de first session en la oportunidad (18:49).
  5. Arma un workflow de nuevo lead por canal que revise si el contacto ya tiene un usuario asignado (21:18).
  6. Conecta con Add to Workflow los módulos sin trigger: asignación, contador de conversiones, primera y última atribución (22:28).
  7. En el de primera atribución, etiqueta por fuente y copia cada valor con Update Contact Field (28:38).
  8. Crea la oportunidad en automático y pásale los datos de first session (30:42).
  9. Activa Pass Input Trigger Parameters en cada Add to Workflow (33:10).
  10. Muestra los campos como columnas con Manage Fields, o pídele a Claude un dashboard por campaña (18:01).

Qué es la atribución en GoHighLevel: first y last session

Sinceramente, es muy molesto que en GoHighLevel, para saber de qué campaña llegó un prospecto, tengas que entrar al contacto, bajar hasta la esquina inferior y darle clic a la atribución. No es práctico ni para ti como dueño de un negocio ni para tus clientes si tienes agencia.

Este sistema nació de lo que me pidieron resolver cinco clientes (00:20). El primero quería saber de qué campaña y anuncio venían sus leads. El segundo perdía mucho tiempo revisando contacto por contacto. El tercero lo quería ver en la oportunidad, no en el contacto. El cuarto quería la primera conversión y también la última. Y el quinto quería saber cuáles leads ya habían convertido antes, cuántas veces y en qué meses.

Antes de construir nada hay que tener claro el concepto. Atribución es saber de qué canal llegó el prospecto: si vio un anuncio de Meta, si buscó en Google, si llegó por Google Ads y qué anuncio exactamente lo hizo convertir. HighLevel ya captura esto en dos lugares (02:25):

  • First session attribution: cómo te encontró ese prospecto la primera vez.
  • Last session attribution (en el contacto aparece como latest): la última vez que volvió a llegar a ti.

Imagínate que alguien convierte por una campaña de Google Ads y, cinco días después, vuelve a llenar un formulario desde un anuncio de Meta. La primera atribución se queda con Google Ads y la última pasa a Meta (02:37). La first session nunca cambia, porque nadie puede llegar otra vez por primera vez (09:02).

Entonces, si HighLevel ya lo captura, ¿cuál es el problema? Que esa data está enterrada en un rinconcito que nadie revisa (03:13). Lo que hace este sistema es sacarla de ahí y ponerla donde la vea tu equipo, tu cliente y hasta Claude.

Qué conversiones traen tracking de leads en GoHighLevel y cuáles no

Abre cualquier contacto y dale clic al icono de Activity. Si HighLevel pudo rastrear al prospecto, ahí vas a ver un historial y, abajo, las opciones First attribution source y Latest attribution source (04:11). Si no pudo, no hay nada. Y eso depende del medio por el que convirtió.

Los que sí traen el origen

Los formularios nativos de HighLevel, las encuestas y el chat widget pasan a HighLevel el tracking que venga en la URL (04:31). La documentación agrega las citas del calendario y los order forms.

Los formularios instantáneos de Meta también, y ahí el tracking es automático si tu subcuenta está integrada con tu cuenta publicitaria (05:41). No necesitas hacer nada más. Pero si tus anuncios mandan a tu sitio web, tienes que poner los parámetros de URL en tus campañas: son las dos configuraciones de los recursos de arriba, una para Google Ads y otra para Meta.

Si tu formulario está incrustado en una web que no es de HighLevel, de una vez pega el código de External Tracking: lo sacas en Settings → External Tracking y va en el body de tu sitio (08:06). He visto que con el formulario embebido y el chat widget la data llega igual, pero no está de más.

WhatsApp: el hueco

Fíjate en un lead que entró por una campaña de WhatsApp con GoGHL: en Activity no hay nada (06:58). HighLevel no rastrea solo el origen de los leads de WhatsApp, y en mis pruebas tampoco lo hacía con la API nativa.

Ten en cuenta que la documentación de HighLevel ya incluye los anuncios de clic a WhatsApp dentro de Paid Social cuando traen el identificador ctwa_clid. Yo no contaría con eso todavía. Lo que a mí me funciona es leer los datos del anuncio que llegan en el primer mensaje, y lo explico en la guía de tracking de WhatsApp en GoHighLevel.

Cómo clasifica HighLevel cada visita

La guía de atribución explica las reglas, en orden. Estas son las que más te van a importar:

Lo que trae la visitaCómo la clasifica HighLevel
utm_source con «adwords», o un gclidPaid Search
utm_source con «fb_ad», o un ctwa_clidPaid Social
Viene de una red social, sin UTMSocial Media
Viene de un buscador, sin UTMOrganic Search
Viene de cualquier otro sitioReferral
Sin sitio de origen ni parámetrosDirect Traffic

Ojo con un detalle de la documentación: utm_source=facebook ya no se usa. Para Meta va fb_ad.

Cómo leer las UTM que llegan a cada contacto

Una URL con parámetros es muy sencilla de leer. Primero va tu dominio, luego un signo de interrogación, y todo lo que sigue son los parámetros: utm_source=google, utm_medium=cpc, utm_campaign=… (09:58). Esos nombres coinciden con los campos de atribución del contacto: source, medium, campaign, content y keyword (11:39).

En la vida real tú no armas esa URL. La arman Google y Meta cuando alguien le da clic a tu anuncio (12:41). Para probar, yo tomé el link de vista previa de un formulario de Sites, le quité el parámetro notrack que trae por defecto y le pegué unas UTM inventadas (10:53). Si no quitas ese parámetro, tu prueba no va a registrar nada.

Llené el formulario y, en Activity, el contacto decía «direct traffic», porque yo pegué la URL a mano (13:35). Pero en la carpeta de first session del sistema ya estaban la fuente google, el medio cpc, la variación del anuncio y la keyword (13:46). Los campos que no venían en la URL, como el ID del conjunto de anuncios de Facebook, se quedan vacíos. Es normal.

Dos cosas que te ahorran dolores de cabeza, según la documentación:

  • Meta no agrega las UTM cuando ves tu anuncio en vista previa. Prueba con el anuncio activo.
  • El formulario tiene que estar en la misma página a la que llega el anuncio. Si el visitante se va a otra página para convertir, la atribución se pierde.

Y una que te pide HighLevel tanto para Meta como para Google: los nombres de campañas, conjuntos y anuncios tienen que ser únicos y no deberías cambiarlos mientras la campaña corre. Lo que lees en el CRM es exactamente ese nombre.

La arquitectura: campos personalizados y workflows modulares

Aquí está el sistema completo. Vamos a ello.

1. Los campos personalizados

Lo primero es crear dos carpetas de campos en el contacto: «First session attribution data» y «Last session attribution data» (18:49). En HighLevel se llaman grupos. Adentro, un campo Multi Line por cada valor que quieras ver: fuente de la sesión, UTM source, medium, campaign, content, keyword, ID de campaña y los que use tu tráfico. Lo único que cambia entre las dos carpetas es el prefijo: first o last (19:13). En el video te enseño mis dos pantallas de campos para que les tomes screenshot.

Después creas la misma carpeta de first session en el objeto Oportunidad, con los mismos campos (19:52).

¿Por qué en la oportunidad? Cuando le preguntaba a Claude por las oportunidades con el tracking solo en el contacto, Claude iba al contacto, sacaba sus IDs, buscaba sus oportunidades y luego hacía el análisis. Funciona, pero gasta muchos más tokens. Si el dato ya está en la oportunidad, le preguntas directo y listo (15:11). Por eso tenía tanto sentido lo que pidió ese cliente.

2. Un workflow de nuevo lead por canal

Yo siempre armo un workflow por canal de conversión: uno para los formularios del sitio web, otro para los formularios instantáneos y otro para el chat widget, todos en una carpeta «New leads» (20:29). Es el mismo que uso para el speed to lead en GoHighLevel.

El de sitio web arranca con Form Submitted y un If/Else que revisa si el contacto ya tiene un usuario asignado (21:18). Por buena práctica, todos los prospectos que entran al CRM se asignan, así que la regla es muy sencilla: prospecto que no está asignado, prospecto que es nuevo. En esa rama actualizo el campo «canal de conversión» con «sitio web», que es una forma más general de agrupar de dónde viene.

3. Componentes reutilizables

En lugar de meter todo en un solo workflow gigante, aíslo cada lógica en su propio workflow sin trigger y los conecto con la acción Add to Workflow (22:28). Así cada uno hace bien una sola cosa y lo puedes reusar desde cualquier canal:

  • Asignar leads aleatoriamente: una acción de Assign User con round robin.
  • Contador incremental de conversiones: el que responde al quinto cliente.
  • Agregar datos de primera atribución y agregar datos de última atribución.

4. El contador de conversiones

Crea un campo de número «Contador de conversiones» y, en el workflow, súmale 1 y guarda el resultado en ese mismo campo (24:42). Luego un campo de fecha «Fecha de última conversión» que toma la fecha actual (25:20). Al final, una etiqueta dinámica: cambias la acción de Standard a Dynamic y armas el nombre con las variables de fecha de Right Now, para etiquetar por día, por mes y por número de conversión (25:57).

Imagínate que tu campaña de Meta reporta 100 leads y en HighLevel solo hay 95. Con estas etiquetas sabes cuáles de esos leads ya existían en tu base de datos (23:41).

5. Primera y última atribución

El workflow «Agregar datos de primera atribución» es el que hace funcionar todo el sistema. Primero pone una etiqueta según la fuente: first session paid search, social media, paid social, referral o direct traffic (26:55). Es una agrupación mayor que la campaña o el anuncio: cuando solo quieres saber cuántos leads te trajo Facebook Ads, filtras por la etiqueta y ya.

Si usas GoGHL, aquí puedes rescatar algo de WhatsApp: cuando el contacto trae la etiqueta de inbound WhatsApp y además la de Instagram o Facebook Lead WhatsApp, que GoGHL agrega solo, lo etiquetas como paid social (27:39).

Después viene una acción Update Contact Field. En cada uno de tus campos (First UTM campaign, First UTM content…) eliges el valor que HighLevel ya extrajo en Contact → Attribution → First (29:31). Si un valor no aparece en la lista, lo escribes a mano (30:15). El de última atribución es igual, pero con Latest y los campos last.

6. La atribución en la oportunidad

El workflow crea la oportunidad en la primera etapa del pipeline y manda al contacto a otro módulo que la busca con Find Opportunity y la actualiza con los mismos valores de first session (31:03). Por eso la oportunidad tiene que crearse en automático: si la creas a mano hay maneras de llenarla, pero no es lo ideal.

Y si el lead ya existía, el If/Else lo manda por la otra rama: contador +1 y datos de última atribución (32:24).

El error que deja tus UTM vacías

Esto sí es importante. En cada acción Add to Workflow activa Pass Input Trigger Parameters (33:10). Si lo dejas apagado, el siguiente workflow no recibe la información del contacto y tus campos de UTM y de first session se quedan vacíos. Si armaste todo y no ves nada, revisa esto primero.

Con los campos llenos, en la lista de contactos le das a Manage Fields, buscas «first» y marcas todo: ya ves el origen de todos tus leads en columnas, sin abrir uno por uno (18:01).

Tu dashboard por campaña con Claude

Aquí está el spoiler del principio. Con el tracking dentro de la oportunidad, conecté Claude a la subcuenta por MCP con el location ID y le pedí, sin un prompt preparado, que analizara la first session de cada oportunidad junto con su etapa, su estado y su valor (33:45).

En un par de minutos me armó un dashboard: 13 oportunidades, 255,000 en el pipeline, una ganada, dos perdidas y el desglose por campaña con los nombres de las UTM de prueba (36:18). Le puedes pedir que lo haga en HTML interactivo y con filtros; va a gastar más tokens, pero lo hace.

Ojo: en el video Claude vio 14 oportunidades y solo cargó 13 (35:53). Si vas a usar ese dashboard como reporte para un cliente, coteja los totales con HighLevel. Si todavía no lo tienes conectado, aquí te explico cómo conectar Claude a GoHighLevel con MCP.

Y si además quieres que Meta sepa cuáles de esos leads terminaron en venta, para que optimice tus campañas con eso, el siguiente paso es la Meta CAPI en GoHighLevel.

Úsalo en tu negocio, véndelo como un servicio a tus clientes o regálalo como un diferenciador. Los límites los pone tu creatividad.

Menos teoría. Más acción.

HighLevel Playbook

Problemas reales y soluciones prácticas. Lo que importa para trabajar mejor con HighLevel.

Gratis y directo a tu correo

Preguntas frecuentes

¿A cuál le hago más caso, a la first o a la last session?

Yo, en lo personal, le hago más caso a la first session (16:33): es el canal que de verdad te consiguió al prospecto. La last session sirve para saber qué lo hizo volver, sobre todo si tienes campañas de remarketing.

¿Por qué mi lead dice Direct traffic si llegó de un anuncio?

Casi siempre es porque la URL llegó sin parámetros: probaste en la vista previa del anuncio, pegaste el link a mano o el visitante se fue a otra página antes de llenar el formulario. Revisa también que las UTM estén escritas exactamente como dice la documentación, porque distingue mayúsculas y minúsculas.

¿Funciona con un formulario que no es de GoHighLevel?

Puede funcionar. El External Tracking de HighLevel detecta algunos formularios de terceros y les captura las UTM y la URL de la página. Revisa la guía de formularios externos de los recursos de arriba para ver qué formularios soporta.

Si uso formularios instantáneos de Meta, ¿necesito este sistema?

Para que el origen llegue, no: con la cuenta publicitaria integrada el tracking es automático. Para verlo sin abrir contacto por contacto, en la oportunidad o en un dashboard, sí. Eso es lo que resuelve.

¿Esto reemplaza mi video anterior de tracking?

Sí. Ese sistema etiquetaba por fuente y copiaba algunos valores; este agrega la última atribución, el contador de conversiones y los datos en la oportunidad. Si ya tenías el anterior, este es el que te recomiendo usar.

¿Te sirvió este tutorial?

Sigue con estos

Ver todos los tutoriales de Anuncios y tracking

Ya casi estás dentro

Completa tus datos para continuar

En el siguiente paso podrás crear tu cuenta directamente en el sitio oficial de HighLevel y comenzar tus 30 días gratis.

Tu información está segura.