Contact identity subbot

Pessoal estou com a seguinte dúvida:

Contexto do roteador: LIGADO

Quando o cliente faz o contato, o primeiro bloco do Bot Principal, checa se o cliente existe dentro do ERP (Via API do ERP). Caso existe o cliente dentro do ERP já salva o contact.identity e retornar algumas informações pro bot principal que salva dentro do extras do contato. (Essa parte esta funcionando legal)

O problema começa aqui, dentro do ERP estamos tentando buscar os tickets de atendimento de cliente, porem ao passar o contact.identity pela API ele não retorna nada, fala que não foi possível encontrar o cliente.

Olhando o bot de atendimento o contact.identity que eu teria que passar é diferente do que o gerado pelo roteador, que consequentemente está salvo no ERP.

Exemplo de contact.identity
Roteador: 2280b473-123-4e8d-987-3b50d57ab159f.nomeempresa@0mn.io
Bot atendimento: 75d6df63-159e-4cf2-7532cd-f69d0ca3b51c@tunnel.msging.net

Existe alguma forma de pelo contact.identity do roteador achar o contact.identity do bot de atendimento?

Quando eu faço a requisição pela API eu passo o Authorization do bot de atendimento

1 Curtida

Fala @Acotelha_TI , tudo bem?
Antes de qualquer coisa, gostaríamos de te dar boas-vindas à Comunidade! :tada: E para começar com o pé direito, uma boa dica é visitar os quatro primeiros tópicos da seção Comece Aqui. :blue_heart:


O Contexto do Roteador do seu bot de atendimento está ligado mesmo?

De qualquer forma, se eu entendi corretamente, o que você precisa usar no seu bot de atendimento é a var {{tunnel.originator}} ao invés do {{contact.identity}}.

O tunnel.originator é o contact.identity do seu Roteador, entendeu?

Mas te perguntei se está com contexto ativado pois quando ativado por padrão não teria um ID diferente.

Qualquer dúvida corre aqui pra gente te ajudar.

Abraços.

1 Curtida

@GabrielPetrone o contexto está ativo sim, tanto no Principal quanto no Atendimento. O meu problema é que o mesmo contato está ficando com 2 {{contact.identity}}, um no roteador e um no “Bot Atendimento”

Dentro de qualquer bot, se eu pedir pra mostrar o {{contact.identity}} na conversa ele sempre retorna o do roteador, o problema está quando uso a API, por exemplo:

Se eu usar a API https://docs.blip.ai/#get-contact, e usar ela no “Bot Atendimento” (quando digo usar no "Bot Atendimento, quer dizer que estou passando no header o Authorization desse bot), e passando o {{contact.identity}} que gerou pelo roteador (que está salvo no ERP), a API retorna que o recurso não foi encontrado.

Envio para API

{
  "id": "AC1",
  "method": "get",
  "uri": "/contacts/2280b473-123-4e8d-987-3b50d57ab159f.nomeempresa@0mn.io"
}

Retorno da API

{
  "method": "get",
  "status": "failure",
  "reason": {
    "code": 67,
    "description": "The requested resource was not found"
}

Porém se eu fizer a mesma requisição passando o {{contact.identity}} que tem dentro do “Bot Atendimento” a API me retornar o contato. Lembrando que estamos falando do mesmo contato

Envio para API

{
  "id": "AC1",
  "method": "get",
  "uri": "/contacts/75d6df63-159e-4cf2-7532cd-f69d0ca3b51c@tunnel.msging.net"
}

Retorno da API

{
    "name": "Lucas",
    "lastMessageDate": "2021-11-22T23:05:00.560Z",
    "identity": "75d6df63-159e-4cf2-7532cd-f69d0ca3b51c@tunnel.msging.net",
    "phoneNumber": "",
    "extras": {
      "tunnel.owner": "empresa@msging.net",
      "equipe": "equipe@empresa.com"
    },
    "source": "0mn.io"
}

Gostaria de saber como faço pra pegar o contato dentro do “Bot Atendimento” usando o {{contact.identity}} do Roteador.

Imagens para ajudar a explicar melhor, é o mesmo contato porém no roteador ele tem um ID e no atendimento outro ID:

Contato dentro do "Bot Atendimento"

Contato dentro do "Roteador"

Espero que tenha conseguido passar com clareza a minha dúvida, e assim você possa me ajudar!

Desde já agradeço!

1 Curtida

Acebei fazendo da seguinte forma…

No “Bot Atendimento” no primeiro bloco, eu coloquei uma ação pra definir contato, e criei uma variavél extras e salvei nela o {{tunnel.identity}}.

Ai dentro da integração com o ERP eu busco o contato usando o {{contact.identity}} usando o Authorization do roteador, depois com o retorno eu recupero o campo extra com o {{tunnel.identity}} e sigo em frente com as demais integrações!

Deu certo no meu caso!

@GabrielPetrone, obrigado pela resposta!

2 Curtidas

Ei @Acotelha_TI, tudo certo? Que bom que conseguiu resolver! :blush:

Sempre que quiser, sinta-se à vontade para visitar esse espaço, seja para tirar dúvidas ou compartilhar experiências com o Blip, combinado?

1 Curtida

Que ótimo que deu certo @Acotelha_TI !
Mais cedo eu fiz uma validação justamente com o {{tunnel.identity}} mas acabei não conseguindo vir aqui te responder a respeito. Eu também fiquei um pouco confuso com a sua aplicação mas lendo aqui a forma em que você aplicou, ficou mais claro!

Enfim, estamos por aqui se precisar de mais ajuda!

Abraços.

1 Curtida