Chats
Un chat acá eres tú, el desarrollador que tiene el token, en el canal cli. No es una forma de suplantar a un cliente: channel, from, as, session_id, reply_style, email y phone_number se rechazan todos, y environment es el único campo que create y reset aceptan.
| Método | Ruta | Cuerpo / query |
|---|---|---|
| POST | /chats | { "environment": "preview" } → chat_id |
| GET | /chats/:id | La conversación y su estado de identidad |
| POST | /chats/:id/reset | { "environment": "preview" } → un chat_id nuevo |
| DELETE | /chats/:id | Borrar la conversación |
| POST | /chats/:id/messages | { "content": "Hello" } → 202 con user_message_id |
| GET | /chats/:id/messages | after y limit |
environment es requerido en create y reset, y es el único campo de esta API sin default. En todo el resto, omitir el entorno cae en algo inofensivo; acá el fallback sería live, y una petición a la que le falta una palabra sería una conversación real con tu agente publicado — facturada, visible en la bandeja y corriendo tus herramientas contra secretos de producción. Envía preview para hablar con un despliegue de preview, o live cuando lo digas en serio. Un nombre que no es un entorno es 422, no una suposición.
Las respuestas son asíncronas: publica un mensaje y después consulta GET /chats/:id/messages con after apuntando al último id que hayas visto.
Ambos endpoints de lectura siempre devuelven la vista de desarrollador, porque el token ya es la vista de desarrollador — mensajes borrados, llamadas a herramientas con sus resultados, adjuntos, acuses de entrega del canal y un bloque identity que dice si el workspace reconoció al visitante y por qué no. No hay parámetro de vista que elegir; imprime tanto del payload como necesite quien llama.
Esta API solo ve las conversaciones que ella misma inició. Para leer lo que dijeron clientes reales en el widget, WhatsApp o Instagram, usa la bandeja.
