Manual interno
Qué hace cada parte, campo por campo en las pantallas que más se usan, cómo se miden los resultados, y qué se probó antes de darlo por listo.
Cuatro niveles, cada uno ve exactamente lo que necesita — reforzado dos veces: en la interfaz y en la base de datos (nadie puede ver más forzando la URL).
Su cola, su jornada, sus propias métricas. No ve a otros agentes ni leads de otro equipo.
Su equipo completo: supervisión en vivo, histórico, calendario. No toca configuración ni ve otros equipos.
Todo el sistema — equipos, cuentas, configuración, cumplimiento.
Un flag aparte sobre un admin ya existente: además de todo lo de arriba, ve la bandeja de errores y sugerencias que reporta el equipo — nadie más la ve.
Ve solo sus citas asignadas (agenda del día). Cierra cada cita con uno de tres resultados: venta, demo no venta (fueron, demostraron, no vendieron) o no atendió (llegaron y no había nadie / no los recibieron). No ve la cola de llamadas ni leads del equipo.
El vendedor entra al sistema y ve solo sus citas (las que el supervisor le asignó desde el calendario). No tiene acceso a la cola de llamadas.
agendada o confirmada para hoy o los próximos días.Al terminar la visita, el vendedor abre la cita y elige exactamente uno de estos tres resultados:
| Resultado | Qué significa | Campos que aparecen |
|---|---|---|
| Venta | Cerraron la venta en la visita | Monto de la venta (opcional, se puede cargar después) |
| Demo no venta | Fueron, hicieron la demostración, el cliente no compró | Motivo (obligatorio, texto libre) |
| No atendió | Llegaron al domicilio y no había nadie / no los recibieron | Motivo (obligatorio, texto libre) |
Cuando el vendedor marca no atendió, el lead vuelve automáticamente al teleoperador que agendó esa cita, con el historial completo de la cita y el motivo que dejó el vendedor.
appointment_returned_at = ahora, appointment_return_agent_id = tmk que agendó, return_reason_pending = true y copia el motivo del vendedor al lead.return_reason_pending = false, columnas de devolución a null) y el lead vuelve a la cola normal con status = 'en_gestion'.No es un castigo: es el único mecanismo que cierra el circuito entre quien agenda y lo que pasa después. Sin eso, el tmk nunca se entera de qué citas suyas se caen ni por qué.
No hay reparto de leads por la mañana — cada vez que alguien pide "siguiente lead", el sistema decide al vuelo, con prioridad fija:
Filtros que se aplican siempre: nunca un lead marcado do_not_call, nunca uno que agotó los reintentos, nunca uno que otra persona ya trabajó hoy, y nunca uno bloqueado por otro agente en ese instante. El bloqueo vence solo a los pocos minutos si alguien cierra el navegador sin avisar — ningún lead se pierde.
El formulario que aparece debajo de cada lead en la Cola (y en la Ficha del lead). Es el que más se usa en todo el sistema, así que va campo por campo.
| Campo | Para qué es |
|---|---|
| Resultado | Qué pasó en la llamada (contestó, no contestó, buzón, interesado, venta...). Es el único campo obligatorio siempre — de él dependen los demás. |
| Nivel de interés | 0 a 5, tu propia lectura de qué tan cerca está de comprar. Alimenta la prioridad de la cola (interés 4+ salta adelante). |
| Canal | Por dónde hablaste — teléfono, WhatsApp, etc. Se autocompleta solo si usaste el botón "WhatsApp" de la ficha. |
| Volver a llamar el... solo si el resultado lo pide | Fecha y hora exactas del callback. Aparece nada más si elegiste un resultado tipo "Volver a llamar" — y es obligatorio ahí, la base no te deja guardar sin esto. |
| Fecha/hora, duración y ubicación de la cita solo si el resultado agenda cita | Aparece con "Cita agendada". Los tres son obligatorios juntos — la base revisa que no se choque con otra cita en el mismo horario según la capacidad configurada. |
| Producto de interés / Monto de la demo solo si el resultado es venta | Aparece con resultados que cierran venta. El monto es opcional — se puede cargar después si todavía no lo sabés. |
| Nota de la llamada | Texto libre: qué dijo, qué quedó pendiente, con quién hablaste. Queda en el historial del lead para siempre. |
La ficha de arriba (teléfono, email, ciudad, localidad, Instagram, servicio, campaña, origen, equipo, último intento, callback) es solo lectura desde la Cola — se edita desde Leads.
Antes de ver un solo lead, el agente pasa por una pantalla "Iniciar jornada". Desde ahí todo queda en una bitácora, no en un estado que se pisa:
| Evento | Qué registra |
|---|---|
| Inicio de jornada | Marca de tiempo — arranca el reloj del turno |
| Inicio de pausa | Motivo: Almuerzo, Baño, Reunión interna, Otro |
| Fin de pausa | Vuelve a "trabajando" — ya puede pedir lead otra vez |
| Fin de jornada | Suelta cualquier lead que tuviera reservado |
Con esa bitácora se puede calcular después cuántos minutos por día se fueron en cada motivo, por agente.
Todas viven en Histórico (rango de fechas + comparación de dos períodos) y en Dashboard. Nada se calcula distinto de una pantalla a otra — es la misma función de base de datos la que alimenta todo.
Contacto efectivo: una llamada cuenta como contacto efectivo a partir de 10 segundos de duración. Por debajo de eso es un descuelgue, no una conversación, y no cuenta para contactabilidad ni métricas derivadas.
| Métrica | Qué mide |
|---|---|
| Leads trabajados | Cuántos leads distintos tocó en el rango |
| Llamadas realizadas | Total de intentos, contesten o no |
| Llamadas contestadas | De esas, cuántas atendió alguien del otro lado |
| Contactos efectivos | Leads distintos con al menos un contacto real |
| Interesados | Marcados como "Interesado" en la llamada |
| Citas agendadas / realizadas | Se agendaron vs. se cumplieron de verdad |
| Cancelaciones / No-show | Cita cancelada vs. el cliente no apareció |
| Demos (ventas) | Cierres — y el monto vendido, sumado aparte |
| Conversión contacto → cita | % de contactos que terminan en una cita |
| Conversión cita → demo | % de citas cumplidas que cierran venta |
| Duración promedio (AHT) | Tiempo promedio por llamada |
| Métrica | Qué mide |
|---|---|
| Leads recibidos | Cuántos leads entraron en el rango |
| Contactabilidad | % de intentos que lograron contacto real |
| Citas y demos por 100 leads | Rendimiento normalizado, comparable entre rangos |
| Costo por lead / cita / demo | Gasto de campaña dividido por cada etapa del embudo |
Histórico → "Comparar períodos": dos rangos de fecha lado a lado (hoy contra hace 3 meses, esta semana contra la pasada, lo que haga falta), con flecha ▲▼ verde/roja por métrica — y en costos, bajar es la buena noticia, así que el color se invierte a propósito ahí.
Rol nuevo vendedor: ve solo sus citas asignadas, cierra cada una con venta / demo no venta / no atendió. Monto opcional en venta, motivo obligatorio en los otros dos.
Si el vendedor marca "no atendió", el lead vuelve al tmk que agendó la cita con el motivo del vendedor. El tmk debe registrar por qué no atendió (disposition "Motivo: no atendió (tmk)") antes de poder seguir con su cola. Prioridad 1.5 en la cola (tras callbacks propios, antes de ajenos con gracia).
Catálogo completo de localidades, zonas y barrios. Selector en la ficha del lead y filtro en la pantalla Leads. Sirve para agrupar visitas por cercanía y filtrar la cola por zona.
Una llamada cuenta como contacto efectivo si duró 10 segundos o más. Por debajo es descuelgue y no suma a contactabilidad. Botón "llamada / no llamada" al inicio del intento.
Se retira el canal de Instagram. Todo el flujo es telefónico; el campo channel queda fijo en telefono desde el front.
Donde antes se agrupaba por campaña publicitaria, ahora se agrupa por resultado: venta, demo no venta, no atendió. Se retiran los costos por lead y por plataforma.
La pantalla de histórico compara claramente Período A contra Período B (ej. semana 1 contra semana 2), no como dos bloques sueltos.
"Eliminar cuenta" borra de verdad si la cuenta está vacía. Si tiene llamadas o citas reales, en vez de fallar la desactiva sola — queda archivada en la pestaña Ex-empleados (separada de "Personas activas"), y su nombre sigue apareciendo en los reportes como Ex-empleado — Nombre, para no perder ese historial.
Botón flotante 💬 en cualquier pantalla, para cualquier rol logueado — solo puede escribir un reporte, no puede ver la bandeja. Solo la cuenta marcada como dueño ve la bandeja completa, cambia el estado (Abierto → En progreso → Resuelto/Descartado) y deja una nota.
Botón "Tutorial" en el pie del menú lateral. Recorre las pantallas clave marcándolas una por una con una explicación corta — un guion para agente (su cola y su jornada) y otro para admin/supervisor (las pantallas de gestión). Para el detalle campo por campo del formulario de resultado, esta misma página es la referencia — un tour dentro del programa no puede detenerse en cada campo sin que la agente ya tenga un lead real cargado.
Lo que se verificó en vivo contra la base real, y lo que quedó confirmado por prueba manual del equipo.
for update skip locked a nivel de base, probado con 2 sesiones reales).