Respondido

WebHook Mensagens Ativas


Reputação 1

Bom dia a todos.

 

Já implementei o processo automatizado para enviar mensagens ativas via Wpp usando a API da Blip, usando templates pré-definidos e cadastrados na Blip.

Porém hoje o endpoint da API Blip sempre devolve 202, não indicando se a mensagem foi de fato enviada para o wpp do cliente.

Sei que existe a possibilidade de usar o WebHook, mas não sei se consigo identificar se a mensagem foi enviada e recebida pelo wpp. Se houver como saber também se o cliente leu a mensagem seria interessante também, mas entendo que isto possa fugir do contexto da API Blip.

Sabem se existe alguma forma de fazer isto?

icon

Melhor resposta por Rafael_Figueiredo 10 June 2024, 16:04

Veja o original

9 comentários

Reputação 7
Crachá +3

@Spido Tudo bem ?

 

Informo que é possível usar essas soluções que você descreve para os fins de verificar o status da mensagem ativa, o mais comum é a validação por API exemplo :

https://docs.blip.ai/?http#get-notifications-of-a-message

Nesse end point ai se der consumed foi lida pelo usuario.

Caso queria o cenário completo de comunicação e erros caso ocorra é esse : 

https://docs.blip.ai/?http#get-last-messages

E sobre o webhook ele é mais complexo, pois são vários dados e não somente de NA.

https://help.blip.ai/hc/pt-br/articles/4474381206423-Enviando-dados-para-an%C3%A1lise-atrav%C3%A9s-de-Webhooks

 

Ahh já ia esquecendo de falar a Blip utiliza um padrão comum sobre end points por isso se você montar um objeto valido na questão de escrita JSON ele retorna 202 falando que aceita o seu código, mas saber o status há a necessidade de consultar o status conforme expliquei a cima, pois dependemos de outro fornecedores para garantir a entrega como a Meta.

Reputação 1

Boa tarde @Rafael_Figueiredo, entendi a ideia de usar o endpoint de notifications.

Porém eu não sei o ID da mensagem que foi enviada, porque o endpoint de disparo devolve status code 202, e nenhum body de retorno.

Então eu não sei qual o ID da mensagem que foi gerada no ambiente da BLIP.

Não funcionou nem mesmo tentando usar o valor da propriedade ID onde passo: “MESMO-ID-QUE-VOU-NA-CONSULTA”.

Faz sentido ou estou fazendo algo errado?

 

HTTP ENVIO MENSAGEM ATIVA:

{
"id": "MESMO-ID-QUE-VOU-NA-CONSULTA",
"to": "[email protected]",
"type": "application/json",
"content":
{
"type": "template",
"template":
{
"name": "cob_inadimplencia_boleto_2parcelas",
"language":
{
"code": "pt_BR",
"policy": "deterministic"
},
"components":
[
{
"type": "body",
"parameters":
[
{
"type": "text",
"text": "VALOR 1"
},
{
"type":"text",
"text":"VALOR 2"
}
]
}
]
}
}
}

 

HTTP CONSULTA A MENSAGEM:

{
"id": "{{$guid}}",
"to": "[email protected]",
"method": "get",
"uri": "/notifications?id=MESMO-ID-QUE-VOU-NA-CONSULTA"
}

 

REPOSTA DA CONSULTA:

{
"method": "get",
"status": "failure",
"reason": {
"code": 67,
"description": "The resource was not found"
},
"id": "c085b933-ee4f-4d9e-887c-6437a179ffc7",
"from": "[email protected]/#msging-server-nh6hq",
"to": "[email protected]/!msging-server-nh6hq-h9ntk78g",
"metadata": {
"traceparent": "00-14ad34efccf8d6fb26315951de0ef558-20bc5a2c84cc176b-01",
"#command.uri": "lime://[email protected]/notifications?id=6d355256-5939-4514-82a1-be4f0d0f4fed"
}
}

 

Reputação 7
Crachá +3

@Spido nesse caso tente fazer esse e ve se o id da NA é o mesmo : 

https://docs.blip.ai/?http#get-last-messages

{  
"id": "{{$guid}}",
"method": "get",
"uri": "/threads/{{user_identity}}?refreshExpiredMedia=true"
}

 

Reputação 1

@Rafael_Figueiredo trouxe, vou validar qual o ID da mensagem.

 

Reputação 1

@Rafael_Figueiredo como falei trouxe o ID, mas não creio que seja o mesmo.
Pode ver que enviei 2 mensagens para mim, e mesmo consultando pelo ID apenas da última ele sempre traz ambas as mensagens.

Se eu tiver que trazer todas as mensagens do usuário e buscar no JSON o ID daquela que é a mensagem ativa pode ser bastante custoso, principalmente se for um cenário que o cliente contatou no mesmo dia várias vezes o nosso canal de atendimento.

O ideal é que conseguíssemos consultar diretamente pelo ID da mensagem que você postou anteriormente, indo diretamente na mensagem que nos interessa, nem que para isso nós tenhamos que salvar o ID da mensagem internamente na nossa base de dados.

Acha que fiz algo errado?

 

 

Detalhe usando o /notifications e passando o mesmo ID acima, recebo erro:

 

Reputação 1

Acho que descobri, o parâmetro é messageId e não id como passei acima.

Mas o problema é que mesmo passando o MessageId ele não devolve só a que pedi, é como se ele sempre trouxesse todas.
 

 

Reputação 7
Crachá +3

@Spido Sim ele sempre vai trazer todas e você tem que tratar o retorno e ver se tem o consumed.

Reputação 1

Acho que entendi, o endpoint de notifications funciona passando o ID.

Porém ele tem um dalay de tempo de resposta, não é instantâneo após o envio da mensagem via endpoint Blip.

E durante este tempo o endpoint sempre vai retornar “The resource was not found”, mesmo a mensagem tendo sido entregue no Whats e o cliente interagido inclusive.

No último teste que fiz cheguei a pegar delay de mais de 5 minutos após a requisição inicial ter sido disparada, não é o ideal mas dá pra sobreviver :).

Reputação 1

@Rafael_Figueiredo acho que entendi, o problema é que tem um delay entre o disparo e poder consultar usando o endpoint de notifications.

E um delay que ultrapassa 10 minutos, porque depois de um bom tempo a primeira mensagem que havia enviado começou a aparecer.

Não é o ideal mas vamos sobreviver :).

Comente