Skip to main content

Olá, estou tentando utilizar a API para obter os tickets em atendimento, porém não encontrei nada na documentação da API que se refira aos tickets em atendimento.
Alguém sabe qual endpoint devo utilizar? Estou tentando obter todos os tickets em que os usuários enviaram mensagem, e que depois de 5 minutos da mensagem enviada pelo usuário, o atendente ainda não tenha respondido, para então direcionar para outro atendente disponível.

Além disso, alguém sabe me informar exatamente o que se refere cada status dos tickets?
Pelo que entendi seria:

  • Waiting: Aguardando atendimento
  • Open: Foram atendidos e o atendente está aguardando o retorno do usuário
  • Closed: Fechado…
  • Closed Attendant: Fechado pelo atendente
  • Closed Client: Fechado pelo cliente
  • Transferred: Transferido para outro bot
  • Missed: Perdido…
  • In Attendance: Em atendimento

Porém não entendi a diferença do “Closed”, “Closed Attendant” e “Closed Client”, tem algum lugar que posso encontrar mais detalhadamente o que significa cada status?

Boa noite ​@João Pedro JP !!!

Dando uma olhada por ai achei isso ve se funciona ai 

const axios = require('axios');

const BLIP_URL = "https://http.msging.net/commands";
const AUTH_KEY = "Key SEU_TOKEN_AQUI"; // Substitua pelo seu token

async function verificarTicketsInativos() {
const response = await axios.post(BLIP_URL, {
id: new Date().getTime().toString(),
to: "[email protected]",
method: "get",
uri: "/tickets?$filter=status eq 'attending'"
}, { headers: { Authorization: AUTH_KEY, "Content-Type": "application/json" } });

const tickets = response.data.resource.items;
const agora = new Date();

tickets.forEach(async (ticket) => {
const ultimaInteracao = new Date(ticket.lastMessageDate);
const diferencaMinutos = (agora - ultimaInteracao) / 60000;

if (diferencaMinutos > 5) {
await axios.post(BLIP_URL, {
id: new Date().getTime().toString(),
to: "[email protected]",
method: "set",
uri: `/tickets/${ticket.id}/owner`,
type: "application/json",
resource: { identity: "[email protected]" } // Substitua pelo atendente de backup
}, { headers: { Authorization: AUTH_KEY, "Content-Type": "application/json" } });

console.log(`Ticket ${ticket.id} foi redirecionado.`);
}
});
}

setInterval(verificarTicketsInativos, 60000); // Verifica a cada minuto

 


Boa noite ​@João Pedro JP !!!

Dando uma olhada por ai achei isso ve se funciona ai 

const axios = require('axios');

const BLIP_URL = "https://http.msging.net/commands";
const AUTH_KEY = "Key SEU_TOKEN_AQUI"; // Substitua pelo seu token

async function verificarTicketsInativos() {
const response = await axios.post(BLIP_URL, {
id: new Date().getTime().toString(),
to: "[email protected]",
method: "get",
uri: "/tickets?$filter=status eq 'attending'"
}, { headers: { Authorization: AUTH_KEY, "Content-Type": "application/json" } });

const tickets = response.data.resource.items;
const agora = new Date();

tickets.forEach(async (ticket) => {
const ultimaInteracao = new Date(ticket.lastMessageDate);
const diferencaMinutos = (agora - ultimaInteracao) / 60000;

if (diferencaMinutos > 5) {
await axios.post(BLIP_URL, {
id: new Date().getTime().toString(),
to: "[email protected]",
method: "set",
uri: `/tickets/${ticket.id}/owner`,
type: "application/json",
resource: { identity: "[email protected]" } // Substitua pelo atendente de backup
}, { headers: { Authorization: AUTH_KEY, "Content-Type": "application/json" } });

console.log(`Ticket ${ticket.id} foi redirecionado.`);
}
});
}

setInterval(verificarTicketsInativos, 60000); // Verifica a cada minuto

 

Olá, obrigado pela resposta.
Infelizmente não funcionou, retornou erro com a seguinte descrição:

"Unable to perform operation 'status eq 'attending''"

Além disso, testei com o status “waiting”, mas o retorno está diferente do código que você enviou, não retornou a última interação, mas consegui obtê-la através da URI abaixo:

/tickets/{ticketId}/messages?getFromOwnerIfTunnel=true&$take=1&refreshCache=true

O único problema que restou é obter os tickets com status “inAttendance”.


Bom dia!

Segue uma API para retornar tickets que estão abertos

 

https://http.msging.net/commands

{
"method": "get",
"to": "[email protected]",
"uri": "/monitoring/open-tickets?version=2&$take=500&$skip=0&refreshCache=true",
"id": "f1c74a6f-6af4-48d5-804d-342177a723f4"

}

Headers:

Content-Type: application/json

Authorization: {{token do bot onde está o desk}}

 

Porém não entendi a diferença do “Closed”, “Closed Attendant” e “Closed Client”, tem algum lugar que posso encontrar mais detalhadamente o que significa cada status?

Isso significa o tipo de fechamento do ticket, cada um desse tipo pode ter uma saída diferente no fluxo pós atendimento

Ex: Se o atendente que fechou então entra um NPS, CSAT. Caso o cliente fechou então vai para o Menu principal

 


Bom dia!

Segue uma API para retornar tickets que estão abertos

 

https://http.msging.net/commands

{
"method": "get",
"to": "[email protected]",
"uri": "/monitoring/open-tickets?version=2&$take=500&$skip=0&refreshCache=true",
"id": "f1c74a6f-6af4-48d5-804d-342177a723f4"

}

Headers:

Content-Type: application/json

Authorization: {{token do bot onde está o desk}}

 

Porém não entendi a diferença do “Closed”, “Closed Attendant” e “Closed Client”, tem algum lugar que posso encontrar mais detalhadamente o que significa cada status?

Isso significa o tipo de fechamento do ticket, cada um desse tipo pode ter uma saída diferente no fluxo pós atendimento

Ex: Se o atendente que fechou então entra um NPS, CSAT. Caso o cliente fechou então vai para o Menu principal

 

Olá, obrigado pela resposta.
Em relação a API estou tentando pegar apenas os tickets em atendimento, algo como o endpoint “/monitoring/waiting-tickets”, mas apenas para os tickets em atendimento.

Sobre os status de ‘fechado’, entendi, muito obrigado!


Comente