Skip to main content
Respondido

Criar ticket e atribui-lo a um atendente antes de chegar ao atendimento humano.


Olá pessoal, bom dia, tudo bem?

Vamos lá minha dúvida. Estou desenvolvendo um CRM que irá trabalhar integrado ao Blip. Para tanto eu preciso que o ticket seja criado antes que o atendimento chegue ao atendimento humano, para isso criei para fins de teste um fluxo para homologação,  e inseri um bloco antes do atendimento, nas ações de saída deste bloco inserir o seguinte:

Requisição HTTP:

Method: POST,

URL: https://agenciakelps.http.msging.net/commands

inseri os dados do cabeçalho, sendo eles o Authorization com a Key do chatbot e o Content-Type sendo ele application/json

o corpo do script:

{
"id": "{{random.guid}}",
"to": "[email protected]",
"method": "set",
"uri": "/tickets",
"type": "application/vnd.iris.ticket+json",
"resource": {
"customerIdentity": "{{tunnel.identity}}",
"team": "{{Fila}}"
}
}

o retorno estou salvando numa variável chamada response.

Quando faço o teste no fluxo, vem nesta variável o seguinte: 

response: {
"method": "set",
"status": "failure",
"reason": {
"code": 62,
"description": "Could not change the parameter of type 'Lime.Protocol.JsonDocument' to type 'Takenet.Iris.Messaging.Resources.Ticket'"
},
"id": "4dad2eba-4d9e-4759-8d68-dba7ce5fec1e",
"from": "[email protected]/!msging-application-desk-zndsp",
"to": "[email protected]/!msging-server-sn6vd-0xcq6a6s",
"metadata": {
"traceparent": "00-92c2c56a0b2ffb69a72eca33ce8b3333-e33ec60ab6384177-01",
"#command.uri": "lime://[email protected]/tickets"
}
}

e apesar de tentar varias outras forma de fazer isso, não obtive sucesso.

5 comentários

Reputação 7
Crachá +4

Olá @MichelFRamos tudo bem ? 

 

Tente com essa request : https://docs.blip.ai/?http#create-a-new-ticket-for-an-attendance

Olá @MichelFRamos tudo bem ? 

 

Tente com essa request : https://docs.blip.ai/?http#create-a-new-ticket-for-an-attendance

Olá @Rafael_Figueiredo , obrigado pela resposta.

Eu sou novo com o Blip, e sinceramente não sei se a resposta é o que eu preciso, explico:

Hoje, dentro do Blip. criamos regras para direcionar os atendimento para filas diferentes, é uma fila para cada atendente, o que eu precisava era que, quando o contato for transferido para o atendimento humano gostaria de conseguir capturar para qual fila / atendente o contato foi e enviar estes dados para minha api externa.

Reputação 1

Oi @MichelFRamos, consigo enxergar duas situações que podem solucionar o seu problema.

  1. Você pode criar um serviço que fica monitorando as filas, para isso você pode usar o endpoint 
    /attendance-queues/{queueId}

    Dessa forma sempre que a sua fila for atualizada você pode pegar o ID do contato e o email do atendente e atualizar na sua api externa.

  2. Você pode criar um bloco ao sair do bloco de atendimento que faz essa requisição e envia os dados para a sua api externa.
     

     

Oi @MichelFRamos, consigo enxergar duas situações que podem solucionar o seu problema.

  1. Você pode criar um serviço que fica monitorando as filas, para isso você pode usar o endpoint 
    /attendance-queues/{queueId}

    Dessa forma sempre que a sua fila for atualizada você pode pegar o ID do contato e o email do atendente e atualizar na sua api externa.

  2. Você pode criar um bloco ao sair do bloco de atendimento que faz essa requisição e envia os dados para a sua api externa.
     

     

@Lucas Miqueias a primeira ideia é exatamente o que preciso. Dei uma olhada na documentação, vi que é possível trazer todas as filas de um bot, mas, desculpe a ignorancia, eu não entendi como capturar quando a fila é atualizada, e quando for, como capturar os contatos que entraram nela.

Reputação 1

Oi @MichelFRamos, consigo enxergar duas situações que podem solucionar o seu problema.

  1. Você pode criar um serviço que fica monitorando as filas, para isso você pode usar o endpoint 
    /attendance-queues/{queueId}

    Dessa forma sempre que a sua fila for atualizada você pode pegar o ID do contato e o email do atendente e atualizar na sua api externa.

  2. Você pode criar um bloco ao sair do bloco de atendimento que faz essa requisição e envia os dados para a sua api externa.
     

     

@Lucas Miqueias a primeira ideia é exatamente o que preciso. Dei uma olhada na documentação, vi que é possível trazer todas as filas de um bot, mas, desculpe a ignorancia, eu não entendi como capturar quando a fila é atualizada, e quando for, como capturar os contatos que entraram nela.



Para isso você irá precisar criar algum serviço que rode no cron em sua maquina. Você pode usar o node-cron se usa a linguagem Node, por exemplo.

https://github.com/kelektiv/node-cron

Segue abaixo um exemplo usando node-cron de monitoramento de endpoint a cada 5minutos.

const cron = require('node-cron');
const axios = require('axios');

// Endpoint que você quer monitorar
const endpoint = 'http://exemplo.com/api/endpoint';

// Função para fazer a requisição ao endpoint
async function monitorEndpoint() {
try {
const response = await axios.get(endpoint);
console.log(`[${new Date().toISOString()}] Status do endpoint ${endpoint}: ${response.status}`);
// Aqui você pode adicionar lógica para verificar o conteúdo da resposta, status específicos, etc.
} catch (error) {
console.error(`[${new Date().toISOString()}] Erro ao acessar o endpoint ${endpoint}: ${error.message}`);
// Aqui você pode adicionar lógica para lidar com erros de requisição
}
}

// Agendamento da tarefa para monitorar o endpoint a cada 5 minutos
cron.schedule('*/5 * * * *', monitorEndpoint);

 

Comente