Listar leads
leads:read
Query parameters
| Parámetro | Tipo | Notas |
|---|---|---|
limit, offset, sortOrder, query | — | Ver Paginación. query matchea nombre, apellido, email, empresa y dígitos del teléfono. |
sortBy | string | Uno de createdAt, firstName, email, company, status, source, estimatedValue. |
status | enum | Filtrar por LeadStatus. |
source | enum | Filtrar por LeadSource. |
Response 200
Crear un lead
leads:write
Al menos uno de email o phone es requerido. Las cadenas vacías cuentan como ausentes.
Request body
Semántica del campo
source. FlowEstate acepta cualquier string como source. Los valores conocidos de LeadSource se guardan tal cual. Los desconocidos se guardan como other en la columna enum, con la cadena original preservada en sourceMetadata.providedSource. Esto te permite mantener tu propio mapeo de UTM/campaña sin perder datos.Response 201
Errores comunes
400 VALIDATION_ERROR— email inválido, o falta tanto email como teléfono.403 FORBIDDEN— límite del plan alcanzado. El mensaje identifica el límite.
Efectos secundarios de webhooks
Se dispara un eventolead.created con X-FlowEstate-Source: api.
Obtener un lead
leads:read. Devuelve la misma forma que un item de la lista. 404 NOT_FOUND si el lead no existe o pertenece a otra organización.
Actualizar un lead
leads:write. Mismo body que crear, todos los campos opcionales. Debes proveer al menos un campo. La regla de identidad de contacto (email o teléfono) sigue aplicando tras el merge.
Pasa null para limpiar un campo; omítelo para dejarlo intacto.
Efectos secundarios de webhooks
- Siempre:
lead.updated. - Si cambió
stageId:lead.stage_changed. - Si cambió
statusawon:lead.won. Alost:lead.lost. - Si cambió
assignedToId:lead.assigned(cuando se setea) olead.unassigned(cuando se limpia).
Eliminar un lead
leads:write.
Response 200
Efectos secundarios de webhooks
Se dispara un eventolead.deleted.
Buscar un lead
leads:read. Diseñado para los pasos “Find Lead” de Zapier / Make.
Query parameters
Al menos uno de estos es requerido:| Parámetro | Descripción |
|---|---|
email | Match exacto (normalizado a minúsculas). |
phone | Matchea contra la forma solo-dígitos de los teléfonos guardados (así +1 (809) 555-1234 matchea 8095551234). |
q | Match difuso sobre nombre/apellido, email, empresa. |
limit | 1..50, default 10. |
Response 200
Listar actividades
leads:read. Lista actividades del timeline (notas, llamadas, correos, reuniones, eventos del sistema).
Query parameters
| Parámetro | Notas |
|---|---|
limit | 1..100, default 20. |
offset | Default 0. |
type | Filtrar por LeadActivityType. |
activityScope | Filtrar por LeadActivityScope. Default lead_event. |
Response 200
Agregar una nota
leads:write.
Request body
content es requerido, 1..5000 caracteres.
Response 201
Efectos secundarios de webhooks
Se dispara un eventolead.note_added.
Registrar una comunicación
leads:write. Registra una llamada, correo, reunión o mensaje de redes sociales en el timeline del lead.
Request body
| Campo | Requerido | Notas |
|---|---|---|
type | sí | Uno de call, email, meeting, social_message. |
direction | sí | inbound o outbound. |
content | no | Texto libre, ≤ 5000 caracteres. |
Response 201
Efectos secundarios de webhooks
Se dispara un eventolead.communication_logged.