Captura de leads

API de leads

Un solo endpoint para mandar a YAVE los leads que capturas fuera del CRM: tu propio formulario, una landing, un portal, tu ERP o una herramienta de automatización. El lead entra igual que uno de Meta o WhatsApp: se asigna, se enruta al embudo correcto y activa la IA y las automatizaciones de la organización.

Crear un lead#

POST/webhooks/customX-API-Key

Envía un objeto JSON con action: "create_lead" y los datos del lead en data. Necesitas una API key de la organización.

Encabezados

X-API-Keystringrequerido
API key de la organización (empieza por yave_).
Content-Typestringrequerido
application/json
X-Webhook-Sourcestring
Nombre de tu sistema (por ejemplo sitio-web o zapier). Solo se usa en los registros para diagnosticar.

Cuerpo

actionstringrequerido
Siempre create_lead. Cualquier otro valor se ignora y responde {"status":"ignored"}.
data.namestringrequerido
Nombre completo del lead.
data.phonestring
Teléfono. Muy recomendado: es la llave de deduplicación y el canal por el que la IA y los asesores contactan. Acepta cualquier formato; se normaliza a E.164 (+573001234567). Si no trae indicativo se asume el país de la organización, así que para números extranjeros envía siempre el + y el indicativo.
data.emailstring
Correo electrónico.
data.sourcestring
Origen del lead. Por defecto WEBSITE. Usa valores estables en mayúsculas (LANDING, PORTAL, REFERIDO…): aparecen en los informes y las reglas de enrutamiento pueden usarlos.
data.sourceIdstring
Identificador del lead en tu sistema. Útil para cruzar registros.
data.budgetnumber
Presupuesto en la moneda de la organización, como número (sin puntos ni símbolo).
data.utm_source · utm_medium · utm_campaign · utm_content · utm_termstring
Parámetros de campaña. También se aceptan en camelCase (utmSource, utmCampaign…).
data.tagsstring[]
Etiquetas a aplicar. Si una etiqueta no existe en la organización, se crea.
data.customFieldsobject
Cualquier dato adicional (proyecto de interés, tipología, mensaje, respuestas del formulario). Se guarda en el lead y lo ve el asesor y la IA.

Ejemplo

curl -X POST https://api.yavehome.com/api/v1/webhooks/custom \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $YAVE_API_KEY" \
  -H "X-Webhook-Source: sitio-web" \
  -d '{
  "action": "create_lead",
  "data": {
    "name": "Laura Gómez",
    "phone": "+57 300 123 4567",
    "email": "[email protected]",
    "source": "LANDING",
    "sourceId": "form-8812",
    "budget": 350000000,
    "utm_source": "facebook",
    "utm_medium": "paid",
    "utm_campaign": "torre-2-preventa",
    "tags": ["Torre 2", "Preventa"],
    "customFields": {
      "proyecto_interes": "Torre 2",
      "tipologia": "Apartamento 3 alcobas",
      "mensaje": "¿Tienen financiación directa?"
    }
  }
}'

Respuesta

201 Created cuando se crea un lead nuevo:

201 · lead nuevo
{
  "status": "success",
  "leadId": "b1f3c6e2-7a0d-4c1e-9d55-2f8e0a4b7c19",
  "assignedTo": "5d0e9a41-…",
  "message": "Lead created and assigned successfully"
}

Si ya existía un lead con el mismo teléfono (ver duplicados), la respuesta es el lead existente, con su identificador en id en lugar de leadId. Para guardar el identificador en tu sistema, lee leadId ?? id.

Qué pasa cuando entra un lead#

  1. Normalización: el teléfono se lleva a formato internacional.
  2. Deduplicación: si el teléfono ya existe en la organización, no se crea otro lead (ver abajo).
  3. Asignación: se asigna un asesor con la estrategia de la organización (rotación equitativa por defecto). Si la organización asigna a mano, el lead queda sin asesor.
  4. Embudo: las reglas de enrutamiento de la organización eligen el embudo según source, utm_source y utm_campaign. Sin regla, va al embudo del equipo del asesor asignado.
  5. Automatizaciones e IA: se dispara el evento lead creado: notificaciones al asesor, primer contacto por WhatsApp con IA, nutrición y demás flujos que la organización tenga activos.

Pide al administrador una regla de enrutamiento

Si tu integración trae leads de un proyecto específico, envía un source o un utm_campaign fijo y pide al administrador de YAVE que cree la regla que los lleva a ese embudo. Así no dependes de identificadores internos.

Duplicados#

YAVE identifica a las personas por teléfono. Si llega un lead cuyo teléfono (en cualquiera de sus variantes: con o sin indicativo) ya existe en la organización:

  • No se crea un lead nuevo ni cambia el asesor asignado.
  • Si el lead existente no tenía correo, se completa con el que envías. Si su nombre era genérico, se reemplaza por el tuyo.
  • Se vuelve a notificar la entrada, para que el asesor sepa que la persona volvió a escribir.

Sin teléfono no hay deduplicación: cada envío crea un lead. Por eso conviene exigir el teléfono en tus formularios.

Reintentos#

Si recibes un 5xx o un 429, o la conexión se corta, reintenta con espera exponencial (por ejemplo 2 s, 8 s, 30 s). Como la deduplicación es por teléfono, un reintento de un lead con teléfono no crea un duplicado. No reintentes los 4xx (salvo 429): el problema está en la petición. Detalles en Errores y límites.

Zapier, Make, n8n y Dapta#

No necesitas escribir código: todas estas herramientas pueden hacer una petición HTTP.

HerramientaPaso a usar
ZapierWebhooks by Zapier → Custom Request
MakeHTTP → Make a request
n8nHTTP Request
DaptaPetición HTTP / API
  1. Método POST, URL https://api.yavehome.com/api/v1/webhooks/custom.
  2. Encabezados: X-API-Key con la clave y Content-Type con application/json.
  3. Cuerpo (JSON / raw): el mismo del ejemplo, mapeando los campos de tu disparador (nombre, teléfono, correo…) dentro de data.
  4. Prueba el paso y verifica en el CRM que el lead apareció.

¿Leads de Meta, TikTok o Google?

No los pases por Zapier: YAVE los recibe directo, más rápido y con la atribución completa de campaña, conjunto y anuncio. Ver integraciones nativas.

Alternativas sin API key#

  • Formularios de YAVE: incrustables en cualquier sitio, con validación, consentimiento y atribución incluidos.
  • Webhook de automatización: una URL propia de un flujo, útil cuando quieres que un evento externo haga algo más que crear el lead.