Leads
Listar leads
GET /api/v1/crm/leads
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
cursor | string | Cursor de paginación |
limit | int | Items por página (default 25, máx 100) |
filter[status] | string | new, working, mql, sql, converted, disqualified |
filter[source] | string | manual, import, api, web_form |
filter[owner_id] | string | UUID del propietario |
search | string | Búsqueda por nombre, email o empresa |
sort | string | -created_at, -score, last_name |
Respuesta 200:
{
"data": [
{
"id": "uuid",
"owner_id": "uuid",
"first_name": "Carlos",
"last_name": "Ruiz",
"phone": "+51 998 765 432",
"company": "TechWave SAC",
"job_title": "CTO",
"source": "web_form",
"status": "working",
"score": 35,
"disqualified_reason": "",
"converted_at": null,
"converted_contact_id": null,
"converted_account_id": null,
"converted_deal_id": null,
"tags": ["hot"],
"metadata": {},
"last_activity_at": "2026-04-10T15:00:00Z",
"created_at": "2026-04-08T12:00:00Z",
"updated_at": "2026-04-10T15:00:00Z"
}
],
"meta": { "pagination": { "cursor": "eyJ...", "has_next": true, "limit": 25 } }
}
Crear lead
POST /api/v1/crm/leads
{
"first_name": "Carlos",
"last_name": "Ruiz",
"phone": "+51 998 765 432",
"company": "TechWave SAC",
"job_title": "CTO",
"source": "api",
"tags": ["hot"]
}
Respuesta 201: objeto Lead completo.
Obtener lead
GET /api/v1/crm/leads/:id
Actualizar lead
PATCH /api/v1/crm/leads/:id
Mismos campos que crear. Omite los campos que no quieras cambiar.
Eliminar lead
DELETE /api/v1/crm/leads/:id
Respuesta 204 No Content
Calificar lead
POST /api/v1/crm/leads/:id/qualify
Cambia el estado del lead a mql o sql según corresponda.
Descalificar lead
POST /api/v1/crm/leads/:id/disqualify
{ "reason": "Sin presupuesto" }
Convertir lead a contacto
POST /api/v1/crm/leads/:id/convert
{
"create_account": true,
"account_name": "TechWave SAC",
"create_deal": true,
"deal_title": "Propuesta inicial — TechWave",
"deal_amount": 5000,
"deal_currency": "USD",
"deal_pipeline_id": "uuid"
}
Crea un Contact (y opcionalmente Account + Deal), migra las activities del lead y marca el lead como converted.
Si el lead ya fue convertido, devuelve los IDs existentes (idempotente).
Actividades del lead
Listar actividades
GET /api/v1/crm/leads/:id/activities
Registrar actividad
POST /api/v1/crm/leads/:id/activities
Crear tarea asociada al lead
POST /api/v1/crm/leads/:id/tasks