Cómo usar "Website Pixel Event" como disparador de flujo en SendPulse para tu bot de WhatsApp
SendPulse acaba de liberar una condición de disparador nueva en su módulo de Automation: Website Pixel Event. Esto te permite ramificar o iniciar un flujo de bot de WhatsApp dependiendo de si un usuario realizó (o no) una acción específica en tu sitio web dentro de una ventana de tiempo determinada. Nada de webhooks manuales, nada de integraciones terceras raras: el pixel de SendPulse hace el trabajo sucio y tu bot reacciona.

Este tutorial te lleva de cero a producción. Vas a necesitar acceso a tu cuenta de SendPulse con WhatsApp conectado, permiso para editar el HTML de tu sitio, y ganas de no dejar dinero sobre la mesa.
Requisitos previos
- Cuenta activa en SendPulse con plan que incluya Automation 360 y bot de WhatsApp conectado.
- Acceso de edición al HTML/JS de tu sitio web (o acceso a Google Tag Manager).
- Al menos un flujo de bot existente en SendPulse, aunque sea de prueba.
- Usuarios que hayan optado-in a tu bot de WhatsApp (sin opt-in no hay a quién mandarle nada, eso no cambia).
- Node.js instalado localmente si vas a probar los eventos vía script antes de subirlos a producción.
Paso 1: Instala el pixel de SendPulse en tu sitio
Entra a tu cuenta de SendPulse y ve a Automation → Website Pixel. Copia el snippet base que te dan. Se ve más o menos así:
<!-- SendPulse Pixel -->
<script>
(function(d, w, id) {
if (w[id]) return;
var s = d.createElement('script');
s.async = true;
s.src = 'https://cdn.sendpulse.com/pixel.js';
w[id] = true;
d.head.appendChild(s);
window.spPixelId = 'TU_PIXEL_ID_AQUI';
})(document, window, 'spPixelLoaded');
</script>
Pégalo en el <head> de todas las páginas de tu sitio. Si usas GTM, crea una etiqueta de HTML personalizado y dispárala en "All Pages". Sustituye TU_PIXEL_ID_AQUI con el ID que SendPulse te asignó.
Advertencia de producción: No pongas este snippet después del cierre de </body>. Aunque funciona, hay condiciones de carrera en páginas con muchos scripts que pueden hacer que el pixel no cargue antes de que el usuario abandone la página. En <head> con async es la forma correcta.
Paso 2: Registra eventos personalizados en tu sitio
El pixel base solo registra vistas de página. Para condiciones específicas (registro completado, compra, clic en botón de precio), necesitas disparar eventos nombrados. La sintaxis es así:
// Evento de registro completado
window.spq = window.spq || [];
window.spq.push(['track', 'CompleteRegistration', {
email: 'usuario@ejemplo.com', // opcional pero muy útil para matching
value: 0,
currency: 'MXN'
}]);
Coloca este código justo después de que el usuario complete la acción. Por ejemplo, en el callback de éxito de tu formulario de registro:
document.getElementById('registro-form').addEventListener('submit', function(e) {
// Tu lógica de envío...
fetch('/api/register', {
method: 'POST',
body: JSON.stringify(formData)
})
.then(res => res.json())
.then(data => {
if (data.success) {
// Dispara el evento al pixel de SendPulse
window.spq = window.spq || [];
window.spq.push(['track', 'CompleteRegistration', {
email: formData.email
}]);
}
});
});
Los nombres de eventos más comunes que SendPulse reconoce por defecto: ViewContent, AddToCart, Purchase, CompleteRegistration, Lead. También puedes usar nombres personalizados como 'DescargoCatalogo' o 'VioPreciosPro'.
Paso 3: Verifica que los eventos llegan
Antes de construir el flujo, confirma que el pixel está recibiendo datos. Ve a Automation → Website Pixel → Eventos en tu panel de SendPulse. Deberías ver un registro de los eventos disparados en las últimas horas. Si no ves nada después de hacer pruebas en tu sitio, revisa:
- Que el
spPixelIdsea correcto. - Que no haya un bloqueador de anuncios activo en tu navegador de prueba (usa un perfil limpio de Chrome).
- Que el script del pixel cargue antes de que ejecutes el
spq.push. Puedes validarlo conconsole.log(window.spPixelLoaded)— debe devolvertrue.
Paso 4: Crea o edita tu flujo de WhatsApp con la condición "Website Pixel Event"
Ahora la parte jugosa. Ve a Automation 360 → Flujos y abre el flujo que quieras modificar (o crea uno nuevo).
- Agrega un nodo de tipo Condition (Condición).
- En el selector de tipo de condición, elige "Website Pixel Event".
-
Configura los parámetros:
- Evento: selecciona el nombre del evento que registraste (ej.
CompleteRegistration). - Ventana de tiempo: cuántos días hacia atrás debe buscar. Para confirmaciones de registro, 1 día es suficiente. Para recuperación de carrito abandonado, 7 días tiene más sentido.
- Ocurrió / No ocurrió: decide si la rama "Sí" es para usuarios que SÍ dispararon el evento o que NO lo hicieron.
- Evento: selecciona el nombre del evento que registraste (ej.
-
Conecta las ramas:
- Rama Sí → Mensaje de confirmación de registro (o lo que corresponda a tu caso).
- Rama No → Mensaje de recordatorio o seguimiento.
Ejemplo de flujo completo para confirmación de registro:
[Trigger: Nuevo suscriptor al bot]
↓
[Espera: 10 minutos]
↓
[Condición: Website Pixel Event]
→ CompleteRegistration | últimas 24h | Ocurrió
↓ SÍ ↓ NO
[Mensaje: "¡Ya quedaste [Mensaje: "Oye, vimos que
registrado! Aquí tu empezaste el registro,
acceso..."] ¿necesitas ayuda?"]
Paso 5: Matching de usuario — el punto crítico
SendPulse hace el matching entre el usuario del pixel y el contacto de WhatsApp principalmente por correo electrónico. Si pasas el email en el evento del pixel y ese email está registrado en el contacto de WhatsApp, el sistema los vincula automáticamente.
Si tus usuarios no tienen email asociado en el bot, el matching falla silenciosamente y la condición siempre cae en "No ocurrió". Para evitar esto:
- Al momento del opt-in de WhatsApp, pide el email con una pregunta del bot y guárdalo como variable del contacto.
- Asegúrate de pasar ese mismo email en los eventos del pixel.
Advertencia de producción: El matching no es instantáneo. Hay una latencia de entre 2 y 15 minutos entre que el evento llega al pixel y que está disponible para evaluación en el flujo. No construyas flujos que requieran reacción en menos de 5 minutos basados en este trigger — vas a tener falsos negativos.
Paso 6: Prueba en staging antes de producción
Crea una versión de prueba del flujo con tu propio número de WhatsApp como contacto. Dispara el evento manualmente desde la consola del navegador, espera 10 minutos, y verifica que el flujo tomó la rama correcta. Revisa el historial de ejecución del flujo en SendPulse para ver exactamente qué evaluó la condición.
Casos de uso reales para osky.dj y similares
- Confirmación de registro a evento: el usuario llena el form en tu sitio → el bot confirma por WhatsApp con el link de acceso.
- Recuperación de carrito: el usuario agregó al carrito pero no compró en 24h → el bot manda un recordatorio con descuento.
- Seguimiento post-descarga: el usuario descargó tu catálogo → el bot le pregunta si tiene dudas después de 2 días.
- Upsell inteligente: el usuario visitó la página de precios Pro más de una vez → el bot ofrece una demo personalizada.
Advertencias finales
- Los bloqueadores de anuncios y el modo privado del navegador van a impedir que el pixel dispare. Asume una tasa de captura del 70-85% en el mejor caso, no del 100%.
- GDPR/LGPD: si tienes usuarios en Europa o Brasil, necesitas consentimiento explícito antes de activar el pixel. Integra con tu banner de cookies.
- No uses esta condición como único criterio para mensajes críticos (como accesos o contraseñas). Úsala para personalización y marketing, no para flujos de seguridad.
- Revisa los límites de tu plan de SendPulse: Automation 360 con condiciones avanzadas no está en todos los tiers.