Rol — CSM (retención)
El CSM (Customer Success Manager) es quien cuida a los alumnos después de la venta: que sigan activos, que renueven, y que las bajas se procesen bien. Es el otro lado del embudo comercial.
Lo que puede hacer
- Entrar al tablero de retención (
/admin/clientes): todos los alumnos con acceso activo, en todos los programas, ordenados por riesgo de baja. - Marcar el estado de cada alumno arrastrando su tarjeta entre columnas.
- Anotar seguimiento por alumno: si es del equipo, si paga o está bonificado, hasta cuándo tiene extensión, y una nota libre de próximo paso.
- Completar el nombre de alumnos que entraron por Payment Link y quedaron sin nombre.
- Ver el listado plano anterior en
/admin/clientes/tabla. - Gestionar empresas (
/admin/empresas).
Lo que NO puede hacer
- No entra al embudo comercial ni a las métricas globales.
- No cambia el contenido de los programas.
Las columnas del tablero
Las columnas son riesgo de baja. No son estado de pago ni de avance en el contenido: si la persona paga o está bonificada se marca aparte en la tarjeta, y el avance se ve en la línea de cápsulas. De izquierda (mejor) a derecha (peor):
| Columna | Qué significa |
|---|---|
| 🟢 Sigue | Sin señales de riesgo. |
| 🟡 A confirmar | No se sabe: hay que hablar con la persona. Es el estado por defecto. |
| 🟠 En riesgo | Señales de que se va: no responde, no entra, lo dijo. |
| 🔴 Baja pedida | Pidió la baja. Está en proceso. |
| ⚫ Baja | Baja procesada. |
Los nombres y colores de las columnas viven en la tabla pipeline_stages
(pipeline_slug = 'retencion') y se pueden cambiar sin tocar código.
Por qué el estado se marca a mano
FIA se vendió mucho por acceso manual y Payment Link, así que la base no sabe quién paga: apenas 4 de 55 alumnos de FIA Agéntica tienen una suscripción de Stripe registrada. De la base salen los datos objetivos (fecha de ingreso, vencimiento, actividad, empresa); el estado y las notas los pone el CSM.
Lo que la tarjeta muestra sola
- Empresa: de
organization_id, y si falta, deducida del dominio del email (se marca con·dom). - Fecha de ingreso y vencimiento, resaltado en ámbar si vence en 14 días o menos, y en rojo si ya venció. Los accesos vencidos siguen apareciendo 60 días: son justamente el caso a recuperar.
- Actividad: cápsulas completadas y días desde la última señal de vida. En gris si hace más de 14 días que no entra.
- Pista de equipo: si la persona tiene un rol interno aparece "Equipo ?" hasta que el CSM lo confirma.
Qué pasa cuando marcás una baja
Mover una tarjeta a las dos columnas de la derecha no es una etiqueta: dispara cosas reales. Por eso las dos piden confirmación explícita antes de ejecutarse.
🔴 Baja pedida
- Al alumno le llega un mail avisándole que su baja está en proceso, con el WhatsApp del coach por si fue un error.
- El acceso no se toca: sigue entrando normal.
- Al equipo (Lautaro y Axel) le llega un mail con el contexto del alumno.
⚫ Baja
- Se le revoca el acceso a ese programa (solo ese: si está en otro, ahí sigue entrando).
- Se le cancela la suscripción de Stripe si tiene una registrada. La mayoría entró por Payment Link y no tiene, así que el mail interno avisa que hay que mirar Stripe a mano.
- Recién entonces se le manda el mail al alumno diciéndole que ya no tiene acceso. Si la revocación falla, el mail no sale: nunca se le avisa de algo que no pasó.
- Al equipo le llega el mail con lo que quedó pendiente a mano (sacarlo del grupo de WhatsApp).
Revertir
Sacar la tarjeta de una columna definitiva revierte la baja. Si el acceso estaba revocado se restaura, y al alumno le llega un mail avisándole que volvió.
La suscripción de Stripe no se reactiva sola: si se canceló, hay que rearmarla a mano.
Todo queda registrado en la tabla retention_events: qué pasó, quién lo hizo, y qué efectos
se ejecutaron.
El aviso por WhatsApp de Sofía
Cada evento de baja se manda además por WhatsApp al grupo interno Control / FIA Copilot, donde está Sofía con el equipo.
El envío es directo desde FIA Copilot a Evolution API, sin pasar por el engine del VPS: el evento pasa acá, así que se manda desde acá. Antes esto dependía del engine, y cada vez que el engine se caía el aviso se perdía.
Queda registro de cada aviso en sofia_outbox con su estado (sent, pending, skipped). Si
el envío falla, la fila queda en pending y se puede reintentar sin perder nada.
Los mails al equipo no dependen de esto: si Evolution está caído, la baja se procesa igual y el aviso por mail sale lo mismo.
Config (env de Vercel): EVOLUTION_BASE_URL, EVOLUTION_API_KEY, EVOLUTION_INSTANCE_NAME,
SOFIA_GRUPO_EQUIPO_JID.
Seguimiento semanal
En /admin/fia-agentica/alumnos está la
grilla de avance por semana del programa. Ahí se registra ahora el seguimiento que antes vivía en
un Excel aparte.
- La columna Seguimiento muestra el último contacto: fecha y color (verde respondió, ámbar contactado sin respuesta, rojo no respondió, gris nunca).
- En la grilla, un punto azul en una celda de semana significa que hubo seguimiento esa semana.
- Al hacer click se abre el panel, que es donde se trabaja: teléfono, link al grupo de WhatsApp del alumno, los hitos, el historial completo y el formulario para cargar el de hoy.
Corregir un seguimiento ya cargado
Cada entrada del historial tiene editar y borrar.
Al tocar "editar" el formulario se completa con lo que habías puesto y pasa a modo edición: el título dice "Editando seguimiento", la entrada queda resaltada en ámbar y el botón dice "Guardar cambios". Con "cancelar" volvés a cargar uno nuevo.
Se puede cambiar cualquier cosa, incluida la fecha: en ese caso el registro se mueve a la fecha nueva en vez de duplicarse.
Sólo hay un seguimiento por alumno y por día. Si guardás sobre una fecha que ya tenía uno, te avisa antes y te muestra qué decía, para que no pierdas nada sin querer.
Las dos "semanas" no son la misma
Las rondas de seguimiento son semanas de calendario e iguales para todos. La grilla son semanas del programa, y cada alumno arrancó en fecha distinta. Por eso se guarda la fecha real del contacto y la semana del programa se calcula desde su alta:
semana = max(1, floor((fecha − granted_at) / 7) + 1)
Un seguimiento que cae más allá de la última semana del programa no se pierde: aparece igual en el panel y en la columna, aunque no tenga celda donde pintar el punto.
Hitos que se registran
Hizo las tareas de la semana 1 · está en la comunidad · presentó su proyecto · dio testimonio · pagó después del primer mes.
Cómo se identifica
El flag is_csm en profiles. También entran los is_admin.