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

  1. Open /company-settings/webhooks โ€” Admin only.
  2. Click 'New webhook' โ€” Provide URL, pick events, generate or paste a secret.
  3. Verify URL โ€” FreeMaint sends a test ping; your endpoint must return 200 within 5s.
  4. 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.

Was this page helpful?