/m2m/v1. Envía Authorization: Bearer <clave>. La clave determina el tenant.
Recibir, leer, responder y verificar
Si tu integración controla las respuestas, activa el modo manual antes de procesar eventos. Recibir un webhook no pausa la IA de Visito; de lo contrario, ambos sistemas podrían responder.- Suscríbete a
message.createdconwebhooks:writeyconversations:read. - Responde automáticamente solo cuando
data.direction=inbound. Las respuestas salientes también generan eventos. - Lee
GET /conversations/{conversationId}/messagesy pagina hasta encontrarmessageId. El webhook no incluye el texto. - Usa
POST /conversations/{conversationId}/replyconconversations:writey unIdempotency-Keyestable por evento entrante. - Consulta
GET /message-requests/{requestEventId}/statusconmessages:read, usando el identificador devuelto al aceptar la respuesta. Recibe cambios pormessage.delivery.updated.
queued, sent, delivered, read, failed, blocked, partial_sent y unknown. Consulta un mensaje con GET /messages/{messageId}/status; para solicitudes con varios mensajes, revisa cada elemento de messages.
Control de IA y atención humana
GET /conversations/{id}/policy:conversations:read.PATCH /conversations/{id}/policy:conversations:policy:write. Usa{"manualEnabled":true}para pausar IA yfalsepara reanudar. También aceptastatusAction,freezeForMinutesyunfreeze. No combines congelación y descongelación. Una transferencia pendiente bloquea cambios de política.GET /conversations/assignable-operators:conversations:assignment:read.PUT /conversations/{id}/assignment:conversations:assignment:write. Envía{"operatorId":"id"}o{"operatorId":null}; el operador debe pertenecer al tenant.GET /conversations/{id}/handoffs:conversations:read.POST /conversations/{id}/handoff/resolve:conversations:handoffs:write. AceptaresolutionNoteopcional y devuelve el control a IA; no resuelve una obligación de respuesta pendiente independiente.