Pipeline Kanban de Oportunidades
El pipeline CRM visualiza las oportunidades activas de ventas organizadas en columnas que representan las etapas del proceso comercial. El tablero permite mover oportunidades entre etapas con arrastre (drag-and-drop) o teclado.
Requisitos y permisos
Sección titulada «Requisitos y permisos»| Permiso | Descripción |
|---|---|
crm.ver |
Ver el tablero y el detalle de cada oportunidad. |
crm.gestionar |
Crear oportunidades, moverlas entre etapas y cerrarlas. |
crm.configurar |
Crear, editar y reordenar etapas del pipeline; definir motivos de pérdida. |
Pantalla principal: tablero kanban
Sección titulada «Pantalla principal: tablero kanban»La ruta /crm/pipeline muestra el tablero kanban.

Elementos del tablero:
- Columnas: una por cada etapa del pipeline, ordenadas por el campo
ordendeEtapaPipeline. - Tarjetas de oportunidad: muestran nombre, monto estimado, responsable asignado y fecha estimada de cierre.
- Encabezado de columna: nombre de la etapa, probabilidad asociada (%) y total de oportunidades en esa etapa.
- Botón “Nueva oportunidad”: en la barra superior, abre el diálogo de creación.
- Botón “Exportar Oportunidades”: genera CSV/Excel de oportunidades del tenant (token JWT de un solo uso, caduca en 5 minutos).
Instrucciones de accesibilidad
Sección titulada «Instrucciones de accesibilidad»El tablero incluye instrucciones para usuarios de tecnologías asistivas (lectores de pantalla). Para mover una oportunidad con teclado:
- Use Tab para llegar al asa de arrastre de la tarjeta.
- Presione Espacio o Enter para iniciar el arrastre.
- Use las teclas de flecha para navegar entre etapas.
- Presione Espacio o Enter para soltar la oportunidad en la etapa deseada.
Crear una oportunidad
Sección titulada «Crear una oportunidad»- Pulse Nueva oportunidad en la barra del tablero.
- Complete el formulario (el diálogo de creación se abre sobre el tablero).
- Confirme para crear la oportunidad en la etapa inicial seleccionada.
Mover una oportunidad entre etapas (drag-and-drop)
Sección titulada «Mover una oportunidad entre etapas (drag-and-drop)»- Haga clic y mantenga presionado sobre una tarjeta de oportunidad.
- Arrastre la tarjeta a la columna de la etapa destino.
- Suelte. El sistema ejecuta la transición y registra la duración de la oportunidad en la etapa anterior.
Condiciones para la transición:
- La oportunidad debe estar en estado
ABIERTA. - No se pueden mover oportunidades ya en estado
GANADAoPERDIDA. - El sistema usa un bloqueo optimista (
expectedUpdatedAt): si otro usuario modificó la oportunidad mientras estaba siendo arrastrada, el sistema muestra el mensaje “No se pudo mover la oportunidad. Intenta de nuevo.” y el tablero se recarga.
Cada transición se registra en TransicionEtapa con:
- Etapa de origen y etapa destino.
- Usuario que realizó el movimiento.
- Duración en la etapa anterior (en segundos).
Detalle de una oportunidad
Sección titulada «Detalle de una oportunidad»Al hacer clic sobre una tarjeta se abre el panel de detalle (OportunidadDetalleDrawer) con:
- Nombre, descripción, monto estimado, moneda y fecha de cierre estimada.
- Probabilidad efectiva: usa el campo
probabilidadOverridesi está definido; de lo contrario, la probabilidad de la etapa. - Cliente vinculado (si aplica).
- Lead de origen (si la oportunidad proviene de un lead convertido).
- Responsable asignado.
- Historial de transiciones de etapa.
- Actividades comerciales vinculadas.
Cerrar una oportunidad como ganada
Sección titulada «Cerrar una oportunidad como ganada»Para oportunidades en estado ABIERTA:
- Abra el detalle de la oportunidad.
- Pulse Cerrar como Ganada.
- Se abre el diálogo CerrarGanadaDialog:
| Campo | Descripción |
|---|---|
| Monto final (MXN) | Permite ajustar el monto antes del cierre. Pre-llenado con el monto estimado. |
| Notas (opcional) | Comentarios sobre el cierre o próximos pasos. |
- Pulse Confirmar.
Efecto del cierre:
- La oportunidad pasa a estado
GANADAy se mueve automáticamente a la etapa denominada “Cerrado-Ganado”. - Se registra la fecha de cierre (
ganadaEn) y el usuario que cerró (cerradaPorUserId). - Se genera el evento
OportunidadGanadaEvent. - La oportunidad deja de aparecer en el tablero activo.
Cerrar una oportunidad como perdida
Sección titulada «Cerrar una oportunidad como perdida»- Abra el detalle de la oportunidad.
- Pulse Cerrar como Perdida.
- Se abre el diálogo CerrarPerdidaDialog:
| Campo | Descripción |
|---|---|
| Motivo de pérdida | Selección obligatoria de la lista de motivos configurados. |
| Notas (opcional) | Observaciones adicionales. |
- Pulse Confirmar.
Efecto:
- La oportunidad pasa a estado
PERDIDA. - Se registra
perdidaEn,motivoPerdidaIdy las notas opcionales. - El evento
OportunidadPerdidaEventqueda registrado en el historial de auditoría.
Etapas del pipeline
Sección titulada «Etapas del pipeline»Las etapas se gestionan en /crm/configuracion → pestaña Etapas del Pipeline (requiere crm.configurar).
Cada etapa tiene:
| Atributo | Descripción |
|---|---|
| Nombre | Identificador visible de la etapa. |
| Probabilidad (%) | Porcentaje de cierre predeterminado para las oportunidades en esta etapa. |
| Color hex | Color de la columna en el tablero. |
| Orden | Posición de izquierda a derecha en el tablero. |
Operaciones disponibles:
- Crear nueva etapa.
- Editar nombre, probabilidad y color.
- Reordenar arrastrando las etapas en el gestor.
- Eliminar (soft-delete): las oportunidades activas en esa etapa dejan de aparecer en el tablero.
Motivos de pérdida
Sección titulada «Motivos de pérdida»Los motivos de pérdida se gestionan en /crm/configuracion → pestaña Motivos de Pérdida (requiere crm.configurar).
Cada motivo tiene:
- Nombre del motivo (por ejemplo: “Precio”, “Competencia”, “Sin presupuesto”).
- Categoría:
PRECIO,COMPETENCIA,TIMING,CARACTERISTICASuOTRO.
Los motivos eliminados permanecen visibles en el historial de oportunidades ya cerradas.
Alertas de inactividad de oportunidades
Sección titulada «Alertas de inactividad de oportunidades»El mismo job diario (09:00 hora Ciudad de México) que procesa leads inactivos también detecta oportunidades en estado ABIERTA sin actividad durante 7 días o más, y envía una notificación al responsable asignado.