Guías
De lead a visita
El recorrido completo con llamadas reales: crear el lead, ver su operación, agendar la visita.
export ORKASA_KEY="ork_live_…"
export ORKASA_API="https://orkasa.app/api/v1"
1. Crear el lead
Una sola llamada hace lo mismo que hace la aplicación: busca o crea el contacto (emparejando por teléfono y correo normalizados), inserta el lead, asigna un agente por turno rotativo, abre la operación y lanza la revisión de listas de sanciones.
curl -X POST "$ORKASA_API/leads" \
-H "Authorization: Bearer $ORKASA_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Ana Torrijos",
"phone": "+507 6123 4567",
"email": "ana.torrijos@example.com",
"origin": "web",
"intent": "primary_residence",
"budget_max": 250000,
"bedrooms_min": 2,
"operation_type": "buy"
}'
{
"data": {
"id": "4af8325e-02c0-4882-8c1c-99e7c4326751",
"full_name": "Ana Torrijos",
"temperature": "warm",
"assigned_agent_id": "6bd960d8-2d5a-43c0-a4cc-abb5e7c481db",
"contact_id": "5ccee837-bdd6-4bdd-ac43-14c429d96c1a",
"operation_id": "053655cc-47f4-43fd-9369-6f9dee659a28"
}
}
Guarda el operation_id: es el hilo del que cuelga todo lo demás.
Cuando todavía no sabes qué quiere
Un correo frío no dice si la persona compra o alquila. Omite operation_type y
el lead nace sin operación, con operation_id: null. No queda huérfano: la
primera calificación que el CRM confirme sobre él —una tarjeta de detección, o
el primer turno calificado del bot— es la que abre la operación.
curl -X POST "$ORKASA_API/leads" \
-H "Authorization: Bearer $ORKASA_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Luis Bernal",
"email": "luis.bernal@example.com",
"origin": "email",
"email_subject": "Consulta",
"email_body": "Me interesa el apartamento en El Cangrejo, ¿está disponible para alquilar?"
}'
Manda email_subject y email_body y la IA lee el correo, igual que lee un
mensaje entrante de WhatsApp: queda registrado como mensaje en el hilo de la
conversación, y la detección emite tarjetas con la intención y los criterios que
encontró. Ninguno de los dos campos se guarda en el lead.
Ese trabajo ocurre después de responder. La llamada no se ralentiza por
él, y si la detección falla nunca te cuesta el lead: siempre recibes tu 201
y el lead queda en crudo, como si el correo no se hubiera enviado.
2. Ver la operación
curl "$ORKASA_API/operations?lead_id=4af8325e-02c0-4882-8c1c-99e7c4326751&open_only=true" \
-H "Authorization: Bearer $ORKASA_KEY"
{
"data": [
{
"id": "053655cc-47f4-43fd-9369-6f9dee659a28",
"operation_type": "buy",
"flow": "buy",
"stage": "interested",
"stage_label": "Interesado",
"is_terminal": false
}
],
"meta": { "next_cursor": null, "limit": 25 }
}
Compara siempre contra stage. stage_label es para enseñárselo a una persona
— ver Etapas.
3. Agendar la visita
curl -X POST "$ORKASA_API/viewings" \
-H "Authorization: Bearer $ORKASA_KEY" \
-H "Content-Type: application/json" \
-d '{
"lead_id": "4af8325e-02c0-4882-8c1c-99e7c4326751",
"property_id": "b81f2a10-9c4e-4d55-bb0f-1e2f3a4b5c6d",
"scheduled_at": "2026-09-18T16:00:00-05:00",
"notes": "Prefiere ver el edificio por dentro antes de la unidad."
}'
scheduled_at es ISO 8601 y se valida. Manda la zona horaria explícita: una
hora sin huso se interpreta, y una visita a las 4 de la tarde que aparece a las
9 de la noche es una visita perdida.
Una visita se aloja en la agencia a través de su lead. Una visita sin
lead_id es invisible para la API — no es un error de permisos, sencillamente
no existe para ella.
Sigue en De la operación al cierre.