curl --request POST \
--url https://api.jelou.ai/v1/metrics/conversations/attended/external \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"startAt": "2023-11-07T05:31:56Z",
"endAt": "2023-11-07T05:31:56Z",
"getJson": true
}
'{
"message": [
"<string>"
],
"status": "<string>",
"results": [
{
"_id": "<string>",
"operator": {
"names": "<string>"
},
"user": {
"id": "<string>"
},
"bot": {
"name": "<string>"
},
"company": {
"id": "<string>"
},
"assignationMethod": {
"teamName": "<string>"
},
"state": "active",
"endedReason": "<string>",
"startAt": "<string>",
"endAt": "<string>",
"origin": "<string>",
"timeRepliedOperator": 123,
"conversationDuration": 123
}
],
"pagination": {
"limit": 123,
"page": 123,
"total": 123,
"offset": 123,
"totalPages": 123
},
"links": [
{}
]
}Query conversations handled by human agents
curl --request POST \
--url https://api.jelou.ai/v1/metrics/conversations/attended/external \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"startAt": "2023-11-07T05:31:56Z",
"endAt": "2023-11-07T05:31:56Z",
"getJson": true
}
'{
"message": [
"<string>"
],
"status": "<string>",
"results": [
{
"_id": "<string>",
"operator": {
"names": "<string>"
},
"user": {
"id": "<string>"
},
"bot": {
"name": "<string>"
},
"company": {
"id": "<string>"
},
"assignationMethod": {
"teamName": "<string>"
},
"state": "active",
"endedReason": "<string>",
"startAt": "<string>",
"endAt": "<string>",
"origin": "<string>",
"timeRepliedOperator": 123,
"conversationDuration": 123
}
],
"pagination": {
"limit": 123,
"page": 123,
"total": 123,
"offset": 123,
"totalPages": 123
},
"links": [
{}
]
}POST https://api.jelou.ai/v1/metrics/conversations/attended/external
| Field | Location | Type | Required | Description |
|---|---|---|---|---|
| Authorization | Header | string | Yes | Credentials in clientId:clientSecret format. |
| Field | Location | Type | Required | Default value | Description |
|---|---|---|---|---|---|
| limit | Query | integer | No | 10 | Maximum number of conversations per page. |
| page | Query | integer | No | 1 | Page number for pagination. |
| Field | Type | Required | Description |
|---|---|---|---|
| startAt | string | Yes | Start date of the range in ISO 8601 format. Example: 2025-01-01T00:00:00-05:00 |
| endAt | string | Yes | End date of the range in ISO 8601 format. Example: 2025-01-01T23:59:59-05:00 |
| getJson | boolean | Yes | Must be true to receive the response in JSON format. |
curl -X POST 'https://api.jelou.ai/v1/metrics/conversations/attended/external?limit=10' \
-H 'Authorization: <clientId>:<clientSecret>' \
-H 'Content-Type: application/json;charset=UTF-8' \
-d '{
"startAt": "2025-01-01T00:00:00-05:00",
"endAt": "2025-01-01T23:59:59-05:00",
"getJson": true
}'
const axios = require('axios');
axios({
method: 'POST',
url: 'https://api.jelou.ai/v1/metrics/conversations/attended/external',
params: { limit: 10 },
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'Authorization': '<clientId>:<clientSecret>'
},
data: {
startAt: '2025-01-01T00:00:00-05:00',
endAt: '2025-01-01T23:59:59-05:00',
getJson: true
}
});
200 - Successful response
{
"message": ["Retrieving conversations succeeded"],
"status": "success",
"results": [
{
"_id": "CONVERSATION_ID",
"operator": {
"names": "OPERATOR_NAME"
},
"user": {
"id": "ID"
},
"bot": {
"name": "BOT_NAME"
},
"company": {
"id": "COMPANY_ID"
},
"assignationMethod": {
"teamName": "TEAM_NAME"
},
"state": "expired",
"endedReason": "expired",
"startAt": "2023-06-08 15:52:41",
"endAt": "2023-06-08 23:07:56",
"origin": "ticket",
"timeRepliedOperator": 795880,
"conversationDuration": 26115953
}
],
"pagination": {
"limit": 1,
"total": 61,
"offset": 0,
"totalPages": 61
},
"links": [
{
"number": 1,
"url": "/v1/metrics/conversations/attended/external?limit=1&page=1"
},
{
"number": 2,
"url": "/v1/metrics/conversations/attended/external?limit=1&page=2"
}
]
}
401 - Unauthorized
{
"message": "Authentication failed"
}
422 - Unprocessable Entity
{
"message": ["The values entered are not correct."],
"statusMessage": "failed",
"status": 0,
"error": {
"code": "E0422",
"key": "VALIDATOR_ERROR"
}
}
429 - Too Many Requests
{
"message": "Rate limit exceeded"
}
500 - Internal Server Error
{
"message": ["We are having trouble processing your request. Please try again later."],
"statusMessage": "failed",
"status": 0
}
| Field | Type | Description |
|---|---|---|
| _id | string | Unique conversation identifier. |
| operator | object | Information about the operator who attended the conversation (names). |
| user | object | User information (id). |
| bot | object | Associated bot information (name). |
| company | object | Company information (id). |
| assignationMethod | object | Assignment method and team (teamName). |
| state | string | Conversation state: active, closed, resolved, expired. |
| endedReason | string | Reason why the conversation ended. |
| startAt | string | Conversation start date and time. |
| endAt | string | Conversation end date and time. |
| origin | string | Conversation source (e.g.: ticket). |
| timeRepliedOperator | number | Operator response time in milliseconds. |
| conversationDuration | number | Total conversation duration in milliseconds. |
| Field | Type | Description |
|---|---|---|
| limit | integer | Conversations returned per page. |
| total | integer | Total conversations matching the filters. |
| offset | integer | Conversations skipped according to the requested page. |
| totalPages | integer | Total number of available pages. |
| Field | Type | Description |
|---|---|---|
| number | integer | Page number. |
| url | string | Relative URL to access that page. |
timeRepliedOperator and conversationDuration fields to analyze the efficiency of your support team:Basic authentication using Base64 encoded clientId:clientSecret
Was this page helpful?