Saltar al contenido principal
POST
Asignar empleado AI a conversación

Autorizaciones

Authorization
string
header
requerido

API token emitido desde Settings → API Token del dashboard 1TO1 AI. Enviar en header Authorization: Bearer sk_1to1_...

Parámetros de ruta

slug
string
requerido

Slug del business, case-insensitive. Debe coincidir con el business del token.

Ejemplo:

"acme"

Cuerpo

application/json
conversation
object
requerido

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.

ai_employee
object
requerido

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.

run
boolean
predeterminado:false

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).

Ejemplo:

false

instructions
string

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.

Required string length: 1 - 1000
Ejemplo:

"Confirma la cita y pregunta si quiere recordatorio el día anterior."

scheduled_message_action
enum<string>

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.

Opciones disponibles:
reassign,
cancel
Ejemplo:

"cancel"

Respuesta

Empleado AI asignado (run=false — asignación pura).

conversation
object
requerido
ai_employee
object
requerido
schedule_action
enum<string>

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.

Opciones disponibles:
preserved,
reassigned,
cancelled,
none
Ejemplo:

"cancelled"

status
enum<string>

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).

Opciones disponibles:
processing
Ejemplo:

"processing"