Set Up Webhooks for Forms and Certificates

Webhooks automatically send a notification or data payload when a form or certificate reaches a status you choose. Use them to keep your team informed without checking Salus manually, or to send form and certificate data into another tool.

Webhooks can trigger on form events (created, pending, or completed) or certificate expiry events. You can send the notification by email, URL, or SMS, and limit exactly when it fires using conditions.

Use this guide to create your first webhook and understand every option in the setup screen.

Company Settings › Webhooks › + Add Webhook

Webhooks are available to Full Access (Admin) users only, in the Salus web app. There is no mobile app equivalent.

Open the webhook creation screen

  1. In the Salus web app, click Company Settings in the top-right corner.
  2. Select the Webhooks tab.
  3. Click + Create Webhook.

Step 1: Choose the Entity

Entity determines what the webhook watches: a form submission or a certificate expiry.

Entity (required)

Choose Form to trigger the webhook from form submissions, or Certificate to trigger it from certificate expiry.

Use it when: you're deciding whether this webhook tracks form activity or certificate expiry dates.

Step 2: Choose the Event

Available events depend on the Entity selected in Step 1.

If Entity is Form

On Create

Sends the webhook as soon as the form is created on the server.

Use it when: you want to know a form has started, before any review happens.

On Pending

Sends the webhook when the form enters Pending review.

Use it when: someone needs to know a form is waiting on their review.

On Complete

Sends the webhook when the form is finished: either submitted with no review process required, or approved after review.

Use it when: you only care about final, completed submissions.

On Create, On Pending, and On Complete are commonly confused. On Create fires the moment a form exists. On Pending fires only if the form goes through a review step. On Complete fires once the form is done, whether or not it was reviewed.

If Entity is Certificate

On Expiry

Sends the webhook on the certificate's expiry date.

Use it when: you need a notification the day a certificate actually expires.

30 / 60 / 90 Days From Expiry

Sends the webhook 30, 60, or 90 days before the certificate expires.

Use it when: you want advance warning so a worker can renew a certificate before it lapses.

Step 3: Choose what the webhook applies to

If Entity is Form

Type (required)

Choose Form to trigger on one specific form template, or Form Type to trigger on every form in a category.

Use it when: deciding if this webhook should watch a single form or a whole form category.

  1. If Type is Form, a Form dropdown appears. Select the specific form template.
  2. If Type is Form Type, a Form Type dropdown appears instead. Select the form category.

If Entity is Certificate

Certificate Types (optional)

Select one or more certificate types to limit the webhook to. Leave this field empty to trigger for all certificate types.

Use it when: you only want to track expiry for a specific certification, like a fall protection card.

Step 4: Add conditions (optional)

Conditions let you limit a webhook so it only fires when specific form field values match what you set, instead of every time the event happens.

Note: Conditions are built from form fields, so this section is confirmed for Form webhooks. Confirm with your team whether Conditions are also available for Certificate webhooks before publishing.

  1. Click + Add Condition.
  2. Select a Field from the form.
  3. Select an Operator: Any change, equals, does not equal, contains, or does not contain.
  4. If the operator requires one, a Value field appears. Enter the value to match against. Any change does not need a value.
  5. Click + Add Condition again to add more conditions.

Combine (required if using more than one condition)

Match all requires every condition to be true (AND logic). Match any requires only one condition to be true (OR logic).

Use it when: you have two or more conditions and need to control how strict the match is.

Click the next to any condition to remove it.

Step 5: Choose recipients

Send By (required)

Choose Email, URL, or SMS.

Use it when: deciding how the notification should reach its recipient.

Note: SMS is no longer limited to Canada. It is gated by a feature flag and must be enabled for your company. If you don't see SMS as an option, ask your Salus contact to confirm it's enabled.

Send To (required)

Choose Custom Email or URL, Users, or Roles. These options are the same regardless of which Send By method you picked.

Use it when: pointing the notification at a specific address, a specific person, or everyone in a role.

  • Custom Email or URL: enter any email address, or the destination URL if Send By is URL.
  • Users: select one or more specific company users.
  • Roles: select a role. Everyone assigned to that role receives the notification.

