¿Qué hace Funnel Doctor?
Diagnostica embudos de conversión: encuentra el paso con más fugas, cuantifica la pérdida y muestra las sesiones que explican por qué los usuarios se van.
Cuándo usarlo
- "¿Dónde están abandonando los usuarios en nuestro flujo de pago?"
- "¿Cuál es la tasa de conversión desde el registro hasta la primera compra?"
- "Compara el flujo de onboarding antiguo con el nuevo: ¿mejoramos la finalización?"
- "Muéstrame sesiones en las que los usuarios abandonaron en el paso de pago"
- "¿Cuál es el mayor abandono en nuestra app? Cuantifica los ingresos perdidos."
Modelo mental
Un embudo es una secuencia de pasos que los usuarios deben completar. El objetivo es encontrar el paso donde más usuarios se van, no solo por número absoluto, sino por el porcentaje de caída respecto al paso anterior.
Ejemplo: 10.000 llegan a /checkout → 8.000 ingresan envío → 6.000 llegan a pago → 2.000 completan compra. La mayor caída absoluta es pago (6.000 → 2.000 = 4.000 perdidos). La mayor caída porcentual también es pago (67% de caída). Ambos importan; preséntalos.
Flujo de trabajo
Paso 1: Definir los pasos del embudo
Aclara qué pasos le interesan al usuario. Embudos típicos:
- Comercio electrónico: página de producto → añadir al carrito → pago → envío → pago → confirmación
- Registro SaaS: página de aterrizaje → formulario de registro → verificación de correo → onboarding → primera acción
- Flujo de app: inicio → búsqueda → resultados → detalle → reserva
Si el usuario no especifica los pasos, pregunta por el punto de inicio y final. Puedes inferir los pasos intermedios a partir de los datos de navegación.
Paso 2: Construir una métrica de embudo
Llama a fullstory:build_metric con:
queryque describa los pasos del embudo en orden (ej., "usuarios que vieron /checkout, luego llegaron a envío, luego llegaron a pago, luego completaron compra")output_type="funnel"— esto le indica al constructor que cree un embudo secuencial, no un simple conteo
Si ya existe una métrica de embudo para este flujo, búscala primero: fullstory:get_metric(regex="checkout funnel"). Para embudos construidos con build_funnel, usa fullstory:get_funnel(id) — devuelve nombre, descripción, definición renderizada y el num_steps correcto (necesario para el flujo get_funnel_sessions).
Paso 3: Calcular y analizar
Llama a fullstory:compute_metric(metric_id) — o fullstory:compute_funnel(funnel_id) para opciones específicas de embudo.
Comparación de períodos — añade compare_to para ver deltas respecto al período anterior:
fullstory:compute_funnel(funnel_id, compare_to="previous_period")
Cada paso recibe un objeto previous con el conteo y la tasa de conversión del período anterior. Úsalo para preguntas como "¿ayudó el nuevo diseño?" en lugar de construir dos embudos separados.
Desglose por dimensión — añade dimension para dividir por una propiedad:
fullstory:compute_funnel(funnel_id, dimension="device_type")
Cada paso recibe un array groups desglosado por esa dimensión (navegador, país, dispositivo, variable personalizada, etc.). Reemplaza los flujos manuales de segmento por grupo.
Presenta los resultados como un desglose paso a paso:
Embudo de pago (últimos 30 días)
1. /checkout 10.000 usuarios (100%)
2. Formulario de envío 8.000 usuarios (80% — perdidos 2.000)
3. Página de pago 6.000 usuarios (75% de los restantes — perdidos 2.000)
4. Confirmación 2.000 usuarios (33% de los restantes — perdidos 4.000) ← MAYOR CAÍDA
Conversión general: 20%
Con compare_to, añade los deltas:
4. Confirmación 2.000 usuarios (33% de los restantes — perdidos 4.000)
Período anterior: 1.400 usuarios (28% de los restantes)
Diferencia: +600 usuarios (+5pp de conversión) ↑
Con dimension, muestra la conversión por grupo en cada paso.
Señala el paso con la mayor caída absoluta Y la mayor caída porcentual: a menudo son el mismo, pero no siempre.
Paso 4: Acotar con segmentos
Si el usuario pregunta por un cohorte específico (usuarios móviles, empresa, nuevos vs recurrentes), construye un segmento y adjúntalo:
fullstory:build_segment("usuarios móviles") → segment_id
fullstory:update_metric(metric_id, segment_id)
fullstory:compute_metric(metric_id)
Para comparaciones A/B de embudos (flujo antiguo vs nuevo, móvil vs escritorio), usa la habilidad comparisons para elegir el mecanismo adecuado (dimensionalidad vs segmentos).
Paso 5: Investigar el peor paso
Una vez identificado el paso con más fugas, descubre por qué:
- Llama a
fullstory:get_sessions(metric_id=metric_id)filtrado a las sesiones que llegaron pero no completaron el paso problemático - Carga 3-5 sesiones a través del agente
session-contextcon tareas enfocadas:- "¿Qué hizo el usuario en la página de pago antes de irse? ¿Encontró algún error?"
- "¿La validación del formulario lo bloqueaba? ¿Qué campos estaban resaltados?"
- "¿Hizo clics de rabia o clics muertos en algo antes de abandonar?"
Paso 6: Informe
Sintetiza todo:
- Los números del embudo (en formato tabla)
- El paso que es el mayor problema (con pérdida absoluta y porcentual)
- Lo que la evidencia de las sesiones muestra sobre por qué los usuarios se van en ese paso
- Si procede, el impacto estimado en ingresos (número de usuarios × valor medio del pedido)
Directrices
- Muestra siempre la caída absoluta (número de usuarios) y la caída porcentual en cada paso.
- Proporciona la
metric_urlpara que el usuario pueda verificar en la interfaz de FullStory. - Si un paso del embudo tiene una tasa de abandono muy alta, prioriza investigar ese paso: no dediques el mismo tiempo a cada paso.
- Para el impacto en ingresos, pregunta al usuario el valor medio del pedido. No adivines.
- Si el usuario pregunta "¿ayudó el nuevo diseño?", construye dos métricas de embudo (antes/después de la fecha de despliegue) y preséntalas una al lado de la otra.