Como Atualizar o Contato do bot via API


Reputação 7
Crachá +2

Esse tutorial é um singelo agradecimento a toda a comunidade pela minha entrada para o time da Take, sei que estou devendo MUITAS, e como @GabrielPetrone sempre fala, eu só prometo hahaha, mas juro que ainda essa semana trago mais


Meus singelos agradecimentos a @Bia @Bruna @BrunoC @BrunoC @CommunityTeam @Debora @Karol @Iago


E a todos os blippers por tornar esse momento possível, vou nem marcar porque é muita gente


agora é só #GoGlobal


O Problema


Quando trabalhamos com router precisamos entender algumas coisas, uma delas é que as regras de atendimento e Informações que vão aparecer no Blip Desk sempre são puxadas do Sub Bot, e quando estão em router, mesmo com o contexto ativado ele só passa os dados para o Sub Bot na primeira interação do Usuário com o Contato Inteligente, para manter os dados atualizados, para que você poder usar o bot normalmente.


no exemplo eu tenho dois bot ligados ao router:



eu quero que toda vez que o cliente entrar ele escolha o assunto no bot “Shel”, e o atendimento humano seja feito no bot teste, vou no primeiro bloco do bot "Área de Testes”, e clicar nas engrenagens canto esquerdo da tela.



Precisamos verificar se o contexto do Roteador se encontra ligado. se ele estiver desligado ligamos e daremos sequência.



Agora antes de ir pra requisição em si, precisamos da chave do su bot, caso não tenha entendido ainda, quando executamos as regras de atendimento ela, puxa as variáveis de contato do sub bot, e quando o bot está no roteador sempre que você salvar algo no fluxo, ele salva apenas no roteador, ele só vai passar para o sub bot, na primeira vez que passar por ela.


Exemplo:



Então se na primeira vez eu escolhi a opção um, fui atendido, quando eu precisar novamente do serviço, e escolher a opção dois, ele vai me mandar pra equipe que escolhi da primeira vez, no caso a opção 1.


por que dentro do contato do sub bot estará a informação da minha primeira passagem pelo roteador, isso conta, mesmo que eu tenha feito a escolha dentro do próprio sub bot, ele ainda salvará no roteador.


A Solução


Então precisamos atualizar por API, o contato no sub bot, e para isso precisamos da chave de acesso pra ele, para isso, é só, ir nas engrenagens no canto superior direito:



e no canto inferior esquerdo clicar na opção “Informações de Conexão”,



No final da tela, tem uma caixa chamada “Endpoints HTTP”



ai é só copiar e deixar fácil ai “Cabeçalho de Autenticação”, agora vamos para o portal, lá vamos configurar um bloco antes do atendimento humano, para pegar todas as alterações feitas dentro do fluxo,



no nosso caso, vamos atualizar o contato no bloco “Ativos Online”, vamos selecionar o bloco e clicar em “Ações”,



vou em "Adicionar Ação de Entrada” e selecionar “Requisição HTTP”, e criar,



No método, usaremos o “POST”, e o URL vai ser o “https://msging.net/commands”,



agora a parte difícil hahaha ou nem tanto, vamos lá e clicar em corpo,



nesse exemplo eu to atualizando, nessa ordem


Nome do Contato;


Email;


Número de Telefone;


Número de celular;


Campos Extras.


Router De Entrada


Opção Escolhida no menu;


Hora de Entrada;


Atendente Viculado;


O JSONé esse:


{


“id”: “{{random.guid}}”,


“method”: “set”,


“uri”: “/contacts”,


“type”: “application/vnd.lime.contact+json”,


“resource”: {


“identity”: “{{input.message.fromidentity}}”,


“name”: “{{contact.name}}”,


“email”: “{{contact.email}}”,


“PhoneNumber”: “{{contact.phoneNumber}}”,


“cellPhoneNumber”: “{{contact.phoneNumber}}”,


“extras”: {


“Número de entrada”: “{{cidade}}”,


“Opção Menu”: “{{intencao}}”,


“Horário Atendimento”: “{{atendimento}}”,


“Atendente”:“{{contact.extras.Atendente}}”,


},


“source”: “{{contact.source}}”


}


}


o que está entre aspas, é o campo a ser preenchido, e o que está entre chaves é a variável que preencherá o conteúdo bom, é basicamente isso pessoa se precisarem estamos as ordens, Boa Semana


17 comentários

Reputação 7
Crachá +1

Rááaaah :dogeparty:


Aí sim!! #DocFeitaMelhorQuePerfeita


