skailan-crm
Version:
Servicio de CRM y gestión de ventas para Skailan
166 lines (128 loc) • 3.89 kB
Markdown
# @skailan/crm
Servicio de CRM y gestión de ventas para la plataforma Skailan.
## Descripción
Este módulo proporciona funcionalidades completas de CRM (Customer Relationship Management) para la plataforma Skailan. Incluye:
- Gestión de leads y oportunidades
- Pipeline de ventas personalizable
- Seguimiento de actividades comerciales
- Gestión de cotizaciones y propuestas
- Análisis de rendimiento de ventas
- Integración con contactos y conversaciones
## Instalación
```bash
npm install @skailan/crm
```
## Uso
### Importación básica
```typescript
import { CRMService } from '@skailan/crm';
const crmService = new CRMService();
// Crear un nuevo lead
const lead = await crmService.createLead({
name: "Empresa ABC",
contactId: "contact-123",
source: "website",
value: 50000,
organizationId: "org-123"
});
```
### Configuración de variables de entorno
```env
DATABASE_URL="postgresql://user:password@localhost:5432/skailan"
```
## API Endpoints
### Leads
- `GET /leads` - Listar leads
- `POST /leads` - Crear lead
- `GET /leads/:id` - Obtener lead
- `PUT /leads/:id` - Actualizar lead
- `DELETE /leads/:id` - Eliminar lead
### Oportunidades
- `GET /opportunities` - Listar oportunidades
- `POST /opportunities` - Crear oportunidad
- `GET /opportunities/:id` - Obtener oportunidad
- `PUT /opportunities/:id` - Actualizar oportunidad
- `DELETE /opportunities/:id` - Eliminar oportunidad
### Actividades
- `GET /activities` - Listar actividades
- `POST /activities` - Crear actividad
- `GET /activities/:id` - Obtener actividad
- `PUT /activities/:id` - Actualizar actividad
### Cotizaciones
- `GET /quotes` - Listar cotizaciones
- `POST /quotes` - Crear cotización
- `GET /quotes/:id` - Obtener cotización
- `PUT /quotes/:id` - Actualizar cotización
## Características
- **Pipeline de ventas**: Gestión completa del proceso de ventas
- **Seguimiento de actividades**: Registro de todas las interacciones
- **Gestión de leads**: Captura y seguimiento de prospectos
- **Cotizaciones**: Creación y gestión de propuestas comerciales
- **Análisis**: Reportes y métricas de ventas
- **Integración**: Conecta con contactos y conversaciones
## Dependencias
- Express.js para el servidor web
- Prisma para ORM
- UUID para generación de IDs
- @skailan/core para autenticación
- @skailan/contacts para gestión de contactos
## Desarrollo
```bash
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
# Construir para producción
npm run build
# Generar cliente Prisma
npm run prisma:generate
```
## Ejemplos de uso
### Crear oportunidad desde lead
```typescript
import { CRMService } from '@skailan/crm';
const crmService = new CRMService();
const opportunity = await crmService.createOpportunity({
leadId: "lead-123",
name: "Proyecto de desarrollo web",
value: 25000,
stage: "proposal",
probability: 0.7,
organizationId: "org-123"
});
```
### Registrar actividad comercial
```typescript
const activity = await crmService.createActivity({
type: "meeting",
subject: "Reunión de presentación",
description: "Presentación de propuesta comercial",
contactId: "contact-123",
opportunityId: "opp-123",
scheduledAt: new Date("2024-01-15T10:00:00Z"),
organizationId: "org-123"
});
```
### Generar cotización
```typescript
const quote = await crmService.createQuote({
opportunityId: "opp-123",
contactId: "contact-123",
items: [
{
description: "Desarrollo de sitio web",
quantity: 1,
unitPrice: 15000
},
{
description: "Hosting por 1 año",
quantity: 12,
unitPrice: 50
}
],
validUntil: new Date("2024-02-15"),
organizationId: "org-123"
});
```
## Licencia
MIT