N|Solid

Webhooks Q-Manager

Webhook é uma maneira prática para um sistema ou app fornecer dados para outras aplicações/sistemas com informações em tempo real.

De uma forma bem simples, uma Webhook é o disparo de um evento http (com destino a alguma URL). Esse disparo foi acionado por algum gatilho.

O que são os nossos eventos/gatilhos?

Os gatilhos são eventos que podem variar de um sistema pra outro. Por exemplo, em um sistema Financeiro, o gatilho de uma webhook pode ser o pagamento efetuado pelo cliente ou o cadastro de um novo cliente.

Em nosso universo de telefonia, nossas webhooks são acionadas através dos seguintes eventos:

  • Entrou na fila - Quando uma chamada entra em alguma fila

  • Ringando na fila - Quando uma chamada está tocando em algum operador de uma fila

  • Atendida - Quando um operador atende uma chamada na fila

  • Abandono - Quando um número desiste de esperar atendimento na fila

  • Clique - Quando um operador clica num botão personalizado em seu Webclient durante uma ligação

Detalhes de cada evento

Como os eventos são de contextos diferentes, cada um envia para a URL configurada um bloco de informações referente ao seu contexto. Alguns com mais detalhes, outros com menos. Abaixo estão os detalhes de cada evento:

Entrou na fila

POST

{
    "collection":"queue",
    "eventtype":"call",
    "uniqueid":"1523976313.777",
    "callid":"201804171445142020",
    "queue":"Developer",
    "from":"4899998888",
    "calldate":"2018-04-17T11:45:14.442Z",
    "event":"agile-incoming",
    "context":"default",
    "exten":"39548000",
    "callflow":[],
    "method":"POST"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

GET

URL

http://URL_ENDPOINT/?collection=queue&eventtype=call&uniqueid=1523976430.781&callid=201804171447112020&queue=Developer&from=4899998888&calldate=&event=agile-incoming&context=default&exten=39548000&method=GET

Atendida

POST

{
    "eventdate":"2018-04-27T16:07:58-03:00",
    "agent":"<unknown>",
    "membername":"SIP/2026",
    "from":"4899998888",
    "fromname":"Remoto Vincent",
    "queue":"Developer",
    "exten":"4839548000",
    "holdtime":"6",
    "ringtime":"5","userfield":"1524856072_20180427_1607_4899998888_4839518000",
    "method":"POST"}
1
2
3
4
5
6
7
8
9
10
11

GET

URL

http://URL_ENDPOINT/?eventdate=2018-04-27T16%3A10%3A25-03%3A00&agent=%3Cunknown%3E&membername=SIP%2F2026&from=4899998888&fromname=Remoto%20Vincent&queue=Developer&exten=4839548000&holdtime=2&ringtime=2&userfield=1524856223_20180427_1610_4899998888_4839548000&method=GET

Abandono

POST

{
    "eventtype":"call",
    "uniqueid":"1523986546.834",
    "callid":"201804171735472020",
    "queue":"Developer",
    "from":"4899998888",
    "calldate":"2018-04-17T14:35:47.055Z",
    "event":"queueabandon",
    "context":"default",
    "exten":"39548000",
    "callflow":[],
    "audio":{"record_file_path":"/var/www/html/snep/arquivos/2018-04-17/1523986546_20180417_1435_4899998888_39548000.wav",
    "record_file":"1523986546_20180417_1435_4899998888_39548000.wav",
    "record_file_basename":"1523986546_20180417_1435_4899998888_39548000"},
    "hangupdate":"2018-04-17T14:35:53.024Z",
    "duration":"6",
    "_id":"5ad630791d3bb7000fe0cd91",
    "method":"POST"}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

GET

URL

http://URL_ENDPOINT/?eventtype=call&uniqueid=1523986745.837&callid=201804171739062020&queue=Developer&from=4899998888&calldate=&event=queueabandon&context=default&exten=39548000&audio=&hangupdate=&duration=3&_id=&method=GET

Clique

POST

{
    "uniqueid":"1523987895.872",
    "linkedid":"1523987894.871",
    "agent":"1020",
    "name":"Vincent Thomas Braga",
    "endpoint":"SIP/2099",
    "queues":{"Developer":{"pause":"0","state":"off","penalty":"0"}},
    "state":"answer",
    "event":{"type":"call","content":{"type":"incoming"}},
    "from":"4899998888",
    "method":"POST",
    "field":""}
1
2
3
4
5
6
7
8
9
10
11
12