Saltar al contenido principal

Leads

Listar leads

GET /api/v1/crm/leads

Parámetros:

NombreTipoDescripción
cursorstringCursor de paginación
limitintItems por página (default 25, máx 100)
filter[status]stringnew, working, mql, sql, converted, disqualified
filter[source]stringmanual, import, api, web_form
filter[owner_id]stringUUID del propietario
searchstringBúsqueda por nombre, email o empresa
sortstring-created_at, -score, last_name

Respuesta 200:

{
"data": [
{
"id": "uuid",
"owner_id": "uuid",
"email": "[email protected]",
"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

{
"email": "[email protected]",
"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