API - Agente

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

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

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

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

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

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." } }