Skip to main content

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.

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.


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.


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(`n${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(`r${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