Outbound Webhooks
Push events from FreeMaint to your external systems in real time
5 min read
Webhooks let FreeMaint POST to a URL you control whenever something happens โ work order created, asset goes down, part runs low, request approved. Configure from /company-settings/webhooks. Starter capped at 100/day; Business and above unlimited.
Available events
- WorkOrder.created / .statusChanged / .completed / .deleted
- Asset.created / .statusChanged / .deleted
- Part.lowStock / .outOfStock
- Request.created / .statusChanged / .approved / .rejected
- PurchaseOrder.created / .approved / .received
- User.invited / .activated
- Workflow.triggered (forwards arbitrary workflow events)
Delivery semantics
- POST with JSON body containing the entity payload
- X-Signature header โ HMAC-SHA256 of the body using your webhook secret (verify on every request)
- Failed deliveries retry with exponential backoff up to 5 attempts (1m, 5m, 30m, 2h, 12h)
- Each delivery is logged in /company-settings/webhooks with status + retry count
Configuration
- Open /company-settings/webhooks โ Admin only.
- Click 'New webhook' โ Provide URL, pick events, generate or paste a secret.
- Verify URL โ FreeMaint sends a test ping; your endpoint must return 200 within 5s.
- Toggle on โ Webhook is active. Watch the deliveries log to confirm events arrive.
Tier caps
- Starter โ 100 deliveries/day per company (counter resets at 00:00 UTC)
- Business โ unlimited
- Enterprise โ unlimited
- On-Premise โ unlimited
Tip
Always verify X-Signature server-side โ without it you can't tell legitimate FreeMaint events from spoofed ones.
Related articles
Was this page helpful?