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
MethodGET

Query String

NomeValor PadrãoValor Máximo
limit5050
page1-

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
MethodPOST


Corpo do JSON

CampoDescrição
nameNome do agente
loginLogin do agente
passwordSenha do agente
queuesLista 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}
MethodPUT


Corpo do JSON (Todos os campos são opcionais)

CampoDescrição
nameNome do agente
passwordSenha do agente
queuesLista de ids de filas que o agente atende
levelsLista 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
MethodGET

Query String

NomeValor PadrãoValor Máximo
limit5050
page1-


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
MethodPOST

Corpo do JSON

CampoDescrição
pause_idID 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
MethodPOST

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
MethodPOST

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