# CRM Quimiforen — Módulo de gestión de leads y clientes

## Archivos del módulo

```
QF/admin/crm/
├── crm_core.php        ← Núcleo: conexión, sesión, funciones base
├── index.php           ← Dashboard con KPIs y gráficas
├── leads.php           ← Gestión de leads (nuevo/fidelizado)
├── ficha.php           ← Ficha completa cliente/lead
├── agenda.php          ← Agenda de llamadas y seguimientos
├── clientes.php        ← Vista de z_clientes + actividad CRM
├── cotizaciones.php    ← Vista de z_cotizacion (solo lectura)
├── reportes.php        ← Reportes y KPIs avanzados
└── api_n8n.php         ← Endpoint webhook para N8N
```

---

## Instalación — paso a paso

### 1. Copiar la carpeta
```
Copiar la carpeta `crm/` dentro de:
C:\clientes\Quimiforen\QF\admin\crm\
```

### 2. Crear las tablas en MySQL
Abrir phpMyAdmin (Laragon), seleccionar la base `quimifor_2021`,
ir a la pestaña SQL y ejecutar el contenido del archivo:
```
crm_install.sql
```
Esto crea 3 tablas nuevas:
- `crm_leads`
- `crm_agenda`
- `crm_historial`

**No modifica ninguna tabla existente.**

### 3. Acceder al módulo
```
http://localhost/QF/admin/crm/
```
Iniciar sesión con:
- Usuario: spa@quimiforen.com
- Clave: Sistemas123**

### 4. Agregar enlace en el menú del sistema (opcional)
En el menú principal del sistema existente agregar:
```html
<a href="<?= BASE_APP ?>crm/">CRM / Leads</a>
```

---

## Configuración N8N

### Token de seguridad
Cambiar el token en `api_n8n.php` línea 23:
```php
define('CRM_N8N_TOKEN', 'tu_token_secreto_aqui');
```

### URL del webhook
```
POST http://tudominio.com/admin/crm/api_n8n.php
Header: X-CRM-Token: tu_token_secreto_aqui
Content-Type: application/json
```

### Body JSON para cada red social
```json
{
  "nombre":    "{{nombre del prospecto}}",
  "celular":   "{{celular}}",
  "correo":    "{{correo}}",
  "canal":     "whatsapp",
  "mensaje":   "{{mensaje inicial}}",
  "idusuario": 21
}
```

**Valores válidos para `canal`:**
`whatsapp` | `instagram` | `facebook` | `tiktok` | `web` | `manual` | `otro`

### Respuesta del API
```json
{
  "ok": true,
  "id_lead": 42,
  "es_nuevo": true,
  "id_cliente": null,
  "tipo": "cliente_nuevo",
  "token_lead": "abc123...",
  "mensaje": "Lead registrado correctamente"
}
```

Si `es_nuevo = false` significa que el cliente **ya existía** en `z_clientes`
y fue identificado automáticamente por correo, cédula o celular.

---

## Motor de identificación

El sistema busca en `z_clientes` con esta lógica:
1. Si hay **correo** → busca `WHERE correo = ?`
2. Si hay **cédula** → busca `WHERE cedula = ?`
3. Si hay **celular** → busca `WHERE celular1 LIKE '%celular%'`

Si encuentra coincidencia: `es_nuevo = false`, vincula al cliente existente.
Si no encuentra: `es_nuevo = true`, queda como lead hasta ser convertido.

---

## Agenda de llamadas

- Frecuencia configurable: cada N días
- Al gestionar una llamada con frecuencia, se crea automáticamente la siguiente
- Vista por: Hoy / Esta semana / Vencidas / Todas
- Acceso directo a WhatsApp desde la agenda

---

## Tablas nuevas creadas

| Tabla | Descripción |
|-------|-------------|
| `crm_leads` | Leads de redes sociales y manual |
| `crm_agenda` | Llamadas y seguimientos programados |
| `crm_historial` | Log de todas las interacciones |

**Ninguna tabla existente es modificada.**
