Skip to main content

šŸ“‡ 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étodoRutaDescripciónJustificación
GET/api/crm/leadsListar prospectosSeguimiento previo a venta
POST/api/crm/leadsCrear leadRegistro inicial de interƩs
POST/api/crm/leads/{id}/convertConvertir a clienteFormalizar relación
GET/api/crm/opportunitiesVer oportunidadesGestión del embudo
POST/api/crm/opportunitiesCrear oportunidadPotencial de negocio
POST/api/crm/opportunities/{id}/activityRegistrar actividadSeguimiento comercial
POST/api/crm/opportunities/{id}/closeCerrar oportunidadEstado 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)​

VistaCampos sugeridosAcciones
LeadsNombre, email, fuente, estadoVer, Convertir
OportunidadesTĆ­tulo, valor, etapa, fechaVer, Registrar actividad, Cerrar
ActividadTipo, descripción, fecha, estadoCompletar, Editar

7. šŸ”— Conexión Frontend ↔ API JSON:API​

Acción en FrontendMétodo/APIResultado esperado
Ver leadsGET /api/crm/leadsTabla general
Crear leadPOST /api/crm/leadsNuevo contacto
Convertir a clientePOST /api/crm/leads/{id}/convertAsociar con módulo Clientes
Ver oportunidadesGET /api/crm/opportunitiesSeguimiento comercial
Crear oportunidadPOST /api/crm/opportunitiesIniciar seguimiento
Registrar actividadPOST /api/crm/opportunities/{id}/activityAgendar/completar
Cerrar oportunidadPOST /api/crm/opportunities/{id}/closeFinalizar 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.