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: AssetsSettings → 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