Skip to main content
Respondido

API para saber o tempo de fila e primeira resposta de cada ticket separadamente

  • September 28, 2022
  • 3 comentários
  • 164 Visualizações

Quando extraio o histórico de atendimento e mando no meu email, na planilha tem o tempo em espera na fila e o tempo da primeira resposta de cada ticket, qual api posso usar para pegar esses mesmo dados?

Melhor resposta por raphael.silva

Olá @Alexandre_Gomes_Matu, tudo bem?

As informações sobre o atendimento humano são fornecidos ao bot pela variável input.content. Após o bloco de atendimento humano, o blip sobrescreve essa variável com as informações do atendimento, o que inclui os horários de espera na fila, tempo de atendimento, entre outros.

Nesse print, logo após o bloco de atendimento humano, eu exibo o conteúdo na variável input.content.

O valor dela é nesse formato:

{
   "id":"34a6e559-e07a-484a-9f6b-0184b0a6dbd0",
   "sequentialId":1,
   "ownerIdentity":"[email protected]",
   "customerIdentity":"[email protected]",
   "customerDomain":"tunnel.msging.net",
   "agentIdentity":"raphael%[email protected]",
   "provider":"Lime",
   "status":"ClosedAttendant",
   "storageDate":"2022-11-25T21:17:16.110Z",
   "openDate":"2022-11-25T21:17:26.250Z",
   "closeDate":"2022-11-25T21:17:37.614Z",
   "statusDate":"2022-11-25T21:17:37.614Z",
   "externalId":"34a6e559-e07a-484a-9f6b-0184b0a6dbd0",
   "rating":0,
   "team":"Default",
   "unreadMessages":0,
   "closed":true,
   "closedBy":"raphael%[email protected]",
   "firstResponseDate":"2022-11-25T21:17:29.730Z",
   "priority":0,
   "isAutomaticDistribution":false,
   "distributionType":"Redis"
}

Os valores das variáveis são:
storageDate: Horário que o usuário entrou na fila de atendimento.
openDate: Horário que o atendente abriu o ticket de atendimento e iniciou a conversa com o usuário.
closeDate: Horário que o atendente finalizou o ticket de atendimento.
team: Fila de atendimento.

Com isso, para descobrir o tempo que o usuário ficou na fila de atendimento, basta subtrair os horários openDate - storageDate. Você pode fazer isso em um script do Blip e registrar um evento com esse dado.

Para armazenar o valor das variáveis basta executar uma ação de “definir variável”:
image

image

O script para calcular esse tempo seria:

function run(storageDate, openDate) {
    try {
        const storageTime = new Date(storageDate);
        const openTime = new Date(openDate);
        const queueTime = (openTime.getTime() - storageTime.getTime()) / 1000;

        return queueTime.toFixed(4);
    }
    catch (err) {
        return '0';
    }
}

obs: O valor retornado pelo script está em segundos.

Este tópico foi fechado para respostas.

3 comentários

Rafael_Figueiredo
Blipper
Forum|alt.badge.img+6

Olá @Ana_Flavia_Guimaraes tudo bem ?

Você pode usar esse end point aqui Blip Docs | API Reference
e as demais consultas referente ao tempos
image


Alexandre_Gomes_Matu

Boa tarde @Rafael_Figueiredo,

Tambem estou com a mesma dificuldade da @Ana_Flavia_Guimaraes, olhei toda a documentação e não encontrei uma forma de retornar o QueueTime do ticket específico.
Gostaria de consultar essa informação para poder fazer relatórios automatizados mas não consigo encontrar.

No BlipDocs eu só encontrei uma forma de puxar a média de tempo e essa informação não me serve.
Tem alguma outra dica para me ajudar?

Quando exporto os chamados, ele me mostra essa informação, porem não gostaria de ficar exportando manualmente.

image


raphael.silva
Blipper
Forum|alt.badge.img
  • Blipper
  • Resposta
  • November 25, 2022

Olá @Alexandre_Gomes_Matu, tudo bem?

As informações sobre o atendimento humano são fornecidos ao bot pela variável input.content. Após o bloco de atendimento humano, o blip sobrescreve essa variável com as informações do atendimento, o que inclui os horários de espera na fila, tempo de atendimento, entre outros.

Nesse print, logo após o bloco de atendimento humano, eu exibo o conteúdo na variável input.content.

O valor dela é nesse formato:

{
   "id":"34a6e559-e07a-484a-9f6b-0184b0a6dbd0",
   "sequentialId":1,
   "ownerIdentity":"[email protected]",
   "customerIdentity":"[email protected]",
   "customerDomain":"tunnel.msging.net",
   "agentIdentity":"raphael%[email protected]",
   "provider":"Lime",
   "status":"ClosedAttendant",
   "storageDate":"2022-11-25T21:17:16.110Z",
   "openDate":"2022-11-25T21:17:26.250Z",
   "closeDate":"2022-11-25T21:17:37.614Z",
   "statusDate":"2022-11-25T21:17:37.614Z",
   "externalId":"34a6e559-e07a-484a-9f6b-0184b0a6dbd0",
   "rating":0,
   "team":"Default",
   "unreadMessages":0,
   "closed":true,
   "closedBy":"raphael%[email protected]",
   "firstResponseDate":"2022-11-25T21:17:29.730Z",
   "priority":0,
   "isAutomaticDistribution":false,
   "distributionType":"Redis"
}

Os valores das variáveis são:
storageDate: Horário que o usuário entrou na fila de atendimento.
openDate: Horário que o atendente abriu o ticket de atendimento e iniciou a conversa com o usuário.
closeDate: Horário que o atendente finalizou o ticket de atendimento.
team: Fila de atendimento.

Com isso, para descobrir o tempo que o usuário ficou na fila de atendimento, basta subtrair os horários openDate - storageDate. Você pode fazer isso em um script do Blip e registrar um evento com esse dado.

Para armazenar o valor das variáveis basta executar uma ação de “definir variável”:
image

image

O script para calcular esse tempo seria:

function run(storageDate, openDate) {
    try {
        const storageTime = new Date(storageDate);
        const openTime = new Date(openDate);
        const queueTime = (openTime.getTime() - storageTime.getTime()) / 1000;

        return queueTime.toFixed(4);
    }
    catch (err) {
        return '0';
    }
}

obs: O valor retornado pelo script está em segundos.