Skip to main content
Obtén el historial de conversaciones de un bot para auditar interacciones, analizar métricas o depurar flujos. Este endpoint retorna los mensajes enviados y recibidos con soporte para paginación y filtros de tiempo.

Endpoint

GET https://api.jelou.ai/v1/external/messages/history/{botId}

Parámetros de ruta

CampoUbicaciónTipoRequeridoDescripción
botIdPathstringIdentificador único del bot del que deseas consultar el historial.

Parámetros de consulta

CampoUbicaciónTipoRequeridoValor por defectoDescripción
limitQueryintegerNo10Número de mensajes a solicitar. Máximo: 50.
pageQueryintegerNo1Número de página.
startAtQuerydateNo-Fecha de inicio del rango a consultar. Formato ISO 8601.
endAtQuerydateNo-Fecha fin del rango a consultar. Formato ISO 8601.
clientIdQuerystringNo-Filtra el historial por un clientId específico asociado a tus integraciones.
messageIdQuerystringNo-Devuelve la conversación que contiene el mensaje con este identificador.
Si omites los campos opcionales, la API aplicará valores predeterminados para entregar la primera página con los mensajes más recientes.

Ejemplos de solicitud

Consulta básica

curl --request GET \
  --url 'https://api.jelou.ai/v1/external/messages/history/BOT_ID?limit=10&page=1' \
  --header 'Authorization: Basic {{Base64EncodedUsername:Password}}'

Con filtro de fechas

curl --request GET \
  --url 'https://api.jelou.ai/v1/external/messages/history/BOT_ID?limit=20&page=1&startAt=2025-01-01T00:00:00.000Z&endAt=2025-01-31T23:59:59.000Z' \
  --header 'Authorization: Basic {{Base64EncodedUsername:Password}}'

Con filtro de cliente

curl --request GET \
  --url 'https://api.jelou.ai/v1/external/messages/history/BOT_ID?limit=10&page=1&clientId=CLIENT_ID' \
  --header 'Authorization: Basic {{Base64EncodedUsername:Password}}'

Respuestas

{
  "pagination": {
    "limit": 10,
    "page": 1,
    "total": 1,
    "offset": 0,
    "totalPages": 1
  },
  "_metadata": {},
  "results": [
    {
      "recipient": {
        "id": "RECIPIENT_ID",
        "names": "Cliente Ejemplo"
      },
      "sender": {
        "id": "BOT_ID",
        "name": "Mi Bot",
        "type": "WhatsApp"
      },
      "by": "bot",
      "messageId": "msg-12345-67890-4a38-abcde-fghij",
      "status": "DELIVERED_USER",
      "bubble": {
        "type": "TEXT",
        "text": "Hola, bienvenido a Jelou"
      },
      "createdAt": "2025-01-15T10:30:00.000Z"
    }
  ]
}
{
  "message": "Authentication failed"
}
{
  "message": ["The Bot could not be found at the moment."],
  "statusMessage": "failed",
  "status": 0,
  "error": {
    "code": "E1019",
    "key": "BOT_NOT_FOUND",
    "description": "Error to be thrown when trying to get a Bot.",
    "developerMessages": {
      "es": "El botId no se encuentra en la base de datos o ha sido eliminado.",
      "en": "The botId is not found in the database or has been deleted."
    },
    "clientMessages": {
      "es": "El Bot no se pudo encontrar por el momento.",
      "en": "The Bot could not be found at the moment."
    }
  }
}
{
  "message": ["Los valores ingresados no son correctos."],
  "statusMessage": "failed",
  "status": 0,
  "error": {
    "code": "E0422",
    "key": "VALIDATOR_ERROR",
    "description": "Error to be thrown when cannot process request because of incoming values",
    "developerMessages": {
      "es": "Los valores del request no son correctos para ser procesados.",
      "en": "The request values are not correct for processing."
    },
    "clientMessages": {
      "es": "Los valores ingresados no son correctos.",
      "en": "The values entered are not correct."
    }
  },
  "validationError": {
    "startAt": [
      {
        "es": "el campo startAt debe ser una fecha",
        "en": "the startAt field must be a Date"
      }
    ]
  }
}
{
  "message": ["We are having trouble processing your request. Please try again later."],
  "statusMessage": "failed",
  "status": 0,
  "error": {
    "code": "E0000",
    "key": "UNKNOWN_ERROR",
    "description": "Error to be thrown when it couldn't be determined the reason of failure",
    "developerMessages": {
      "es": "Error inesperado ocurrido, revisar logs.",
      "en": "Unexpected error occurred, check logs."
    },
    "clientMessages": {
      "es": "Estamos teniendo problemas procesando la solicitud. Por favor intenta más tarde.",
      "en": "We are having trouble processing your request. Please try again later."
    }
  }
}

Detalle de la respuesta

Objeto pagination

CampoTipoDescripción
limitintegerNúmero de registros por página.
pageintegerPágina actual.
totalintegerTotal de registros.
offsetintegerDesplazamiento desde el inicio.
totalPagesintegerTotal de páginas disponibles.

Objeto results

CampoTipoDescripción
recipientobjectInformación del destinatario (id, names).
senderobjectInformación del remitente (id, name, type).
bystringIndica quién envió el mensaje: bot o user.
messageIdstringIdentificador único del mensaje.
statusstringEstado del mensaje: DELIVERED_USER, DELIVERED_CHANNEL, READ, etc.
bubbleobjectContenido del mensaje (type, text, mediaUrl, etc.).
createdAtdateFecha de creación del mensaje en formato ISO 8601.

Límites y restricciones

Límites importantes:
  • limit: Valor máximo permitido es 50
  • page: Debe ser un número entero positivo
  • startAt/endAt: Deben estar en formato ISO 8601 (ej: 2025-01-15T10:30:00.000Z)