GET
/api/mod/kommo/{espacio}/inbound/ledgerLo que entró por el chat y qué se hizo
Cuenta cada mensaje que llegó desde Kommo y qué se decidió con él: si el agente lo contestó, si se ignoró a propósito o si se perdió. La cifra que importa es perdidos: tiene que ser 0.
- PERMISOlee (vale cualquier clave)
- CRÉDITOSno gasta
- AUTENTICACIÓNBearer bth_…
PARÁMETROS
| CAMPO | TIPO | REQUERIDO | QUÉ ES |
|---|---|---|---|
| espacio | string | SÍ | El id del espacio (sale en GET /api/companies). Tiene que tener el módulo Kommo. |
| horas | float, query | no | Las últimas N horas. Por defecto 24. |
| detalle | bool, query | no | true suma la lista de los perdidos, para buscarlos en Kommo. |
| limit | int, query | no | Cuántos perdidos trae detalle, el más reciente primero. Por defecto 200. |
RESPUESTA 200
| CAMPO | TIPO | QUÉ ES |
|---|---|---|
| horas | number | La ventana que pediste. |
| desde | number | Su inicio, en segundos desde 1970. |
| total | integer | Mensajes que entraron. |
| atendidos | integer | Los que se volvieron un turno. |
| perdidos | integer | Mensajes con contenido que no se pudieron atender: sin_via, sin_conversation_id o sin_lead. Tiene que ser 0. |
| no_atendidos_por_politica | integer | Los que no se contestaron por una decisión tuya: chat fuera de la lista de pruebas, bot apagado, una persona al mando o pausa. |
| no_atendidos | integer | total − atendidos: perdidos, por política, duplicados y ecos. |
| por_decision | { [decision]: integer } | El recuento por decisión. Lista abajo. |
| por_via | { [via]: integer } | Por dónde entró: salesbot, amojo (el chat) o add_message (un adjunto). |
| ultimo_ts | number | null | El último mensaje anotado, de cualquier fecha. null: ninguno. |
| perdidos_detalle | array | Solo con detalle=true. Cada uno con id, ts, via, decision, atendido, conversation_id, session_id, msgid y outbox_id. Sin el texto del mensaje. |
ERRORES DE ESTA RUTA · SIEMPRE {"detail": …}
| STATUS | CUÁNDO | DETAIL LITERAL |
|---|---|---|
| 403 | El espacio no tiene el módulo Kommo | módulo no habilitado para este espacio. |
| 422 | Un campo de otro tipo, o un valor fuera de su lista (detail es una lista) | — |
Y los de cualquier ruta —clave inválida, cuenta no al día, IP, límites—, en Errores, límites y créditos.
CONVIENE SABER
- Las decisiones:
turno(contestado);sin_via,sin_conversation_idysin_lead(perdidos);fuera_de_allowlist,bot_off,humano_activoypausa_manager(por política);duplicado_msgid,duplicado_contenido,duplicado_cruce_via,eco_botysin_contenido(el mismo mensaje otra vez, el eco de una respuesta del agente o un mensaje vacío). - Kommo recibe siempre un 200 al mandar un mensaje, se atienda o no: esta es la forma de ver lo que no llegó a turno. Con
conversation_idlo encuentras en Kommo.