Pessoal,
Queria que quando o cliente está aguardando atendimento, ao digitar #Sair ele saísse do atendimento.
Tem como?
Pessoal,
Queria que quando o cliente está aguardando atendimento, ao digitar #Sair ele saísse do atendimento.
Tem como?
Hey @Bruno_Gabriel!!
Você pode utilizar essa condição de saído do bloco de Atendimento Humano
, assim quando a mensagem corresponder a uma dessas palavras o usuário será redirecionado para o bloco definido no Ir para
.
No seu caso, você pode definir só a palavra #Sair
, mas para uma experiência melhor eu sugiro algo como o que eu expliquei.
@fadoaglauss, não funciona, por que ele estaria esperando para ser atendido no Desk, por aparentemente ele entra na conversa…
Eu fiz um teste e aqui pra mim funcionou, no entanto o problema que tive é que o ticket é criado e fica na fila ou em atendimento. Tentei passar uma chamada na API Close Ticket as User e não funciona pois o a var {{input.content@id}}
não é preenchida.
Você conseguiu alguma solução pra isso @fadoaglauss ?
@Bruno_Gabriel o quê não deu certo no seu caso? Pode nos mandar uns prints de como configurou?
Gente, culpa minha, eu não vi que no bloco de atendimento humano dava para adicionar mais condições de saída, desculpa.
@GabrielPetrone, desculpa a demora 😅
Eu estou utilizando essa funcionalidade como na imagem abaixo 👇
Além disso, utilizo a requisição de close a ticket as user com as seguintes configurações para fechar o ticket.
Method: POST
URL: https://msging.net/commands
Header: Authorization {{config.botKey}}
Body: {
"id": "random.guid",
"to": "[email protected]",
"method": "set",
"uri": "/tickets/change-status",
"type": "application/vnd.iris.ticket+json",
"resource": {
"id": "{{ticketID}}",
"status": "ClosedClient"
}
}
Lembrando, que eu utilizo contexto de roteador para todas as aplicações e, por isso, preciso realizar a Ação de Entrada/Saída Requisição HTTP
. Caso você não utilize contexto de roteador, você pode usar a funcionalidade de Processar Comando
, que facilita muitoo nossa vida.
A última coisa que faltou explicar é como obter o ticketID
, então para isso você precisará criar o ticket através da Ação de Entrada/Saída Requisição HTTP
como a baixo:
Method: POST
URL: https://msging.net/commands
Header: Authorization {{config.botKey}}
Body: {
"id": "{{random.guid}}",
"from": "{{application.identifier}}@{{application.domain}}",
"to": "[email protected]",
"method": "set",
"uri": "/tickets",
"type": "application/vnd.iris.ticket+json",
"resource": {
"customerIdentity": "{{tunnel.identity}}"
}
}
Em seguida, com a resposta da requisição você utiliza esse script a baixo para obter o ticketID
.
const run = (openTicketResponse) => {
openTicketResponse = JSON.parse(openTicketResponse);
return openTicketResponse.resource.id;
}
Mais perfeito impossível!
Obrigado pelo retorno @fadoaglauss , eu estava desejando que não fosse preciso usar a requisição de Get Ticket Info, mas não foi dessa vez, haha!!
@fadoaglauss O bot key precisa ser do roteador ou do subbot?
Aqui está dando erro no encerramento 😦
order: 0
type: "ExecuteScript"
parsedSettings: {"function":"run","source":"const run = (openTicketResponse) => {\n openTicketResponse = JSON.parse(openTicketResponse);\n \n return openTicketResponse.resource.id;\n} ","inputVariables"::"ticketIDReq"],"outputVariable":"ticketID","LocalTimeZoneEnabled":false}
continueOnError: false
timestamp: "2021-07-06T13:50:14.290Z"
elapsedMilliseconds: 1
error: "TypeError: resource is undefined"
@Pedro_Lucas me ajuda rs
Só via mensagem agora 😅
Você precisa utilizar a key do sub bot.
Manda um print de cada uma dessa requisições e do script também.
Primeira ação:
Segunda ação:
(Nessa ação que dá erro, que é o script)
A variável ID retorna isso:
id: {“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":“80fb36b3-b8e5-410e-9b92-e8af5f69e927”,“from”:"[email protected]/!iris-hosted-2”,“to”:"[email protected]/!iris-hosted-2-kuwzn8qe",“metadata”:{“#command.uri”:“lime://[email protected]/tickets”,“uber-trace-id”:“af529702c7c71444%3Abfb173bbc4115d64%3Aaf529702c7c71444%3A1”}}
Então, @Bruno_Gabriel
A primeira coisa é saber se você está utilizando a key do roteador ou do sub bot. A ideia é que você sempre utilize a key do sub bot que tem o Transbordo Humano
.
Por acaso você conhece o Postman? Se sim, você poderia utilizar-lo para verificar se sua requisição está funcionando, mas primeiro olha a questão da chave (ps.: eu cometi esse erro na primeira vez).
E também confere mais uma vez o corpo da requisição com o a baixo, porque pelo o que vejo está tudo certinho 😅
{
"id": "{{random.guid}}",
"from": "{{application.identifier}}@{{application.domain}}",
"to": "[email protected]",
"method": "set",
"uri": "/tickets",
"type": "application/vnd.iris.ticket+json",
"resource": {
"customerIdentity": "{{tunnel.identity}}"
}
}
Dá o mesmo erro… Estou usando a key do subbot. @fadoaglauss
idticket: {"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":"e71d6c62-6312-4ddd-8a2f-8a3f7260f6e2","from":"[email protected]/!iris-hosted-3","to":"[email protected]/!iris-hosted-3-kuwzn8qe","metadata":{"#command.uri":"lime://[email protected]/tickets","uber-trace-id":"55f1ad3f4122da6b%3A92af85606ebb7a41%3A55f1ad3f4122da6b%3A1"}}
Gente, abri um chamado por que não consegui resolver.
Meu caro, nessa ação você está salvando o “Corpo da resposta” como id
??
Pois na sua ação a variável de entrada precisa ser exatamente essa que você usou pra definir o corpo da resposta.
Seria muito legal se você mostrasse o log do debug, ajudaria bastante, rs
Então, eu to usando a mesma 😕 @GabrielPetrone
A ação que eu pego o ticket ID tem esse log:
Não tem problema eu estar testando pelo subbot e não o roteador né?
idticket: {"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":"3d4d771b-cc47-457d-9b05-fc8694c19f15","from":"[email protected]/!iris-hosted-4","to":"[email protected]/!iris-hosted-4-dk6ecrso","metadata":{"#command.uri":"lime://[email protected]/tickets","uber-trace-id":"a8d3ecf65fa007be%3A3c922bb88b797e43%3Aa8d3ecf65fa007be%3A1"}}
idticketstatus: 200
Gente, agora consegui filtrar pelo ticket, mas não consigo usar o JSON.parse?
Criando o ticket:
helpdeskopenticketcommandresponse: {"type":"application/vnd.iris.ticket+json","resource":{"id":"bf2a82a6-56c7-4ace-b4ac-017a8726a262","sequentialId":127
Filtrar pelo ID dá esse erro:
order: 0
type: "ExecuteScript"
parsedSettings: {"function":"run","source":"const run = (helpdeskopenticketcommandresponse) => {\n helpdeskopenticketcommandresponse = JSON.parse(helpdeskopenticketcommandresponse);\n return helpdeskopenticketcommandresponse.resource.id;\n}","inputVariables":""criarTicketResposta"],"outputVariable":"criarTicketRespostaFiltrado","LocalTimeZoneEnabled":false}
continueOnError: false
timestamp: "2021-07-08T17:33:35.036Z"
elapsedMilliseconds: 1
error: "TypeError: resource is undefined"
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.