Obrigado por montar esse tutorial! Eu não fazia isso nos meus bots router e não tinha percebido que isso acontecia. Tenho certeza que será muito útil pra todos.


Agora to esperando os outros tutoriais… ahhahaha :blipinlove:

Reputação 7

Eu achei que era um delírio coletivo, mas essa doc finalmente saiu, né não @GabrielPetrone? :pugvibe:


Vou deixar um ‘.’ aqui pra eu ver depois.

Reputação 7
Crachá +2

@Bruno_Gabriel vou te marcar por que vai precisar HAHAAH

Gente to perdido não entendi

Reputação 7
Crachá +2

você usa router né? vai entender logo confia em mim se seu contexto tiver ativo

Reputação 7

O Kara finalmente apareceu com novidades! 🚀

Reputação 7
Crachá +2

essa tava na gaveta desde Janeiro

Fiquei com uma dúvida, a Key authorization eu pego do endpoint do roteador ou do bot?

Reputação 7
Crachá +2

do sub bot

Boa tarde, @Pedro_Lucas! Obrigado por compartilhar esse tutorial, estou passando por esse problema neste momento.


Só uma dúvida: Tenho o Router, o Bot Principal e vários Sub-Bots na nossa estrutura atual. Pelo que verifiquei na aba Contatos de cada um dos bots (Router, Principal e Sub-Bot), um mesmo cadastro possui 3 versões diferentes de variáveis, um para cada bot… O Contexto do Roteador está ativado no Bot Principal e no Sub-Bot.


Gostaria que todos os cadastros fossem unificados. Acredito que sua solução proposta através da Requisição HTTP funcione, mas estou com um pouco de dificuldade de como colocá-la em prática.


Minha dúvida é: Preciso executar essa requisição no Bot Principal e no Sub-Bot para que os 3 cadastros estejam “sincronizados”? Como devo fazer para que os 3 bots tenham o cadastro idêntico sempre? Me desculpe, fiquei um pouco perdido hehe

Pessoal, acho que ficou faltando mostrar os cabeçalhos da Requisição HTTP… Me corrijam se eu estiver errado. Juntei esse procedimento com o post do @GabrielPetrone e consegui. Mas acredito que ficou faltando essa informação nesse tutorial.

Reputação 7
Crachá +1

Hey @Implanta_Informatica , então você conseguiu o que desejava?

Eu fiquei curioso de porque deixar todos os contatos atualizados, uma vez que você usa Router e utiliza contexto do roteador ativado, você só precisa de ter o contato do Router atualizado, que é o comportamento padrão.


Não estou dizendo que você está errado(a), só curiosidade mesmo 😃 ainda mais pensando no trabalho que vai dar pra estruturar isso.


Abraços.

Bom dia, @GabrielPetrone.


Obrigado pelo retorno. O motivo inicial é bem simples: As Regras de Atendimento do Sub-Bot, que utilizavam variáveis extras dos contatos, não estavam sendo aplicadas para os contatos do Router e sim do Sub-Bot… Qualquer atualização feita nos contatos no Router não refletiam em mudanças no Sub-Bot. Com isso, abri um chamado na Blip e, junto com solução proposta aqui, conseguimos encontrar um workaround.


Estamos finalizando a implementação e vamos iniciar os testes com algumas equipes em breve.

@Pedro_Lucas, se eu quiser fazer o inverso, ou seja, atualizar o roteador com base nos dados do subbot só usar o authorization do roteador?

Reputação 7
Crachá +2

si senor exato

Só precisa trocar para {{tunnel.originator}} por que se não fod* os IDs do roteador.

Oi Pedro!


Apliquei as configurações conforme você explicou e, funcionou perfeitamente quando utilizo o Blipchat para conversar com o bot, porém, ao utilizar o Whatsapp para falar com bot, ele não reconhece as regras de atendimento e envia o usuário para a fila Default no atendimento do Blip Desk, tentei diversas soluções porém sem sucesso, vi alguns posts no fórum dizendo que é um bug, o que fazer nesse caso?


meu contact.extras:


 "extras": {
"source": "Whatsapp",
"filaAtendimento": "Atendimento NE+N"
}

Minha regra de atendimento é basicamente: SE o Extras Contato filaAtendimento = Atendimento NE+N, encaminhar o usuário a fila: Nordeste + Norte.


A regra está correta pois revisei diversas vezes, e funciona pelo BlipChat, porém no Whatsapp por algum motivo não funciona.


Fico no aguardo, obrigado!

Comente