Agentes

Los métodos aquí indicados irán siempre firmados con la cabecera "X-Api-Key" al igual que el resto de métodos.

Obtener los agentes disponibles

GET /agent

Con éste método se obtendrá un array JSON con los agentes dados de alta en el sistema, la respuesta sería así:

[
  {
    "id": "ff80818168e5d9b70168e5d9eda900c2",
    "extension": "100",
    "extensionName": "Agente 100",
    "name": "a100",
    "status": "ON_BREAK",
    "breakType": "Aseo"
  },
  {
    "id": "ff80818168e5d9b70168e5d9edb300c3",
    "extension": "101",
    "extensionName": "Agente 101",
    "name": "a101",
    "status": "AVAILABLE",
    "breakType": null
  },
  {
    "id": "ff80818168e5d9b70168e5d9edbc00c4",
    "extension": "102",
    "extensionName": "Agente 102",
    "name": "a102",
    "status": "LOGGED_OUT",
    "breakType": null
  }
]

Obtener los tipos de descanso disponibles

GET /agent/breaktype

Con éste método se obtendrá un array JSON con los tipos de descanso diponibles en la centralita.

Ejemplo

  • Respuesta
[
  {
    "id": "ff80818168e5d9b70168e5d9edd600ca",
    "name": "Test (no usar)"
  },
  {
    "id": "ff80818168e5d9b70168e5d9edd500c9",
    "name": "Descanso"
  },
  {
    "id": "ff80818168e5d9b70168e5d9edd400c8",
    "name": "Aseo"
  },
  {
    "id": "ff80818168e5d9b70168e5d9edd300c7",
    "name": "Comer"
  }
]

Cambiar el estado de un agente

POST /agent/{agentId}/status/{newStatus}

Para utilizar este servicio web es necesario conocer el {agentId} y elegir uno de los estados disponibles.

Tipos de status que se pueden elegir

Nombre Descripción
AVAILABLE El agente esta disponible para recibir llamadas de las colas
LOGGED_OUT El agente NO esta disponible para recibir llamadas de las colas
ON_BREAK El agente esta en pausa y no esta disponible para recibir llamadas de las colas

Además, el estado ON_BREAK permite definir en qué tipo de pausa esta el agente de las que están dadas de alta en el sistema. Cada tipo de pausa tiene un id único que es consultable mediante otro servicio web también descrito previamente.

Para hacer un cambio de estado a un tipo de pausa concreto, hay que hacerlo indicando el cambio de estado ON_BREAK seguido de los carácteres "::" y a continuación el id del tipo de descanso.

Formato: ON_BREAK::{breakTypeId}

Ejemplo para cambiar al agente con id ff80818168e5d9b70168e5d9eda900c2 al estado LOGGED_OUT

  • Petición
POST /agent/ff80818168e5d9b70168e5d9eda900c2/status/LOGGED_OUT
  • Respuesta
{
  "id": "ff80818168e5d9b70168e5d9eda900c2",
  "extension": "100",
  "extensionName": "Agente 100",
  "name": "a100",
  "status": "LOGGED_OUT",
  "breakType": null
}

Ejemplo para cambiar al agente con id ff80818168e5d9b70168e5d9eda900c2 al estado ON_BREAK y tipo de descanso "Comer"

  • Petición
POST /agent/ff80818168e5d9b70168e5d9eda900c2/status/ON_BREAK::ff80818168e5d9b70168e5d9edd300c7
  • Respuesta
{
  "id": "ff80818168e5d9b70168e5d9eda900c2",
  "extension": "100",
  "extensionName": "Agente 100",
  "name": "a100",
  "status": "ON_BREAK",
  "breakType": "Comer"
}

Obtener los cambios de estado de una serie de agentes

Para hacer las peticiones de los cambios de estado de uno o varios agentes se deberá enviar con un POST un objeto JSON con el filtro que necesitemos.

Propiedades disponibles en el filtro

Nombre Tipo Valor por defecto Opcional Descripción
start numérico - No Fecha de inicio, timestamp en milisengundos
end numérico - No Fecha fin, timestamp en milisegundos
statuses array de strings Array con los valores que queremos filtrar
agents array de strings Array con los agentes que queremos filtrar
offset numérico 0 No En el método de count se ignora. De todos los registros existentes, desde dónde se empieza
limit numérico 50 No En el método de count se ignora. A partir del offset, cuántos registros queremos

Los "statuses" posibles son los indicados en Estados de un agente

Contar los registros existentes para un filtro

POST /agent/statuscount

Descripción

Devuelve en JSON la propiedad count indicando cuántos registros existen para el filtro pasado como JSON en el POST para poder paginar los resultados.

Permisos

Obtener los cambios de estado de los agentes de la centralita asignada a la Api Key utilizada.

Ejemplo:

Petición para filtrar el estado "ON_BREAK" en los agentes "201" y "202" el día 19/05/2017 (desde las 00:00 hasta las 23:59 horas)

{
  "start":1495144800000,
  "end":1495231200000,
  "statuses": ["ON_BREAK"],
  "agents": ["201","202"],
}

La respuesta sería:

{
  "count": 2
}

Obtener los registros existentes para un filtro

POST /agent/status

Descripción

Devuelve en JSON con un array de los cambios de estado registrados para el filtro indicado pasado como JSON en el POST.

Permisos

Obtener los cambios de estado de los agentes de la centralita asignada a la Api Key utilizada.

Ejemplo:

Petición para filtrar el estado "ON_BREAK" en los agentes "201" y "202" el día 19/05/2017 (desde las 00:00 hasta las 23:59 horas)

{
  "start":1495144800000,
  "end":1495231200000,
  "statuses": ["ON_BREAK"],
  "agents": ["201","202"],
  "offset": 0,
  "limit": 2
}

La respuesta sería:

[
  {
    "agent":"201",
    "date":1495189860000,
    "status":"ON_BREAK",
    "agentBreakType":"Gestión"
  }
  {
    "agent":"202",
    "date":1495189860000,
    "status":"AVAILABLE",
    "agentBreakType":null
  }
]