Ejecutar empleado AI
Ejecuta un empleado AI sobre la conversación.
- Sin
ai_employee→ ejecuta el empleado AI asignado. Si la conversación la atiende un humano (ai_employee_id IS NULL), devuelveINVALID_ASSIGNEE_FOR_RUN_AI(409): el caller debe pasarai_employeeexplícito o reasignar un AI conPOST /conversation/ai-employee. - Con
ai_employee→ ejecuta ese empleado aunque no esté asignado a la conversación. Si coincide con el asignado corre comorun_assigned; si difiere, como ejecución transient que no cambiaai_employee_id. Paridad con el botón “Ejecutar agente” del dashboard.
Identificación del empleado: ai_employee acepta uuid y/o name. Si pasas ambos prevalece name con fallback a uuid. Solo resuelve empleados operativos activos.
Preconditions:
- Ventana de 24h abierta (
WINDOW_CLOSEDsi cerrada). El AI responde al cliente — con la ventana cerrada el mensaje no se entrega. - Wallet del empleado a ejecutar OK.
- Visión OK (fail-closed si hay items pending — el AI podría necesitar interpretarlos).
- Grafo de action sets dentro del límite de profundidad (
ACTIONS_DEPTH_EXCEEDED).
No aplica guard de inbox_status: la API puede ejecutar el AI sobre una conversación pending bajo responsabilidad del caller.
Ejecución asíncrona: los guards corren síncronos; si pasan, el endpoint responde 202 Accepted de inmediato y el empleado AI se ejecuta en background. La respuesta no espera al empleado — el run con reasoning puede tardar minutos. Los mensajes generados y el uso de tokens se notificarán por webhook (feature futura). Si un guard falla, se responde un 4xx síncrono y el AI no se ejecuta.
Autorizaciones
API token emitido desde Settings → API Token del dashboard 1TO1 AI. Enviar en header Authorization: Bearer sk_1to1_...
Parámetros de ruta
Slug del business, case-insensitive. Debe coincidir con el business del token.
"acme"
Cuerpo
Identificador de la conversación — exactamente UNO de los cuatro campos debe venir. Orden de resolución: uuid > whatsapp_user_id > username > phone. El lookup filtra por el business del token (defense in depth cross-tenant). Resolver por phone o username puede devolver 409 (PHONE_NUMBER_AMBIGUOUS / USERNAME_AMBIGUOUS) cuando varios contactos comparten el identificador — aplica a cualquier endpoint que acepte esta referencia.
Empleado AI a ejecutar. Opcional: si se omite, se ejecuta el empleado asignado a la conversación. Si se pasa, ejecuta ese empleado aunque no esté asignado (transient — no cambia ai_employee_id). Acepta uuid y/o name; si pasas ambos prevalece name con fallback a uuid.
Instrucciones adicionales que se pasan al empleado además del contexto de la conversación. Min 1, max 1000 chars (whitespace al inicio/final se trimea).
1 - 1000"Responde al cliente que el descuento aplica hasta el viernes"
Respuesta
Run aceptado. Los guards (ventana, wallet, visión, depth) pasaron y el empleado AI se ejecuta en background — la respuesta no espera al empleado.
El run fue aceptado y el empleado AI se ejecuta en background. La respuesta NO espera al empleado — los mensajes generados y el uso de tokens se notificarán por webhook (feature futura).
processing "processing"