Fórum
Disparos do webhook da Gupy
Boa tarde!
O sistema do meu cliente possui uma integração com a API da Gupy para capturar os dados dos candidatos quando eles são movimentados para uma outra etapa do processo seletivo.
Porém, hoje, dia 30/08, começamos a ter o seguinte problema:
Quando o candidato é movimentado, ao invés de ocorrer um disparo para a URL registrada no webhook, ocorrem vários disparos com diferença de segundos. Isso gera um problema no sistema do cliente, porque toda vez que uma chamada da Gupy com os dados do candidato chega, um registro é feito no banco de dados, gerando multiplicidade.
Esse comportamente não é devido ao retry em caso de erros, pois o sistema sempre retorna um 200 Ok para a API da Gupy, mesmo que ocorra um erro, justamente para evitar o retry.
Eu gravei um vídeo com os logs do sistema mostrando o problema acontecendo.
Gostaria de entender se isso é um problema na API da Gupy.
Obrigada,
Amanda
Olá, Amanda!
Este comportamento se deve ao conjunto de dois pontos dos nossos webhooks:
- Temos uma funcionalidade de deduplicação, que significa que pode ocorrer o disparo de mais de um webhook para garantir a entrega. Pode ler mais sobre esse ponto nesta documentação: https://developers.gupy.io/reference/webhooks#notification-properties. Nesse caso, uma solução é a observação do campo id do webhook. Nos casos de envio deduplicados, o que se altera é apenas o horário do envio, o id e o json permanecem os mesmos;
- O reenvio de webhooks acontece normalmente quando um dos endpoints cadastrados para determinado evento está apresentando erro ou demora na resposta. Isso significa que se eu tenho cadastrado dois webhooks de um mesmo evento disparando para endpoints diferentes e um deles está apresentando erro, vamos tentar enviar para os dois endpoints novamente, mesmo que o outro apresente sucesso. Para resolver esse ponto, verifique se há mais de um webhook cadastrado para o mesmo evento e se os endpoints desses eventos está funcionando. Para mais informações sobre webhooks, consultar esta documentação: https://developers.gupy.io/docs/configurando-webhooks-e-obtendo-payloads-reais-.
Olá,
Muito obrigada pela resposta!
Já adicionei um tratamento com o campo id do webhook para evitar esse problema no futuro. Eu observei, porém, que em uma das movimentações para o mesmo candidato, eram disparados webhooks com dois id's diferentes. E ficava alternando: em um momento vinha com um id e em outro momento com o outro. Porém esse comportamente só ocorreu com uma movimentação de um candato por enquanto.
Realmente tem um endpoint cadastrado de uma outra empresa para o mesmo evento. Como não é para o sistema do meu cliente, não consegui verificar se estava ocorrendo um erro e também nem havia pensado nessa possibilidade. Deve ter sido essa a causa então.
De qualquer forma, obrigada pela resposta!
Perfeito! Fico feliz por ter ajudado!
Se você puder me esclarecer mais um ponto!
Se estiver ocorrendo uma alta taxa de erro em um webhook, e houver mais de um configurado para o mesmo evento, corre o risco dos dois serem removidos?
Não. A desativação ocorre somente para o webhook que está apresentando erro. Caso precise desativar o webhook com erro, pode utilizar o endpoint https://developers.gupy.io/reference/updatewebhook, consultando antes o id dele aqui: https://developers.gupy.io/reference/findwebhooks.
Ótimo! Muito obrigada!