API - Agente
Disponível a partir da versão 6.15.0
Operações básicas para manipulação do agente.
Nos cabeçalhos dos requests, é necessário incluir uma chave "token" cujo valor seja um token de API.
Listar agentes
Endpoint | /api/v1/agents |
|---|---|
Method | GET |
Query String
Nome | Valor Padrão | Valor Máximo |
|---|---|---|
limit | 50 | 50 |
page | 1 | - |
Exemplo de requisição
curl -X GET \
'https://example.evolux.net.br/api/v1/agents?page=1&limit=2' \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>'Exemplo de resposta
{
"pagination": {
"max_limit": 2,
"limit": 2,
"first_url": "http://example.evolux.net.br/api/v1/agents/?limit=2&page=1",
"next_url": "http://example.evolux.net.br/api/v1/agents/?limit=2&page=2",
"items": 2,
"last_url": "http://example.evolux.net.br/api/v1/agents/?limit=2&page=31",
"total": 62,
"current_url": "http://example.evolux.net.br/api/v1/agents/?limit=2&page=1",
"prev_url": null
},
"meta": {
"status": 200,
"message": "OK"
},
"data": [
{
"archived": true,
"enable": false,
"name": "Agent 1",
"queues": [],
"current_extension": null,
"last_pause": null,
"last_login": null,
"current_pause": null,
"login": "agent1",
"current_outbound_queue": null,
"id": 53
},
{
"archived": true,
"enable": false,
"name": "Agent 2",
"queues": [
4
],
"current_extension": null,
"last_pause": {
"max_duration": null,
"time_start": "2018-07-07T16:40:11+00:00",
"reason_id": 18,
"time_end": "2018-07-07T17:06:38+00:00",
"reason": {
"system": false,
"productive": true,
"type": "",
"id": 18,
"description": "Pausa Cadastro"
},
"id": 46983
},
"last_login": {
"exten": "sip/3012",
"time_logoff": "2018-07-07T17:06:38+00:00",
"id": 4591,
"time_login": "2018-07-07T12:27:42+00:00"
},
"current_pause": null,
"login": "agent.2",
"current_outbound_queue": null,
"id": 40
}
]
}Criar um agente
Endpoint | /api/v1/agents |
|---|---|
Method | POST |
Corpo do JSON
Campo | Descrição |
|---|---|
name | Nome do agente |
login | Login do agente |
password | Senha do agente |
queues | Lista de ids de filas que o agente atende |
Exemplo de requisição
curl --X POST \
https://example.evolux.net.br/api/v1/agents \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>' \
-d '{"name": "Agent 1", "login": "agent.1", "password": "agent_pass", "queues": [1, 3]}'Exemplos de resposta
{
"meta": {
"status": 201,
"message": "Created"
},
"data": {
"archived": false,
"enable": true,
"name": "Agent 1",
"queues": [
1, 3
],
"current_extension": null,
"last_pause": null,
"last_login": null,
"current_pause": null,
"login": "agent.1",
"current_outbound_queue": null,
"id": 1
}
}{
"meta": {
"status": 400,
"message": "Bad request"
},
"errors": [
"Agent not created, queues list must contains only integer ids."
]
}{
"meta": {
"status": 400,
"message": "Bad request"
},
"errors": [
"Agente não foi criado, esse login já está sendo usado."
]
}Editar um agente
Endpoint | /api/v1/agents/{agent_id} |
|---|---|
Method | PUT |
Corpo do JSON (Todos os campos são opcionais)
Campo | Descrição |
|---|---|
name | Nome do agente |
password | Senha do agente |
queues | Lista de ids de filas que o agente atende |
levels | Lista de objetos que contém as propriedades "queue_id" e "priority" |
O campo levels está disponível a partir da versão 6.32.0
Exemplo de requisição
curl --X PUT \
https://example.evolux.net.br/api/v1/agents/1 \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>' \
-d '{"levels": [{"queue_id": 1, "priority": 3}]}'Exemplos de resposta
{
"meta": {
"status": 200,
"message": "OK"
}
}{
"meta": {
"status": 400,
"message": {
"password": "password must not be empty or contain only spaces"
}
},
"errors": [
"password": "password must not be empty or contain only spaces"
]
}Listar pausas do agente
Endpoint | /api/v1/agents/{agent_id}/pauses |
|---|---|
Method | GET |
Query String
Nome | Valor Padrão | Valor Máximo |
|---|---|---|
limit | 50 | 50 |
page | 1 | - |
Exemplo de requisição
curl -X POST \
https://example.evolux.net.br/api/v1/agents/1/pauses?page=1&limit=2 \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>'Exemplo de respostas
{
"pagination": {
"max_limit": 50,
"limit": 50,
"first_url": "https://example.evolux.net.br/api/v1/agents/1/pauses?page=1",
"next_url": null,
"items": 2,
"last_url": "https://example.evolux.net.br/api/v1/agents/1/pauses?page=1",
"total": 2,
"current_url": "https://example.evolux.net.br/api/v1/agents/1/pauses?page=1",
"prev_url": null
},
"meta": {
"status": 200,
"message": "OK"
},
"data": [
{
"pause": {
"system": false,
"productive": true,
"type": "nr17rest10",
"id": 49,
"description": "10 minutos/NR17"
},
"automatic_unpause": false,
"queue_id": 13,
"disable_unpause": false,
"limit_duration": 5,
"id": 3
},
{
"pause": {
"system": false,
"productive": true,
"type": null,
"id": 50,
"description": "Almoço"
},
"automatic_unpause": false,
"queue_id": 20,
"disable_unpause": false,
"limit_duration": 3600,
"id": 4
}
]
}Pausar um agente
Endpoint | /api/v1/agents/{agent_id}/pause |
|---|---|
Method | POST |
Corpo do JSON
Campo | Descrição |
|---|---|
pause_id | ID da pausa |
Exemplo de requisição
curl -X POST \
https://example.evolux.net.br/api/v1/agents/1/pause \
-H 'Content-Type: application/json' \
-H 'token: <EVOLUX_TOKEN>' \
-d '{"pause_id": 49}'Exemplos de resposta
{
"meta": {
"status": 200,
"message": "OK"
}
}{
"meta": {
"status": 404,
"message": "Agent not found"
}
}{
"meta": {
"status": 422,
"message": "Agent already paused"
},
"errors": [
"Request well-formed but has a semantic impossibility."
]
}Despausar um agente
Endpoint | /api/v1/agents/{agent_id}/unpause |
|---|---|
Method | POST |
Exemplo de requisição
curl -X POST \
https://example.evolux.net.br/api/v1/agents/1/unpause \
-H 'token: <EVOLUX_TOKEN>'Exemplos de resposta
{
"meta": {
"status": 200,
"message": "OK"
}
}{
"meta": {
"status": 422,
"message": "Agent is unpaused"
},
"errors": [
"Request well-formed but has a semantic impossibility."
]
}Deslogar um agente
Endpoint | /api/v1/agents/{agent_id}/logoff |
|---|---|
Method | POST |
Exemplo de requisição
curl -X POST \
https://example.evolux.net.br/api/v1/agents/1/logoff \
-H 'token: <EVOLUX_TOKEN>'
Exemplos de resposta
{
"meta": {
"status": 200,
"message": "OK"
}
}{
"meta": {
"status": 400,
"message": "Agent is not logged"
}
}{
"meta": {
"status": 400,
"message": "Não é possível sair enquanto está em uma chamada."
}
}