Webhook é um recurso usado na internet para que uma ferramenta (ou aplicativo) se comunique com outra ferramenta, fornecendo dados em tempo real sempre que um evento acontecer. Desta forma os dois sistemas realizam troca de informações sem que nenhuma ação externa precise ser realizada.
As possibilidades que este recurso pode trazer para a sua integração são variadas. Você pode, por exemplo, configurar um webhook para ser notificado toda vez que acontecer um evento específico dentro do iScholar. Assim, ao receber essa notificação, utiliza as informação enviadas pelo iScholar para enviar um e-mail para os usuários de um outro sistema.
Para configurar os webhooks é necessário verificar se o seu usuário possui a permissão "Gerenciamento de webhooks para integrações externas" (Saiba mais aqui). Em seguida, acesse o menu Administração, clique em Configurações e depois em Webhooks.
Clique no botão Cadastrar webhook:
E agora, basta preencher os campos de acordo com a sua necessidade:
Os campos obrigatórios para o cadastro do webhook são:
Método: GET ou POST;
Endpoint: URL de destino para a qual o iScholar enviará as informações relativas aos eventos que acabaram de acontecer;
Eventos: Lista dos eventos do iScholar que, ao serem executados, chamarão o endpoint;
Cabeçalho HTTP: Dados a serem enviados no cabeçalho da requisição no formato key:value (sem espaços e um por linha);
Feito isso, na próxima alteração de um aluno, conforme exemplo acima, o sistema irá enviar uma requisição para o endpoint cadastrado.
Observação: Alguns cabeçalhos já são enviados automaticamente pelo nosso sistema e por isso não é possível sobrescrevê-los, são eles: Content-type e X-Requested-Width.
Exemplo de uma requisição
Em todo disparo de um webhook, o corpo da requisição sempre terá dois outros campos:
data
:array
com os dados pertinentes ao evento;evento
: código do evento (string
).
Considerações importantes
É esperado pelo nosso sistema de webhooks um retorno do endpoint cadastrado com HTTP
code
200 e umjson
no seguinte formato:{"status": "sucesso"}
Caso a resposta esperada não venha, fazemos outras 9 tentativas.
É possível visualizar um histórico das requisições do webhook na opção 'Log' que aparece ao clicar nos três pontinhos verticais na frente do webhook listado.
Lista de eventos
Código do evento | Disparado quando... |
administracao.usuarios.cadastra | é cadastrado um usuário do sistema |
administracao.usuarios.edita | alteração de um usuário do sistema |
administracao.usuarios.remove | remoção de um usuário do sistema |
apoiovirtual.postagem.novo | nova postagem dentro do apoio virtual |
catraca.acesso.novo | novo acesso na catraca é inserido |
coordenacao.funcionarios.altera | alteração de um funcionário |
coordenacao.funcionarios.novo | inclusão de um funcionário |
coordenacao.funcionarios.remove | remoção de um funcionário |
coordenacao.grades_curriculares.disciplinas.altera | alteração nos dados de uma disciplina de uma grade curricular |
coordenacao.grades_curriculares.disciplinas.novo | inclusão de uma nova disciplina em uma grade curricular |
coordenacao.grades_curriculares.disciplinas.remove | remoção de uma disciplina em uma grade curricular |
coordenacao.periodosletivos.altera | alteração de um período letivo |
coordenacao.periodosletivos.novo | inclusão de um novo período letivo |
coordenacao.periodosletivos.remove | remoção de um período letivo |
diario.faltas.insere | é lançado uma falta |
diario.faltas.remove | é removida uma falta |
diario.notas.altera | uma nota é alterada |
diario.notas.novo | uma nota é cadastrada |
financeiro.centro_custo.altera | alteração de um centro de custo |
financeiro.centro_custo.novo | inclusão de um novo centro de custo |
financeiro.centro_custo.remove | remoção de um centro de custo |
financeiro.cheque.compensado | um cheque é compensado |
financeiro.cheque.devolvido | um cheque é devolvido |
financeiro.movimentacoes.edita | uma movimentação financeira é alterada |
financeiro.negativacao.novo | um nova negativação é cadastrada |
financeiro.negativacao.remove | uma negativação é removida |
financeiro.titulo.altera | a data de vencimento é alterado |
financeiro.titulo.baixa | é realizado a baixa de um titulo |
financeiro.titulo.estorno | é realizado o estorno de um título |
financeiro.titulo.novo | é incluído um titulo novo no sistema |
login | um login no sistema é feito |
recados.novo | um novo recado é enviado |
secretaria.alunos.altera | é alterado os dados de um aluno |
secretaria.alunos.novo | é realizado a inclusão de um aluno |
secretaria.alunos.remove | é feito a remoção de um aluno |
secretaria.eventos.altera | um evento da agenda é alterado |
secretaria.eventos.novo | um evento da agenda é cadastrado |
secretaria.eventos.remove | um evento da agenda é removida |
secretaria.matriculas.altera | os dados de uma matrícula é alterada |
secretaria.matriculas.enturmacao | uma matrícula é inserida na turma |
secretaria.matriculas.novo | uma matrícula nova é cadastrada |
secretaria.matriculas.remanejo | é feito um remanejo de uma matrícula |
secretaria.matriculas.remove | é removida uma matricula do sistema |
secretaria.ocorrencias.altera | é feito a alteração em uma ocorrência |
secretaria.ocorrencias.novo | uma ocorrência nova é cadastrada |
secretaria.ocorrencias.remove | é removida uma ocorrência |
secretaria.responsavel.altera | é feito a alteração em um responsável |
secretaria.responsavel.novo | um responsável novo é cadastrado |
secretaria.responsavel.remove | é removido um responsável |
secretaria.turmas.altera | uma turma é alterada |
secretaria.turmas.novo | é criado uma nova turma |
secretaria.turmas.quadro_horarios.adiciona_professor | inclusão de professor em um quadro de horário |
secretaria.turmas.quadro_horarios.altera | alteração de um quadro de horário |
secretaria.turmas.quadro_horarios.novo | inclusão de um novo quadro de horário |
secretaria.turmas.quadro_horarios.remove | remoção de um quadro de horário |
secretaria.turmas.quadro_horarios.remove_professor | remoção de professor em um quadro de horário |
secretaria.turmas.remove | é removida uma turma |
solicitacoes.encerrada | encerramento de uma nova solicitação |
solicitacoes.interacoes.novo | nova interação com uma solicitação |
solicitacoes.novo | abertura de uma nova solicitação |