Webhooks
Webhooks let BusinessHRM automatically send a message to another system whenever something happens in your account — a contact is created, an invoice is paid, an employee checks in, and so on. You choose the events that should fire, choose where to send them (a custom HTTP endpoint, a Discord channel or a Slack channel), and BusinessHRM does the rest in the background.
Before you start: The Webhooks module must be enabled and your role needs View Webhooks permission (set to All). To add or edit you also need Add / Edit Webhooks. You will also need somewhere for the data to go — a public URL on your own server, or a Discord/Slack incoming webhook URL.
Getting started with Webhooks
Setting up a webhook is three steps:
- Pick the triggers — the events that should fire it (for example Invoice · Paid).
- Choose where to send it — Custom (HTTP), Discord or Slack — and paste the target URL.
- Save and test — perform the event in BusinessHRM, then check the to confirm it was delivered.
The rest of this article explains each part in detail.
The webhooks list
Open to see your webhooks. Each row shows the webhook Name, its Request URL and a Status dropdown.
- Use the Status dropdown to switch a webhook Active or Inactive without deleting it — only Active webhooks fire.
- The row's action menu has Edit and Delete.
- Search by name or URL, and export the list to Excel.
Creating a webhook
Click Add Webhook and fill in the form.
Basic details
| Field | Meaning | Required |
|---|---|---|
| Webhook action name | A name to recognise this webhook. | Yes |
| Send via | How to deliver it: Custom (HTTP), Discord or Slack. | Yes |
Triggers
Under Triggers you choose which events fire the webhook. Tick one or more events under any module, or use Select all for a whole module. A single webhook can listen to many events at once.
| Module | Events |
|---|---|
| Contact | Created, Updated, Deleted |
| Deal | Created, Updated, Deleted, Won, Lost |
| Project | Created, Updated, Deleted, Completed |
| Task | Created, Updated, Deleted, Completed |
| Invoice | Created, Updated, Deleted, Paid, Partially Paid |
| Proposal | Created, Updated, Deleted, Accepted, Declined |
| Employee | Created, Updated, Deleted |
| Leave | Applied, Approved, Rejected |
| Attendance | Check In, Check Out, Break Start, Break End |
| Activity Report | Daily Activity Report (on check-out) |
Note: The exact modules you see depend on which features are enabled for your company.
Where to send it (delivery target)
The Request URL field is where the data is delivered. The label and behaviour change with your Send via choice:
- Custom (HTTP) — enter your own endpoint URL. You also get to set the request method, headers and body (see below).
- Discord — paste your Discord channel Webhook URL (in Discord: Server Settings → Integrations → Webhooks). BusinessHRM posts a neatly formatted message to that channel.
- Slack — paste your Slack Incoming Webhook URL (from api.slack.com → Incoming Webhooks). BusinessHRM posts a formatted message to that channel.
Tip: Discord and Slack are the quickest way to get useful notifications — no coding needed. Just create an incoming webhook in the chat tool, copy the URL, and paste it here.
Custom (HTTP) options
When Send via is Custom (HTTP), extra sections appear:
| Section | What it is |
|---|---|
| Request method | The HTTP method (defaults to POST). |
| Request format | The body format (JSON). |
| Request headers | Add one or more header Name / Value pairs (for example an authorization token). Use Add More for additional rows. |
| Request body | Add custom body Key / Value pairs. A value can be a fixed string, or a field from the record that fired the event (so you can map BusinessHRM data onto your own field names). Use Add More for more rows. |
Every custom delivery automatically includes an event field (for example Invoice.paid) so your receiving system can tell which event fired.
Click Save when done.
What gets sent (payloads)
- Custom (HTTP): a request to your URL containing the record's fields plus the
eventfield, sent with your chosen method, headers and body mappings. - Discord / Slack: a formatted message with a coloured title like Invoice · Paid and the key fields from the record. Colours reflect the event type (green for created/paid/won/approved, red for deleted/lost/rejected, and so on). Sensitive and internal fields (IDs, passwords, timestamps) are filtered out.
Editing, pausing and deleting
- Edit a webhook from its action menu to change its name, triggers, target or custom settings.
- Pause a webhook by switching its Status to Inactive — it stops firing but is kept.
- Delete removes it permanently.
Testing and troubleshooting
After saving, perform the matching action in BusinessHRM (for example mark an invoice paid), then open to see whether the call was delivered and what response code came back. See the Webhooks Log article for details.
Important: Only Active webhooks fire, and webhooks run in the background queue, so allow a short delay before checking the log.
Permissions
- View Webhooks — see the webhooks list (must be All).
- Add Webhooks — create webhooks.
- Edit Webhooks — edit webhooks.
- Delete Webhooks — delete webhooks.
- View Webhooks Logs — see the delivery log.