Ir al contenido

Script de seguimiento de conversiones — cierra el círculo entre el DM y la venta

El Script de seguimiento de conversiones cierra el círculo entre el enlace que la IA envía a un lead por DM y lo que ese lead hace después en tu página. Cuando el lead agenda una reunión o completa un pago, ZeroChats se entera y mueve su etapa en el Embudo de leads automáticamente:

  • Un evento de agendamiento (booked) mueve al lead a Agendado.
  • Un evento de pago (paid) mueve al lead a Pagado.

El cambio de etapa queda registrado en el historial del lead con un motivo explicativo, para que siempre sepas por qué se movió.

  1. Entra en Configuración y abre la sección ¿Con qué herramientas se conecta?. Las herramientas están en el bloque CRM, webhooks y tracking, una tarjeta por integración.

  2. Busca la tarjeta Seguimiento de conversiones y pulsa Gestionar.

  3. Pulsa Activar. ZeroChats genera un token (empieza por zct_) que identifica tu cuenta y abre el generador de etiquetas.

  4. Elige las opciones de la etiqueta. El generador te pide dos cosas:

    • Qué conversión reporta la página: Reserva → Agendado o Pago → Pagado.
    • Cuándo se reporta: Al enviar el formulario (la opción por defecto, que detecta envíos de formularios y widgets de Calendly y GoHighLevel) o Al abrir la página (páginas de gracias), que reporta la conversión en cuanto la página se abre.
  5. Copia la etiqueta generada y pégala en tu página. La etiqueta se ajusta sola a tus elecciones — nunca tienes que editar atributos a mano. Por ejemplo, para una página de agendamiento:

    <script
    src="https://app.zerochats.com/tracking.js"
    data-zc-id="zct_..."
    data-zc-event="booked"
    async
    ></script>

    Usa una etiqueta por página y publica los cambios.

Puedes activar y desactivar la integración desde el diálogo o directamente desde la tarjeta, con el botón que está junto a Gestionar. Si la desactivas, todo queda en pausa pero el token se conserva: las etiquetas que ya tengas instaladas vuelven a funcionar en cuanto la reactives, sin tocar nada en tus páginas.

El script se instala en cualquier página que tú controles:

  • Páginas de funnel en GoHighLevel: en el funnel o la página, ve a Settings → Tracking code y pega la etiqueta antes de </body>.
  • Calendarios de GoHighLevel: la etiqueta también funciona en el código personalizado del propio calendario — se ejecuta dentro del widget de reserva y captura automáticamente el email y el teléfono del formulario de reserva. Sigue la guía oficial de GoHighLevel para incrustar el calendario y añadir el elemento de código personalizado.
  • Landing pages que incrustan Calendly: el script va en tu página, la que contiene el widget. No se puede instalar dentro de calendly.com. Si aún no has incrustado el widget, sigue la guía oficial de Calendly.
  • Páginas de pago, checkout y páginas de gracias.

Genera la etiqueta de Reserva → Agendado para las páginas de agendamiento y la de Pago → Pagado para las de pago — una etiqueta por página.

Mientras la integración está activa, todos los enlaces que ZeroChats envía a un lead — enlaces de venta, enlaces en texto, botones de enlace de Instagram y contenidos de tipo enlace — llevan automáticamente un parámetro utm_user con un identificador cifrado del lead. Es un valor opaco de 22 caracteres, por ejemplo utm_user=qdfomARk3BiETYsZgmtDbg: no revela nada sobre el lead, es siempre el mismo para el mismo lead y mantiene las URL cortas.

Cuando el lead abre tu página, el script lee ese parámetro y lo recuerda durante 30 días en el navegador. Así el seguimiento sobrevive a funnels de varios pasos dentro del mismo dominio: el lead puede aterrizar en una página, navegar a otra y convertir allí.

Cuando llega un evento, ZeroChats reconoce al lead únicamente por ese identificador cifrado. Un evento que llega sin él no mueve a ningún lead ni guarda nada. Los eventos repetidos para un lead que ya está en la etapa de destino también se ignoran: no hay cambios de etapa duplicados.

El email y el teléfono que el visitante escribe en el formulario no sirven para reconocerlo: una vez identificado el lead por el enlace, se guardan en sus datos de contacto para completar su ficha.

Una vez instalado, el script detecta las conversiones por sí solo:

  • Envíos de formularios (formularios HTML nativos). Además extrae el email y el teléfono que el visitante haya escrito y los guarda en los datos de contacto del lead.
  • Clics en botones de envío cercanos a campos de email o teléfono rellenos — para builders de widgets que no usan formularios nativos.
  • Widgets de Calendly incrustados: el aviso que emite el widget cuando se confirma una reunión.
  • Widgets de agendamiento y formularios de GoHighLevel: las confirmaciones de cita y los envíos de formulario de los widgets de GHL.
  • Páginas de gracias o de confirmación: genera la etiqueta con la opción Al abrir la página (páginas de gracias) y la conversión se reporta en cuanto la página se abre.

