ZEVRACentro de Ayuda
IntegracionesAPI de captación

Modo de prueba (dry run)

Valida tu integración y averigua qué haría la API sin escribir nada en tu CRM.

Para qué sirve

Con la cabecera X-Zevra-Dry-Run: true, la API hace todo el trabajo menos el último paso: valida el cuerpo, comprueba la llave, resuelve la propiedad, busca si el teléfono ya existe en tu CRM, y te cuenta lo que habría hecho. No crea ni modifica ningún lead. Es la forma de probar tu integración con datos reales, incluidos los teléfonos de tu equipo, sin ensuciar el pipeline.

curl -X POST https://api.zevra.co/v1/leads \
  -H "Authorization: Bearer zvr_live_TU_LLAVE" \
  -H "Content-Type: application/json" \
  -H "X-Zevra-Dry-Run: true" \
  -d '{
    "nombre": "Ana Ruiz",
    "telefono": "+52 55 0000 0001",
    "propiedad": { "codigo": "ZVR-0123" },
    "extras": { "origen_formulario": "landing-casas" }
  }'

La respuesta

Siempre es 200 con "status": "dry_run":

{
  "status": "dry_run",
  "would": "enrich",
  "would_match": {
    "lead_id": "315f3db3-8a1c-4e2b-9f7d-6c5a4b3e2d1f",
    "matched_on": "telefono"
  },
  "resolved": {
    "organizacion": "Inmobiliaria Ejemplo",
    "origen": "Formulario del sitio",
    "development_id": "c1a2b3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
    "nombre": "Ana Ruiz",
    "telefono": "+525500000001",
    "email": null,
    "extras": { "origen_formulario": "landing-casas" }
  },
  "request_id": "req_4f1c9a2b7d3e8c5a6b0f1e2d"
}
CampoQué te dice
would"create" si la solicitud real crearía un lead nuevo; "enrich" si enriquecería uno que ya existe.
would_matchEl lead que se enriquecería (lead_id y el campo por el que se encontró, hoy siempre "telefono"), o null cuando would es "create".
resolvedCómo interpretó la API tu solicitud: el nombre de tu organización, el origen (la llave) que reconoció, el development_id de la propiedad que encontró, el teléfono normalizado y los extras tal como se guardarían.

Si algo no cuadra (la organización no es la que esperabas, la propiedad resolvió a otro registro), lo ves aquí antes de que exista un lead.

Qué sí se valida

Todo lo que fallaría en una solicitud real falla igual en modo de prueba, con el mismo código: una llave revocada da 401, un cuerpo mal formado 400, una propiedad inexistente 422, y el límite de solicitudes por minuto cuenta igual. Solo cambia el final feliz.

Qué no hace

  • No crea ni modifica leads, notas, tareas ni asignaciones.
  • No dispara automatismos (primer contacto, seguimiento, Agente IA).
  • No reserva ni consulta la Idempotency-Key, aunque la mandes.

Sí queda registrada en Solicitudes recibidas con el estado "Prueba", para que puedas ver que llegó.

Un flujo típico de puesta en marcha

  1. Manda tu primer lead en modo de prueba con un teléfono de tu equipo. Comprueba resolved.organizacion y resolved.origen.
  2. Prueba la propiedad: manda propiedad.codigo, propiedad.external_code o propiedad.id y verifica que resolved.development_id sea el registro correcto.
  3. Manda un teléfono que ya exista en tu CRM y confirma que would sea "enrich"; uno inventado (por ejemplo +52 55 0000 0001) debe dar "create".
  4. Quita la cabecera y manda el lead real.

En esta página