Ir al contenido

Crear prospectos por REST

Además de las herramientas crear_prospecto / crear_prospectos —que se invocan por el protocolo MCP— podés crear prospectos con una llamada REST normal (POST con JSON). Es la misma capacidad, la misma credencial y el mismo resultado: pensada para cargarlos desde un script, un scraper o cualquier sistema, sin un cliente MCP.

Las dos vías escriben en el mismo CRM y comparten el mismo dedup: un prospecto cargado por REST se reconoce si vuelve por el MCP (y al revés).

Igual que el Conector MCP: una clave sk_live_* con kind=mcp y access=full (crear es escritura), en el header Authorization. El tenant se deriva de la credencial, nunca del cuerpo del request. Una key de Canal API (kind=channel) no sirve acá.

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx

POST https://api.overtaker.online/api/v1/prospects

Crea una ficha de contacto + un lead en estado NEW para seguirlo en el funnel. No le envía ningún mensaje al negocio. Requiere al menos telefono o email.

CampoTipoDescripción
nombretextonombre del negocio o persona (obligatorio)
telefonotextoteléfono o WhatsApp (se normaliza) — requerido si no hay email
emailtextoemail — requerido si no hay teléfono
webtexto (opcional)sitio web
instagramtexto (opcional)usuario o URL de Instagram
direcciontexto (opcional)dirección física
senal_fittexto (opcional)evidencia de por qué encaja como cliente
scorenúmero (opcional)fit 0-100 (qualification_score)
verticaltexto (opcional)rubro (ej. dentales)
zonatexto (opcional)comuna o ciudad

Los datos de contacto (web/instagram/dirección) quedan en la ficha del contacto; la señal de fit y el score, en el lead.

Ventana de terminal
curl -X POST https://api.overtaker.online/api/v1/prospects \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"nombre": "Clínica Dental Sonríe",
"telefono": "+56 9 5781 6940",
"web": "https://clinicasonrie.cl",
"senal_fit": "agenda 100% por WhatsApp, sin bot",
"score": 80, "vertical": "dentales", "zona": "Providencia"
}'
// respuesta 200 — contacto + lead NEW creados (o el existente si ya estaba)
{
"creado": true,
"reusado": false,
"contacto": { "id": "", "nombre": "Clínica Dental Sonríe", "telefono": "56957816940", "email": null },
"lead": { "id": "", "estado": "NEW", "etapa": "NEW", "score": 80 }
}

Si ya existe un contacto con ese teléfono/email y tiene un lead abierto, no se duplica: la respuesta trae "creado": false, "reusado": true con el lead existente.

POST https://api.overtaker.online/api/v1/prospects/bulk

Hasta 50 prospectos de una. Un prospecto que falle no aborta el lote: se reporta en resultados con su error, y el resto se crea igual.

Ventana de terminal
curl -X POST https://api.overtaker.online/api/v1/prospects/bulk \
-H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{ "prospectos": [
{ "nombre": "Vet Providencia", "telefono": "+56911112222", "vertical": "veterinarias" },
{ "nombre": "Clínica Norte", "email": "hola@norte.cl", "vertical": "dentales", "score": 70 }
] }'
// respuesta 200
{
"creados": 2, "reusados": 0, "errores": 0,
"resultados": [
{ "nombre": "Vet Providencia", "lead_id": "", "creado": true },
{ "nombre": "Clínica Norte", "lead_id": "", "creado": true }
]
}
  • Rate limit: 60 req/min por API Key (el single y el bulk comparten el mismo contador).
  • Bulk: de 1 a 50 prospectos por request.
CódigoCuándo
401Falta el Bearer, la key es inválida/expirada, o no es kind=mcp (ej. una key de Canal API).
403La key es access=read: crear un prospecto requiere access=full.
422Falta nombre, faltan telefono y email, score fuera de 0-100, o el lote supera 50.