Zum Hauptinhalt springen

Webhooks

Webhooks send real-time notifications to your external systems when asset events occur. Use them with Zapier, Make, custom APIs, or inventory systems.


1. Webhooks aufrufen

Navigation: AssetsSettingsWebhooks-Tab.


2. Create a Webhook

  1. Click New Webhook
  2. Enter Webhook Name (e.g., "Sync to ERP")
  3. Enter Webhook URL - your endpoint (must accept POST requests)
  4. Select Events to subscribe to (or select all)
  5. Optionally set Secret Key for HMAC signature verification
  6. Optionally add Custom Headers (e.g., API key)
  7. Set Active to Yes
  8. Click 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. Signature Verification

The module sends an HMAC-SHA256 signature in the header:

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

Verifizieren Sie in Ihrem Endpunkt:

signature = HMAC-SHA256(secret_key, request_body)

6. Webhook-Logs

  • Webhook Logs anzeigen, um den Lieferstatus zu sehen
  • Response Code – 2xx = Erfolg, 4xx/5xx = Fehler
  • Retry – Einige Oberflächen ermöglichen erneute Zustellversuche bei Fehlern
  • Logs werden typischerweise nach 30 Tagen bereinigt

7. Test Webhook

Verwenden Sie Test Webhook, um eine Test-Nutzlast zu senden. Nützlich, um zu überprüfen, ob Ihr Endpunkt erreichbar und korrekt konfiguriert ist.


Best Practices

  • Use HTTPS für Webhook-URLs
  • Verify signature, um sicherzustellen, dass Anfragen vom Modul stammen
  • Respond quickly (z. B. 200 OK) – Timeout beträgt ca. 30 Sekunden
  • Handle duplicates – dasselbe Event kann erneut versendet werden
  • Monitor logs für fehlgeschlagene Zustellungen