Skip to main content

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. Access Webhooksโ€‹

Navigation: Assets โ†’ Settings โ†’ Webhooks 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>

Verify in your endpoint:

signature = HMAC-SHA256(secret_key, request_body)

6. Webhook Logsโ€‹

  • View Webhook Logs to see delivery status
  • Response Code - 2xx = success, 4xx/5xx = failure
  • Retry - Some interfaces allow retrying failed deliveries
  • Logs are typically cleaned after 30 days

7. Test Webhookโ€‹

Use Test Webhook to send a test payload. Useful to verify your endpoint is reachable and correctly configured.


Best Practicesโ€‹

  • Use HTTPS for webhook URLs
  • Verify signature to ensure requests are from the module
  • Respond quickly (e.g., 200 OK) - timeout is ~30 seconds
  • Handle duplicates - same event may be retried
  • Monitor logs for failed deliveries