API Outbound
Iniciar llamadas salientes por HTTP, desde n8n, Make, Zapier o tu servidor. Endpoint, autenticación, solicitud, respuesta, idempotencia y límites.
Con la API Outbound inicias una llamada de tu agente con una sola solicitud HTTP. Pasas el número de destino, el número de origen y los datos de contexto, bhomy pone en marcha al agente y este lleva la conversación con los valores de tu contexto.
De un vistazo
| Punto | Valor |
|---|---|
| Endpoint | POST https://app.bhomy.ai/api/v1/outbound |
| Autenticación | Authorization: Bearer bhomy_live_sk_… |
| Formato | JSON, Content-Type: application/json |
| Respuesta en caso de éxito | 202 Accepted |
| Límite | 60 solicitudes en 60 segundos, por clave y por dirección IP |
| Requisito | identidad verificada, número de origen con agente |
Crear una clave API
- En el panel, abre Clave API y haz clic en Nueva clave.
- Escribe un nombre, por ejemplo «Make.com recordatorio de citas».
- Copia la clave y guárdala en un lugar seguro. Solo se muestra esta vez.
La solicitud
| Campo | Obligatorio | Contenido |
|---|---|---|
toNumber | sí | número de destino en formato E.164 con signo más, por ejemplo +491701234567 |
fromNumber | sí | tu número de origen, importado o conectado por SIP, con un agente asignado |
context | no | objeto con valores para el saludo y el prompt |
El agente se determina por el número de origen. No indicas ningún ID de agente.
curl -X POST https://app.bhomy.ai/api/v1/outbound \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 4f9c2b1e-7a3d-4c55-9a0e-2d6f8b1c3e77" \
-d '{
"toNumber": "+491701234567",
"fromNumber": "+494012345678",
"context": {
"customer_name": "Anna Berger",
"appointment": "15 de enero"
}
}'
Se permiten espacios, guiones y paréntesis en los números, así como un (0) después del prefijo del país. La API rechaza un número sin signo más en lugar de adivinar un país.
Usar el contexto en la conversación
Cada campo de context está disponible como variable. En el prompt o en el saludo lo escribes entre dobles llaves:
Hola, {{customer_name}}, le habla el asistente de la empresa Sommer. Le llamo por su
cita del {{appointment}}.
Si falta un campo en context, bhomy lo elimina del texto. Mantén los valores planos y tal como se dicen.
La respuesta
Si todo va bien, la API responde con 202. Después el agente marca. El resultado de la conversación aparece más tarde en el historial de llamadas y se envía a tus automatizaciones.
{
"success": true,
"callId": "call_8f2a1c",
"roomName": "outbound_call_8f2a1c",
"status": "queued",
"dispatchId": "AD_x7Kp2",
"message": "Calling +491701234567"
}
En caso de error, error contiene un código fijo al que tu integración puede reaccionar, y message una explicación. Todos los códigos con su solución: Códigos de error de la API.
Idempotencia: cada llamada exactamente una vez
Las herramientas de automatización repiten las solicitudes cuando no llega una respuesta. Para que nadie reciba dos llamadas, envías un header Idempotency-Key con un valor nuevo por llamada, por ejemplo un UUID o el ID de la fila de tu hoja de cálculo.
| Situación | Respuesta |
|---|---|
| Misma clave, misma solicitud | la respuesta de la primera solicitud, con el header Idempotent-Replayed: true. No se vuelve a marcar |
| Misma clave, otra solicitud | 422 con idempotency_key_reused |
| La primera solicitud sigue en curso | 409 con idempotency_request_in_progress y Retry-After |
| Clave no válida: vacía, de más de 255 caracteres o no ASCII | 400 con invalid_idempotency_key |
Sin el header, cada solicitud inicia una llamada nueva.
Límites
| Límite | Respuesta al alcanzarlo |
|---|---|
| 60 solicitudes en 60 segundos, por clave y por dirección IP | 429 con rate_limit_exceeded y Retry-After |
| llamadas simultáneas de tu plan | 429 con concurrent_limit_reached y Retry-After |
| Destinos de un número importado: números fijos y móviles alemanes | 422 con imported_number_destination |
Con 429, espera los segundos indicados en Retry-After antes de volver a intentarlo.
Ejemplos para herramientas de automatización
| Herramienta | Módulo | Guía |
|---|---|---|
| n8n | HTTP Request | n8n |
| Make | HTTP › Make a request | Make |
| Zapier | Webhooks by Zapier › Custom Request | Zapier |
Recibir los resultados
La API solo informa de si se aceptó el encargo. Cómo terminó la conversación lo recibes después de la llamada a través del Ticket CRM en la pestaña Herramientas › Automatización: con callId, resumen, transcripción y datos recogidos. Con el callId asignas el resultado a tu encargo.
¿Te ha sido útil esta página?