Dados do subbot não são propagados para o Desk

Bom dia!
Tenho uma estrutura de 1 router e 2 subbots, direcionando para o Messenger e para o Chat.
Em ambos os subbots defino os contatos e informações extras e cada canal tem seu atendimento.

Eu publiquei o Router e utilizei a opção de contexto de roteador nos subbots para que as variáveis sejam propagadas pelos bots. Porém, quando um cliente solicita atendimento humano e esse cliente vai para o Desk, os dados não são salvos no contato.

Quando eu utilizo diretamente o subbot, os dados vão corretamente para o desk, mas pelo router não. Os dados não deveriam ser compartilhados entre bots?

Olá @Artur_Lunardi_Di_Fan de fato, o ideal é que fosse compartilhado entre os subbots, no entanto o Desk está com este problema.

Você conseguiu alguma atualização em relação a isso?

Olá, @Bruno

Não, sem sucesso no compartilhamento de dados entre subbots pro Desk
Tivemos que desmarcar a opção de contexto do roteador para que os dados chegassem corretamente e criar um modelo de IA para cada subbot.

Passei pelo mesmo problema, resolvi de outra forma.
No bloco de redirecionamento do serviço pro Desk
Criei um script que armazenar uma variavel chamado “contato” um json com todos os dados do usuario, mais ou menos assim:

function run() {
return {
“name”:"{{contact.name}}",
“email”:"{{contact.email}}",
“phoneNumber”:"{{contact.phoneNumber}}",
“city”:"{{contact.city}}",
“gender”:"{{contact.gender}}",
“cliente”:"{{contact.extras.cliente}}"
};
}

Ai no bloco de redirecionamento do serviço para Desk eu passo essa variavel {{contato}} na opção de enviar a mensagem.

E no bloco Inicio do Desk eu recebo essa variavel e atualizo as informações do usuario do Desk.

Achei melhor solução pq senão vc vai criar uma base de contato para cada bot e vai ficar mais espalhado as informações do contato.

Espero ter ajudado.

@Artur_Lunardi_Di_Fan.

Por experiencia, não da para usar a opção “utilizar contexto de roteador” nos sub-bots que você terá atendimento humano.

Tanto não aparecerá os dados no DESK, quanto a regra de negócio ( redirecionar a times com base em algum parâmetro do contact.extras .?).

O que é uma pena porque realmente seria muito útil centralizar os dados do cliente em somente um BOT (no caso o Router).

1 Curtida

@Artur_Lunardi_Di_Fan @Olivia_Orthodontic_B
Realmente, o Desk utiliza o contato do subbot para iniciar o atendimento e o contexto do usuário salva todas as informações no contato do roteador.

Uma alternativa para esse cenário seria, antes de enviar para o bloco de atendimento, atualizar o contato do subbot com todas as informações do contato do roteador.

Você pode fazer isso através de uma ação HTTP para atualizar o contato

POST https://http.msging.net/commands

Headers:
Content-Type: application/json
Authorization: Key {AUTHORIZATION KEY DO SEU SUBBOT}

{  
  "id": "{{random.guid}}",
  "method": "set",
  "uri": "/contacts",
  "type": "application/vnd.lime.contact+json",
  "resource": {{contactSerialized}}
}

A variável {{contactSerialized}} já retorna todo o contato serializado, então já facilita esse processo! :slight_smile:

1 Curtida

Ops, na verdade a variável do resource é {{contact.serialized}}, e não {{contactSerialized}}

2 Curtidas