Para cualquier otro caso, tienes una API manual de JavaScript:

window.ZeroChats.track('booked', { email: '...', phone: '...' });
// o 'paid' para pagos; email y phone son opcionales

Si quieres una integración personalizada en lugar del script —o además de él—, puedes resolver el utm_user tú mismo desde tu servidor con GET /api/v1/leads/resolve de la API de ZeroChats: te devuelve el lead, y con PATCH /leads/{id} le cambias la etapa, las etiquetas o los datos de contacto. Hazlo siempre desde tu backend: la clave de la API nunca debe estar en el código de la página ni en nada que el navegador del visitante pueda leer.

  • El token zct_ solo identifica tu cuenta de ZeroChats — no da acceso a nada más. Es visible en el código de tu página, y eso es normal: lo que vincula cada evento con un lead concreto es el identificador cifrado del enlace, no el token.
  • El email y el teléfono capturados en formularios se guardan en los datos de contacto del lead una vez identificado por el enlace. Nunca se usan para identificarlo: un evento sin el identificador cifrado no mueve a nadie.
  • El recuerdo del identificador dura 30 días y funciona dentro del mismo dominio.
  • Cada cuenta puede aplicar como máximo 30 cambios de etapa por hora a través del script. Los detalles están en Seguridad.

El valor del parámetro utm_user es el identificador interno del lead cifrado con una clave secreta única para tu negocio. ZeroChats genera esa clave automáticamente al activar la integración y nunca sale de sus servidores: tú no tienes que guardarla ni configurarla, y la etiqueta que instalas en tus páginas es exactamente la misma.

Por qué es seguro aunque la etiqueta sea visible

Sección titulada «Por qué es seguro aunque la etiqueta sea visible»

Como ocurre con Meta Pixel o Google Analytics, el token de la etiqueta es público: cualquiera puede leerlo en el código de tu página, y solo sirve para saber a qué negocio pertenece un evento. Lo único que vincula un evento con un lead concreto es el identificador cifrado del enlace que ese lead recibió en privado por DM. Quien tenga el token puede enviar eventos, pero sin el valor cifrado del enlace de un lead concreto no hay nada que un evento pueda hacer: el email o el teléfono escritos en el formulario no mueven a ningún lead por sí solos.

Antes, el parámetro llevaba el usuario de Instagram del lead, que es un dato público — cualquiera puede ver quién comenta en una publicación. En teoría, alguien que leyera la etiqueta podía reportar reservas falsas para cualquier lead. Ahora un valor inventado o alterado se descifra como un identificador que no corresponde a ningún lead, y el evento se ignora sin más. Solo un enlace que ZeroChats haya enviado realmente a ese lead puede moverlo, y solo puede mover a ese lead.

Como red de seguridad adicional — la defensa principal es el identificador cifrado —, el script de cada cuenta puede aplicar como máximo 30 cambios de etapa por hora. Los eventos que superan ese límite se descartan en silencio: el script no ve ningún error, y un evento descartado no guarda nada, ni siquiera el email o el teléfono capturados en el formulario.

Los eventos que no cambian nada no cuentan para el límite: una página de gracias recargada o un formulario reenviado para un lead que ya está en esa etapa no consumen cupo. Un funnel real agenda unas pocas reservas por hora, así que un negocio legítimo no llega al límite.

Solo los enlaces que llevan el identificador cifrado mueven leads. Los enlaces enviados antes de este cambio llevan el valor anterior, el usuario de Instagram, y ya no registran conversiones. No tienes que hacer nada: todos los mensajes que ZeroChats envía desde el cambio ya llevan el identificador cifrado, sin regenerar la etiqueta ni tocar tus páginas.

  • Elige Al abrir la página para las páginas de gracias. Es la señal más fiable: si tu funnel tiene página de confirmación propia, instala ahí la etiqueta generada con esa opción.
  • Una etiqueta por página. No mezcles reserva y pago en la misma página: cada una reporta un solo tipo de conversión.
  • Comprueba la fecha del último evento en la tarjeta después de instalar. Haz una prueba tú mismo abriendo un enlace enviado por la IA y completando el formulario.
  • Instala el script en todas las páginas del funnel si el lead pasa por varias antes de convertir — así el identificador se recuerda aunque la conversión ocurra pasos después.
  • Ten presente el límite de 30 cambios de etapa por hora. Un funnel normal no se acerca a esa cifra; si el tuyo sí, avisa a soporte antes de que se descarten eventos.