Pular para o conteúdo principal

Webhooks

Os webhooks enviam notificações em tempo real para seus sistemas externos quando ocorrem eventos de ativos. Use-os com Zapier, Make, APIs personalizadas ou sistemas de inventário.


1. Acessar Webhooks​

Navegação: Assets → Settings → aba Webhooks.


2. Criar um Webhook​

  1. Clique em New Webhook
  2. Insira o Webhook Name (ex.: "Sync to ERP")
  3. Insira a Webhook URL – seu endpoint (deve aceitar requisições POST)
  4. Selecione os Events para assinar (ou selecione todos)
  5. Opcionalmente defina Secret Key para verificação de assinatura HMAC
  6. Opcionalmente adicione Custom Headers (ex.: API key)
  7. Defina Active como Yes
  8. Clique em Save

3. Available Events​

Asset Lifecycle​

EventWhen Triggered
asset.createdNew asset created
asset.updatedAsset updated
asset.deletedAsset deleted

Allocation & Assignment​

EventWhen Triggered
asset.allocatedAsset allocated to staff
asset.revokedAllocation revoked

Check-in/Check-out​

EventWhen Triggered
asset.checked_outAsset checked out
asset.checked_inAsset checked in

Reservations​

EventWhen Triggered
asset.reservedReservation created
asset.reservation_approvedReservation approved
asset.reservation_rejectedReservation rejected

Maintenance & Transfers​

EventWhen Triggered
asset.maintenance_scheduledMaintenance scheduled
asset.maintenance_completedMaintenance completed
asset.transferredTransfer completed

Loss, Damage, Disposal​

EventWhen Triggered
asset.lostAsset reported lost
asset.brokenAsset reported broken
asset.warrantyAsset sent for warranty
asset.liquidatedAsset liquidated

Alerts (via Cron)​

EventWhen Triggered
alert.warranty_expiringWarranty expiring in 30 days
alert.maintenance_dueMaintenance due in 7 days
alert.checkout_overdueCheckout overdue
alert.low_stockStock below threshold

4. Payload Format​

Each webhook sends a JSON payload:

{
"event": "asset.created",
"timestamp": "2025-02-04T12:00:00+00:00",
"source": "perfex_assets_module",
"asset_id": 123,
"asset": { ... },
"data": { ... }
}
  • event - Event name
  • timestamp - ISO 8601 format
  • asset_id - ID of the asset (null for deleted)
  • asset - Asset data (or extra data for deleted)
  • data - Event-specific data (e.g., allocation details)

5. Verificação de Assinatura​

O módulo envia uma assinatura HMAC-SHA256 no header:

X-Asset-Webhook-Signature: <signature>
X-Asset-Webhook-Timestamp: <timestamp>
X-Asset-Webhook-Event: <event>

Verifique no seu endpoint:

signature = HMAC-SHA256(secret_key, request_body)

6. Logs de Webhook​

  • Visualize Webhook Logs para ver o status de entrega
  • Response Code – 2xx = sucesso, 4xx/5xx = falha
  • Retry – Algumas interfaces permitem repetir entregas falhas
  • Os logs são normalmente limpos após 30 dias

7. Test Webhook​

Use Test Webhook para enviar uma carga de teste. Útil para verificar se seu endpoint está acessível e configurado corretamente.


Melhores Práticas​

  • Use HTTPS para URLs de webhook
  • Verify signature para garantir que as requisições sejam do módulo
  • Respond quickly (ex.: 200 OK) – o timeout é de ~30 segundos
  • Handle duplicates – o mesmo evento pode ser tentado novamente
  • Monitor logs para entregas falhas