Skip to main content
Respondido

Sair do atendimento humano com comando


Bruno_Gabriel

Pessoal,

Queria que quando o cliente está aguardando atendimento, ao digitar #Sair ele saísse do atendimento.
Tem como?

Melhor resposta por fadoaglauss

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}}"
    } 
}
Este tópico foi fechado para respostas.

20 comentários

fadoaglauss
Blipper
  • Blipper
  • June 25, 2021

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.

image


fadoaglauss
Blipper
  • Blipper
  • June 25, 2021

No seu caso, você pode definir só a palavra #Sair, mas para uma experiência melhor eu sugiro algo como o que eu expliquei.


Bruno_Gabriel
  • Autor
  • Inspiring
  • June 29, 2021

@fadoaglauss, não funciona, por que ele estaria esperando para ser atendido no Desk, por aparentemente ele entra na conversa…


GabrielPetrone
Blipper
Forum|alt.badge.img+1

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?


Bruno_Gabriel
  • Autor
  • Inspiring
  • June 29, 2021

Gente, culpa minha, eu não vi que no bloco de atendimento humano dava para adicionar mais condições de saída, desculpa.


fadoaglauss
Blipper
  • Blipper
  • July 1, 2021

@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;
}

GabrielPetrone
Blipper
Forum|alt.badge.img+1

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!!

:blipinlove:


Bruno_Gabriel

@fadoaglauss O bot key precisa ser do roteador ou do subbot?


Bruno_Gabriel

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"

Bruno_Gabriel

Fiz nessa ordem os scripts: @fadoaglauss @GabrielPetrone

image


Bruno_Gabriel

@Pedro_Lucas me ajuda rs


fadoaglauss
Blipper
  • Blipper
  • July 6, 2021

Só via mensagem agora 😅

Você precisa utilizar a key do sub bot.


fadoaglauss
Blipper
  • Blipper
  • July 6, 2021

Manda um print de cada uma dessa requisições e do script também.


Bruno_Gabriel

Primeira ação:

image
image
image

Segunda ação:

image
image

(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”}}


fadoaglauss
Blipper
  • Blipper
  • Resposta
  • July 6, 2021

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}}"
    } 
}

Bruno_Gabriel

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"}}


Bruno_Gabriel

Gente, abri um chamado por que não consegui resolver.


GabrielPetrone
Blipper
Forum|alt.badge.img+1

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


Bruno_Gabriel

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

Bruno_Gabriel

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"