Pular para o conteúdo principal

Evento: Status de requisição atualizado (REQUISITION_STATUS_UPDATED)

Dispara quando o status de uma requisição muda — por exemplo, quando ela é aprovada ou reprovada em um fluxo de aprovação.

Novo nos webhooks? Veja a visão geral para o conceito (registrar uma vez, receber sempre que a ação ocorre).

Criando o webhook​

Registre um webhook para o evento REQUISITION_STATUS_UPDATED (Criar webhook):

curl -X POST https://api.inhire.app/integrations/webhooks \
-H "Authorization: Bearer SEU_ACCESS_TOKEN" \
-H "X-Tenant: suaempresa" \
-H "Content-Type: application/json" \
-d '{
"name": "Status de requisição",
"event": "REQUISITION_STATUS_UPDATED",
"url": "https://seu-sistema.com/webhooks/inhire/requisicao-status",
"headers": { "Authorization": "Bearer UM_SEGREDO_SEU" }
}'

A partir daí, o InHire chamará a sua URL sempre que este evento ocorrer. Para filtrar quais ocorrências recebe, adicione rules (ver abaixo).

Payload​

Além da requisição atualizada (em requisition), o corpo traz o status anterior em oldStatus.

{
"requisition": {
"id": "req-uuid",
"tenantId": "suaempresa",
"status": "approved",
"title": "Analista de Logística"
},
"oldStatus": "pending"
}
CampoDescrição
requisitionObjeto completo da requisição, já com o novo status
oldStatusStatus anterior da requisição
informação

O status novo fica em requisition.status e o anterior em oldStatus. As rules deste evento avaliam apenas campos de primeiro nível do corpo — ou seja, você pode filtrar por oldStatus, mas não por campos aninhados dentro de requisition.

Quando usar​

  • Criar a vaga em um sistema externo quando a requisição é aprovada.
  • Notificar o requisitante sobre a aprovação/reprovação.
  • Atualizar o status da solicitação em um ERP de headcount.

Filtrando com rules​

// Reagir apenas quando saiu de "pending" (ex.: foi decidida)
{ "oldStatus": { "operator": "=", "value": "pending" } }

Exemplo: recebendo o evento e buscando a requisição​

O payload traz a requisição (com o novo status) e o oldStatus. Para o estado mais atual, rebusque-a na API usando requisition.id:

import express from "express";
import axios from "axios";

const app = express();
app.use(express.json());

// Cliente autenticado da API do InHire (use um service account — ver guia de Autenticação)
const inhire = axios.create({
baseURL: "https://api.inhire.app",
headers: {
Authorization: `Bearer ${process.env.INHIRE_TOKEN}`,
"X-Tenant": "suaempresa",
},
});

app.post("/webhooks/inhire/requisicao-status", async (req, res) => {
// Valide a origem usando o header secreto configurado no webhook
if (req.headers.authorization !== "Bearer UM_SEGREDO_SEU") {
return res.sendStatus(401);
}
res.sendStatus(200); // responda rápido e processe de forma assíncrona

const { requisition, oldStatus } = req.body;

const { data: atual } = await inhire.get(`/requisitions/${requisition.id}`); // estado atual

console.log(`Requisição "${atual.title}": ${oldStatus} → ${atual.status}`);

if (atual.status === "approved") {
// ...sua lógica aqui (ex.: criar a vaga no seu sistema)
}
});

app.listen(3000);

Endpoint usado: Obter Requisição.