Para pasar los parámetros UTM a tu CRM, agrega campos ocultos a cada formulario de leads (utm_source, utm_medium, utm_campaign, utm_content, utm_term, además de identificadores de clic como gclid y fbclid), llénalos con la URL de la página de aterrizaje o con los valores que guardaste cuando el visitante llegó por primera vez, y vincula cada campo oculto con una propiedad del contacto en el CRM. Al enviarse el formulario, los datos de campaña viajan con el lead. Sin ese último paso, los UTM se pierden en la primera página y tu CRM muestra "Directo" o "Sitio web" para leads que en realidad vinieron de anuncios pagados.
Esta guía cubre la configuración de los campos, la lógica de captura, lo específico de HubSpot y Kommo, una lista de pruebas y los casos en los que los campos ocultos no alcanzan.
¿Por qué los UTM no llegan solos al CRM?
Los parámetros UTM viven en la URL. Un visitante llega a tusitio.com/demo?utm_source=meta&utm_campaign=q4_demo, pasa a la página de precios y llena el formulario en una tercera página. Para entonces la URL ya no trae UTM. Si nada los guardó, el formulario envía nombre, correo y teléfono, y la fuente se pierde. Herramientas como GA4 conservan la fuente de la sesión, pero no la escriben en el registro del lead dentro de tu CRM, que es donde se registran las ventas.
Muchos CRM registran su propia "fuente original" para los formularios que alojan, pero esos valores suelen ser generales (Social pagado, Búsqueda orgánica) y no dicen qué campaña, conjunto de anuncios o anuncio generó la venta. Los campos ocultos te dan ese detalle. Si tus UTM son inconsistentes, arregla eso primero con nuestra guía de nomenclatura de UTM.
¿Qué campos ocultos debes crear?
Crea una propiedad en el CRM y un campo oculto en el formulario por cada parámetro. Usa el mismo nombre interno en ambos lados para que el mapeo sea obvio.
| Campo oculto | Tipo de propiedad en el CRM | Valor de ejemplo | Para qué sirve |
|---|---|---|---|
| utm_source | Texto de una línea | meta | Plataforma o sitio de origen |
| utm_medium | Texto de una línea | paid_social | Tipo de canal |
| utm_campaign | Texto de una línea | q4_demo_mx | Reportes por campaña |
| utm_content | Texto de una línea | video_testimonio_v2 o el ID del anuncio | Reportes por creativo |
| utm_term | Texto de una línea | software de atribucion | Palabra clave o audiencia |
| gclid | Texto de una línea | (ID de clic largo de Google) | Subir conversiones offline a Google Ads |
| fbclid | Texto de una línea | (ID de clic de Meta) | Emparejar leads con Meta vía API de Conversiones |
| landing_page | Texto de una línea | /demo | Qué página convirtió la visita |
| first_touch_* (opcional) | Texto de una línea | los mismos campos, solo primera visita | Comparar primer toque vs último toque |
Usa propiedades de texto, no listas desplegables. La documentación de HubSpot indica que en campos desplegables y de opción única el valor del query string debe coincidir exactamente con las opciones de la propiedad, así que cualquier nombre de campaña nuevo fallaría sin avisar.
¿Cómo configurar los campos ocultos de UTM paso a paso?
- Acuerda una nomenclatura para los valores de source, medium y campaign, por escrito y compartida con la agencia.
- Crea las propiedades en el CRM de la tabla anterior en el contacto (y, si tu CRM los usa, en el negocio o en el lead).
- Agrega los campos ocultos a todos los formularios: solicitud de demo, contacto, cotización, descarga, preformulario de chat. Un formulario sin ellos se vuelve un hoyo en tus reportes.
- Captura los valores al aterrizar. Cuando un visitante llega con UTM o IDs de clic en la URL, guárdalos en almacenamiento propio (una cookie de tu dominio o localStorage). Guarda los de primer toque una sola vez y sobrescribe los de último toque en cada visita etiquetada nueva.
- Llena los campos al cargar el formulario, leyendo primero la URL y luego el almacenamiento. Lo puede hacer un administrador de etiquetas, un plugin de formularios o un script corto de tu desarrollador.
- Etiqueta cada anuncio. En el Administrador de anuncios de Meta, pon los parámetros en el campo de parámetros de URL del anuncio y usa valores dinámicos como {{campaign.name}}, {{adset.name}}, {{ad.name}} y {{ad.id}}. En Google Ads deja activo el etiquetado automático para que se agregue el gclid y usa valores ValueTrack como {campaignid} y {creative} en una plantilla de seguimiento.
- Prueba antes de lanzar con la lista de abajo.
- Arma el reporte: leads, leads calificados, negocios e ingresos agrupados por utm_campaign y utm_content.
¿Cómo funcionan los campos ocultos en HubSpot?
HubSpot lo soporta de forma nativa. Según el artículo de su base de conocimiento sobre campos ocultos en formularios, abres el campo en el editor y activas el interruptor Campo oculto, y los campos ocultos pueden capturar parámetros de URL como los UTM y guardarlos en propiedades del contacto al enviarse. La función está disponible en todos los planes. Lo que debes saber:
- Un campo marcado como Obligatorio no se puede ocultar.
- Si está activa la opción de rellenar campos para visitantes recurrentes, el valor guardado de un contacto que regresa puede sobrescribir el valor oculto, según el tipo de campo.
- El artículo de HubSpot sobre rellenar campos con un query string explica que los campos se llenan cuando la URL trae el nombre interno de la propiedad y un valor (por ejemplo ?utm_campaign=q4_demo), que los campos dependientes no se pueden llenar así y que la página necesita contenido de HubSpot o su código de seguimiento.
El query string solo existe en la página de aterrizaje. Si la gente navega antes de convertir, sigues necesitando el paso de almacenamiento (paso 4) para llevar los valores hasta el formulario.
¿Y los leads de WhatsApp en Kommo?
Los anuncios Click-to-WhatsApp no pasan por un formulario web, así que los campos ocultos no aplican. Kommo lo resuelve de otra forma. Su artículo de ayuda sobre cómo rastrear campañas de WhatsApp con UTM explica que agregas los parámetros en el Administrador de anuncios de Meta, en la sección Seguimiento, parámetros de URL del anuncio, y Kommo los guarda en la tarjeta del lead, en Estadísticas, Datos de seguimiento. Acepta utm_source, utm_medium, utm_campaign, utm_content, utm_term, parámetros personalizados y marcadores dinámicos como {{campaign.name}}, {{adset.id}} y {{ad.id}}. Kommo también aclara que los cambios pueden tardar hasta 6 horas en verse, que los parámetros modificados no sobrescriben valores ya guardados en un lead y que el lead solo se crea cuando la persona envía un mensaje. Para el panorama completo, lee nuestra guía de atribución de anuncios de WhatsApp.
Ejemplo resuelto: lo que cambian los campos ocultos en tu reporte
Ejemplo (números hipotéticos): una clínica estética en Guadalajara invierte $160,000 MXN al mes en tres campañas de Meta. Antes de los campos ocultos, el CRM muestra 320 leads con fuente "Formulario web" y 24 ventas. Nadie sabe qué campaña generó las ventas, así que el presupuesto se reparte por costo por lead.
| Campaña | Inversión | Leads | Costo por lead | Ventas (del CRM) | Costo por venta |
|---|---|---|---|---|---|
| promo_descuento | $60,000 | 180 | $333 | 6 | $10,000 |
| video_testimonio | $60,000 | 90 | $667 | 12 | $5,000 |
| antes_despues | $40,000 | 50 | $800 | 6 | $6,667 |
Con campos ocultos, la campaña "más barata" por costo por lead resulta la más cara por costo por venta. Mover presupuesto de promo_descuento a video_testimonio ahora es una decisión con datos. Es la misma lógica de medir costo por venta en lugar de costo por lead.
¿Cómo pruebas que los UTM sí llegan al CRM?
- Abre una URL etiquetada en una ventana privada, navega dos páginas y envía el formulario. Revisa cada propiedad del contacto nuevo.
- Repite en Safari de iPhone y dentro de los navegadores internos de Instagram y Facebook.
- Prueba cada formulario, incluidos los pop-ups y los formularios incrustados en otros dominios.
- Confirma que las redirecciones (de http a https, o un acortador de enlaces) no borren el query string.
- Envía dos veces desde el mismo navegador con UTM distintos y confirma que el primer toque se queda y el último se actualiza.
Dónde fallan los campos ocultos
- Duración de cookies en Safari. La Intelligent Tracking Prevention 2.1 de WebKit limita a siete días las cookies creadas con JavaScript (document.cookie). Un visitante que regresa al octavo día puede llegar sin fuente guardada. Las cookies del servidor o el seguimiento del lado del servidor ayudan; revisa qué resuelve el server-side tracking.
- Recorridos entre dominios. Si el anuncio aterriza en un dominio y el formulario vive en otro, el almacenamiento no viaja a menos que pases los parámetros en el enlace.
- Llamadas y chat. El lead que llama o escribe nunca toca el formulario.
- Un solo toque. Los campos ocultos registran el primer y el último toque, no toda la secuencia de visitas intermedias.
- Error humano. Un formulario sin los campos o un anuncio sin etiquetar crean un hueco que parece tráfico "Directo".
Una plataforma de atribución llena esos huecos al seguir las visitas entre sesiones y unirlas con el registro del CRM. El seguimiento de leads de Admira lo hace con tracking sin cookies por defecto y conexiones nativas con HubSpot, Salesforce, Kommo, Clientify y ActiveCampaign, sin necesidad de ingenieros. Aun así vale la pena configurar los campos ocultos como respaldo, porque conservan la fuente en el lead aunque cambies de herramienta después.
Para quién es esto y cuándo no aplica
Para: equipos que generan leads con formularios web y cierran ventas en un CRM, y agencias que necesitan mostrarle al cliente qué campañas produjeron ingresos.
No aplica: tiendas en línea con checkout propio, donde la plataforma de pedidos ya registra la fuente, y negocios cuyos leads llegan solo por teléfono o WhatsApp, donde el rastreo de llamadas o la atribución de chats hacen el trabajo.
Preguntas frecuentes
¿Qué son los campos ocultos en un formulario?
Campos que se envían con el formulario pero que el visitante no ve. Llevan al CRM datos como los UTM, los IDs de clic y la página de aterrizaje.
¿Necesito un desarrollador para pasar los UTM a mi CRM?
No siempre. HubSpot llena campos ocultos desde el query string de forma nativa. Llevar los valores a través de varias páginas suele requerir un script corto, un administrador de etiquetas o una herramienta de atribución.
¿Guardo los UTM de primer toque o de último toque?
Los dos. El primer toque muestra qué campaña creó la demanda y el último, cuál la convirtió. Guárdalos en propiedades separadas.
¿Por qué mis leads siguen apareciendo como Directo?
Casi siempre es un anuncio sin etiquetar, una redirección que borra los parámetros, un formulario sin campos ocultos o un visitante que regresó cuando los valores guardados ya habían expirado.
¿También debo capturar gclid y fbclid?
Sí. Los IDs de clic te permiten enviar las ventas cerradas de vuelta a Google Ads y Meta como conversiones offline. Lee cómo conectar conversiones offline.
¿Puedo usar propiedades desplegables para los UTM?
Mejor no. HubSpot exige que el valor del query string coincida exactamente con las opciones del desplegable, así que cualquier nombre de campaña nuevo no se guardaría. Usa texto de una línea.






%20(2).png)