Asignar empleado AI a conversación
Asigna un empleado AI (tipo operative) a la conversación. El cambio queda registrado en el timeline con autor api_token y el dashboard recibe el update en tiempo real (evento ai_employee_changed).
- Solo se pueden asignar empleados de tipo operative. Los tipos
jsonyvisionson internos del sistema — si envías un uuid/name de esos, respondeAI_EMPLOYEE_NOT_FOUND. - Identificación:
ai_employeeaceptauuidy/oname. Si pasas ambos, prevalecenamey eluuides fallback (útil cuando el empleado se renombra). - Para ejecutar el AI inmediatamente después de asignar, llama a
POST /conversation/run-ai— si quieres hacer ambas cosas en una sola request, estáPOST /conversation/ai-employeeconrun: true(P9 Fase 3). - Schedule activo: si la conversación tiene un mensaje programado pendiente, la transición humano↔AI lo cancela siempre (reglas 3.3/3.5 del producto) y la transición AI → otro AI exige
scheduled_message_actionexplícito (regla 3.2 — sin default). Ver docs/public-api/assignments.md § Reasignación con schedule activo. - Ejecución asíncrona (
run: true): la asignación y los broadcasts corren síncronos; una vez confirmada la asignación, el empleado AI se ejecuta en background y el endpoint responde202 Acceptedsin esperar al run. El run con reasoning puede tardar minutos. Los mensajes generados y el uso de tokens se notificarán por webhook (feature futura).
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.
Referencia al empleado AI. Al menos uno de uuid / name debe venir. Si se pasan ambos, prevalece name; si el name no matchea ningún empleado, cae al uuid como fallback.
false (default) solo asigna y responde 200. true asigna y luego ejecuta al empleado AI en background — agrega los guards de /run-ai (ventana 24h, wallet, visión, depth) y responde 202. El resultado del run (message_uuids, tokens) NO viene en la respuesta: se notificará por webhook (feature futura).
false
Solo aplica con run=true. Instrucciones extra que se pasan al empleado AI además del contexto natural de la conversación. Ignorado si run=false.
1 - 1000"Confirma la cita y pregunta si quiere recordatorio el día anterior."
Decisión sobre el mensaje programado activo de la conversación al cambiar el AI. Obligatorio cuando la transición es AI → otro AI con un schedule activo — la API no asume default (regla 3.2). Si se omite en ese caso responde SCHEDULED_MESSAGE_ACTION_REQUIRED (400). Para humano↔AI el campo es ignorado y el schedule se cancela siempre (reglas 3.3/3.5). Si se pasa reassign con una transición que no es AI→AI, responde SCHEDULED_MESSAGE_ACTION_INVALID (400). Si la conversación no tiene schedule activo, el campo también es ignorado.
reassign, cancel "cancel"
Respuesta
Empleado AI asignado (run=false — asignación pura).
Resultado de la operación sobre el schedule activo. none cuando no había schedule (caso normal) o cuando un race con cancel concurrente dejó el UPDATE en 0 filas. cancelled cuando se canceló (humano→AI, AI→humano, AI→AI con cancel). reassigned cuando se preservó apuntando al AI nuevo (AI→AI con reassign). preserved reservado para futuras semánticas — hoy el orquestador no lo emite. Útil para feedback al cliente externo del cambio aplicado al schedule.
preserved, reassigned, cancelled, none "cancelled"
Solo presente con run=true: la asignación se aplicó 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"