If Send By is URL, Salus sends the webhook payload directly to the destination URL you enter. This is commonly used to connect Salus to tools like Slack, Notion, or an automation platform.

Optional: Customize the email template

Turn on Use Custom Email Template to write your own subject and message, and pull in live data from the form or certificate that triggered the webhook.

Note: This section is confirmed for Send By: Email. Confirm whether custom templates are also available when Send By is URL or SMS before publishing.

  1. Toggle on Use Custom Email Template.
  2. Click a variable in the list to insert it into the Subject or Message field.
  3. Enter your Subject and Message. Both are required once the toggle is on.

Webhook Context variables (Form webhooks)

Always-available system variables: Form Action, Company ID, Company Name, Form Instance ID, Form Template ID, Form Title, Form Status, Form Type, Form Created Date, Form Created Time, Webhook Trigger Date, Webhook Trigger Time, Site ID, Site Name, Site Job Number, ID of Triggering User, Name of Triggering User, Link To Form.

Use it when: you need details about the submission itself, not the answers inside it.

Form Fields variables (Form webhooks)

One variable per field on the selected form, for example Location, Date, Muster Point, Permit Number, or any custom question on that form.

Use it when: you want the actual answer a worker entered to appear in the message.

Certificate Fields variables (Certificate webhooks)

Certificate Type, Certificate Number, Expiry Date, Issue Date, Days Until Expiry, Expiry Phrase, Owner Name, Owner First Name, Owner Last Name, Owner Email, Company ID, Company Name, Webhook Trigger Date, Webhook Trigger Time, Link To Certificate.

Use it when: you want the recipient to see who the certificate belongs to and when it expires without opening Salus.

Tip: Variables work in both the Subject and Message fields, so you can put a variable like Site Name directly in the subject line for faster scanning in an inbox.

For more on building templates, see How to Use Custom Email Templates in Webhooks.

Step 6: Set the scope

By default, a webhook applies to every site. Use Scope to narrow that down. Site Specific and Filter by Site Tags are mutually exclusive: only one can be turned on at a time.

Site Specific (optional)

Toggle on and pick a single site. The webhook only triggers for that site.

Use it when: you need this webhook tied to exactly one location.

Filter by Site Tags (optional)

Toggle on and pick a site tag. The webhook triggers for every site that tag is applied to, so it can cover multiple sites at once.

Use it when: you want one webhook to cover a group of related sites without listing each one.

Save the webhook

Click Create to activate the webhook.

Warning: Forms created while a device is offline won't trigger a webhook until the device reconnects and the form is created on the server. Expect a delay in webhook delivery for offline submissions.

What happens next

Once saved, the webhook runs automatically in the background. Every time the selected event occurs, and any conditions and scope you set are met, Salus sends the notification to your chosen recipient. No further action is needed from you or your team unless you want to edit or disable it later from the Webhooks tab.

Frequently Asked Questions

What's the difference between On Create, On Pending, and On Complete?

On Create fires the moment a form is created on the server. On Pending fires when a form enters a review step. On Complete fires once a form is finished, whether it needed review or not.

What's the difference between Match all and Match any?

Match all requires every condition you added to be true before the webhook fires. Match any fires the webhook if just one of the conditions is true.

Why didn't my webhook trigger when a worker submitted a form?

If the form was created while the device was offline, the webhook won't fire until the device reconnects and the form syncs to the server.

Is SMS still limited to Canada?

No. SMS is now controlled by a feature flag that must be enabled for your company, with some geographic restriction. If you don't see SMS as an option, ask your Salus contact to confirm it's enabled.

What's the difference between Site Specific and Filter by Site Tags?

Site Specific limits the webhook to one site you choose. Filter by Site Tags limits it to every site carrying a chosen tag, so it can cover several sites at once. Only one of these can be turned on at a time.

What happens if I leave Certificate Types empty?

The webhook triggers for every certificate type in your company, not just one.

Who can create or edit webhooks?

Only Full Access (Admin) users can access Company Settings and manage webhooks.

Was this article helpful?
0 out of 0 found this helpful