š CRM - Customer Relationship Management
1. š§© Descripción Generalā
El módulo de CRM (Customer Relationship Management) estÔ diseñado para gestionar relaciones con prospectos y clientes, seguimiento comercial, y automatización de tareas previas a la venta. Este módulo se conecta con Ventas, Clientes y eventualmente con Marketing o Postventa.
2. š§± Modelos del Móduloā
a. Leadā
id: integer (PK)
name: string
email: string
phone: string
source: string (referido, sitio web, evento, etc.)
assigned_to: FK ā User
status: enum (nuevo, en seguimiento, convertido, perdido)
created_at: datetime
b. Opportunityā
id: integer (PK)
lead_id: FK ā Lead
title: string
estimated_value: decimal
probability: integer (0-100%)
stage: enum (contacto, propuesta, negociación, cerrado)
expected_close_date: date
c. Activityā
id: integer (PK)
opportunity_id: FK ā Opportunity
type: enum (llamada, correo, visita, reunión)
description: string
scheduled_at: datetime
status: enum (pendiente, completada)
d. Conversionā
id: integer (PK)
lead_id: FK ā Lead
client_id: FK ā Client
converted_at: datetime
notes: text
3. š Funciones del Controladorā
indexLeads(): Ver prospectos.
storeLead(): Registrar nuevo lead.
convertLead(): Convertir a cliente.
indexOpportunities(): Ver oportunidades activas.
storeOpportunity(): Crear oportunidad.
logActivity(): Registrar acción comercial.
closeOpportunity(): Marcar como cerrada (ganada o perdida).
4. š Endpoints detallados y justificadosā
| Método | Ruta | Descripción | Justificación |
|---|
| GET | /api/crm/leads | Listar prospectos | Seguimiento previo a venta |
| POST | /api/crm/leads | Crear lead | Registro inicial de interƩs |
| POST | /api/crm/leads/{id}/convert | Convertir a cliente | Formalizar relación |
| GET | /api/crm/opportunities | Ver oportunidades | Gestión del embudo |
| POST | /api/crm/opportunities | Crear oportunidad | Potencial de negocio |
| POST | /api/crm/opportunities/{id}/activity | Registrar actividad | Seguimiento comercial |
| POST | /api/crm/opportunities/{id}/close | Cerrar oportunidad | Estado final de la venta |
5. š„ļø DiseƱo UX sugerido (flujo de usuario)ā
PĆ”gina: "Leads"ā
- Tabla con nombre, email, telƩfono, fuente, estado
- Filtros por estado, fuente
- Acciones: Ver, Convertir, Eliminar
PĆ”gina: "Oportunidades"ā
- Tabla con tĆtulo, etapa, valor, fecha esperada
- Acciones: Ver, Registrar actividad, Cerrar
PĆ”gina: "Calendario de Actividades"ā
- Vista de actividades agendadas por fecha
- Botón: Marcar como completada
6. š Vistas sugeridas (tipo wireframe)ā
| Vista | Campos sugeridos | Acciones |
|---|
| Leads | Nombre, email, fuente, estado | Ver, Convertir |
| Oportunidades | TĆtulo, valor, etapa, fecha | Ver, Registrar actividad, Cerrar |
| Actividad | Tipo, descripción, fecha, estado | Completar, Editar |
7. š Conexión Frontend ā API JSON:APIā
| Acción en Frontend | Método/API | Resultado esperado |
|---|
| Ver leads | GET /api/crm/leads | Tabla general |
| Crear lead | POST /api/crm/leads | Nuevo contacto |
| Convertir a cliente | POST /api/crm/leads/{id}/convert | Asociar con módulo Clientes |
| Ver oportunidades | GET /api/crm/opportunities | Seguimiento comercial |
| Crear oportunidad | POST /api/crm/opportunities | Iniciar seguimiento |
| Registrar actividad | POST /api/crm/opportunities/{id}/activity | Agendar/completar |
| Cerrar oportunidad | POST /api/crm/opportunities/{id}/close | Finalizar caso |
š Este módulo permite a la empresa anticipar ventas, identificar oportunidades de negocio, y convertir prospectos en clientes activos con historial completo desde el primer contacto.