Webhooks

Um Webhook é apenas uma notificação da plataforma Sienge para o outro servidor. Um Webhook permite que você configure notificações para outro servidor toda vez que alguém interage com os recursos do Sienge.

Ex.: Se você precisar enviar uma notificação para outro servidor, informando toda vez que um novo usuário foi cadastrado no Sienge, bastaria criar um webhook indicando o evento de criação de usuário e informando qual é o link do servidor que seja ser notificado.

Isso permite uma inversão de responsabilidades, ou seja, ao invés do seu servidor ficar perguntando para as APIs do Sienge se existe novos usuários criados, você apenas informa que gostaria de ser notificado em caso de um novo usuário criado.

O que é preciso?

É necessário um servidor que aceite uma requisição POST (API) e este endpoint fica responsável por fazer o tratamento da notificação recebida.

Funcionamento dos Webhooks Sienge

Os webhooks Sienge funcionam da seguinte forma:

Após o cadastro de um webhook através das APIs de gerenciamento, e quando acorre a ação do usuário no Sienge que desencadeia este evento, o serviço de webhooks do Sienge é acionado de forma instantânea e realiza uma tentativa de envio desta notificação para o link que foi informado no momento do cadastro do webhook.

Caso a notificação não consiga ser entregue ao servidor de destino, por estar offline ou ainda algum erro, a notificação seguirá para nossas tratativas de "retry", ou seja, a notificação será guardada para que seja feita novas tentativas em intervalos de tempo:

Retry

Após a tentativa de envio da notificação de forma estantânea ser recusda pelo servidor de destino, a notificação é encaminhada para as tratativas de "retry".

As novas tentativas de envio da notificação seguem a seguinte regra:

Primeira Tentativa: 10 minutos após o envio original
Segunda Tentativa: 30 minutos após a primeira tentativa de retry
Terceira Tentativa: 60 minutos (1 hora) após a segunda tentativa de retry
Quarta Tentativa: 180 minutos (3 horas) após a terceira tentativa de retry
Quinta Tentativa: 300 minutos (5 horas) após a quarta tentativa de retry

Após a quinta tentativa o Sienge desiste de entregar a notificação. Quando uma notificação passa por todas as tentantivas, ela já percorreu um tempo total de quase 10 horas, por isso entendemos que o servidor de destino não irá mais se recuperar e ficar online.

Informações adicionais enviados nas notificações de webhook

Algumas informações importantes são enviadas nos "headers" da requisição enviada pelo serviço de webhooks:

"x-sienge-tenant": Subdomain do Sienge responsável pelo envio da notificação -> Este subdomain será utilizado para consumir as informações completas da informação nas APIs do Sienge
"x-sienge-event": O tipo do evento que originou a notificação
"x-sienge-hook-id": O identificador do cadastro do hook na base do Sienge
"x-sienge-id": Identificador único do evento, pode ser utilizado para operações idempotentes.
"user-agent": Nome do agente que enviou a notificação. Sempre será: "sienge-hooks"