A campanha saiu. Agora vem a pergunta que ninguém consegue responder sem exportar alguma coisa: quem recebeu? O status de cada envio existe, mas mora no painel do provedor. O webhook de retorno traz esse status de volta, para dentro do registro do cliente, onde ele serve para a próxima decisão.
Como o webhook funciona
Quando o status de uma mensagem muda, o provedor faz uma chamada HTTP para uma URL que você informou. O corpo da chamada traz o evento: o identificador da mensagem, o novo status e outros dados que variam de provedor para provedor.
Do seu lado, alguém precisa receber essa chamada, responder rápido e gravar o status. Responder rápido importa: se a resposta demora, o provedor considera que falhou e tenta de novo.
No DeepMiner, o recebimento só confere a URL e coloca o evento numa fila, respondendo em seguida. O processamento acontece logo depois, fora da chamada do provedor.
Achar o registro certo
O evento diz qual mensagem mudou de status. Você precisa saber qual cliente recebeu essa mensagem. Há dois jeitos comuns de fazer essa ligação.
O primeiro é mandar uma referência do registro junto com a mensagem, que o provedor devolve no evento. O segundo é guardar o identificador que o provedor devolveu no envio e procurar por ele quando o evento chega.
O DeepMiner usa os dois. Ele procura primeiro a referência do registro e, se não houver, o identificador da mensagem gravado no envio. A busca fica restrita aos índices do parceiro vinculados àquele provedor. Quando nada casa, o evento fica registrado como sem correspondência.
O que gravar no registro
O status sozinho já ajuda, mas o registro fica mais útil com um pouco de contexto. Para cada canal, o DeepMiner grava o status, a data da última atualização e os campos do evento definidos para aquele tipo de provedor. O evento completo entra no histórico do registro, que guarda os últimos eventos de todos os provedores.
Como cada canal grava os próprios campos, o mesmo cliente pode ter o status do SMS e o do RCS lado a lado, visíveis na lista de registros do índice.
Duplicados e segurança da URL
Eventos repetidos acontecem, e gravar duas vezes bagunça o histórico. O DeepMiner identifica o corpo de cada evento já aplicado e marca a repetição como duplicada. A marca só é gravada depois que a atualização deu certo, então uma falha no meio do caminho deixa o evento ser aplicado na próxima tentativa.
A URL é a credencial do webhook. Quem a conhece consegue enviar eventos. Por isso, no DeepMiner cada provedor tem uma URL própria com um token aleatório, mostrada uma única vez. Só uma assinatura do token fica guardada. Se a URL vazar, Regenerar token cria uma nova e a anterior deixa de funcionar. Antes de aplicar qualquer evento, o DeepMiner confere de novo se o provedor continua ativo e se o token ainda é o mesmo.
O log de cada evento
Quando um status não aparece, a primeira pergunta é se o evento chegou. O log de webhooks responde: cada evento aparece como processado, duplicado, sem correspondência ou com falha, com o payload para conferência. O detalhe do registro mostra os eventos dos provedores daquele cliente.
O que muda depois
Com o retorno no registro, o acompanhamento da campanha fica em três lugares. A execução mostra o total de registros, os enviados e as falhas. A lista de registros do índice mostra o status de cada canal por cliente, e o detalhe do registro guarda os eventos. O log de webhooks mostra o que chegou do provedor e o que não encontrou registro.
Quer ver um evento de retorno chegando ao registro? Agende uma demonstração.
Perguntas frequentes
O que é um webhook de retorno?
É uma URL que o provedor de mensagens chama para avisar que o status de um envio mudou. O sistema que recebe grava esse status onde ele for útil.
Por que o mesmo evento chega duas vezes?
Provedores costumam reenviar quando não recebem confirmação a tempo. Quem recebe precisa reconhecer o evento repetido e não aplicar a mesma atualização de novo.
Como o DeepMiner sabe a qual registro o evento pertence?
Pela referência do registro enviada junto com a mensagem ou pelo identificador da mensagem que o provedor devolveu no envio. Só os índices vinculados àquele provedor são considerados.