Triggers

llms.txt
A trigger starts a Zap when something happens in the Hub. The app has 60 of them: 59 instant triggers, one for each Hub webhook event the app allows, and 1 polling trigger, New Candidate.

Instant and polling

The diagram shows the two ways a Zap hears about the Hub. In an instant trigger the Hub calls the Zap; in a polling trigger Zapier asks the Hub on a timer.
Two rows. Instant trigger: Hub sends a signed message to the address Zapier gave the Zap when an event happens and the Zap runs within seconds. Polling trigger: Zapier asks the Hub for the newest candidates every 1 to 15 minutes depending on the Zapier plan and each check is one call against the key's hourly limit

Instant (59)
Polling (New Candidate)
How the Zap hears
The Hub posts the event to the Zap
Zapier asks the Hub on a schedule
Delay
Seconds
Up to the polling interval of your Zapier plan
Cost against the key
None: webhooks do not count against the hourly limit
One call for every check
What is registered in the Hub
One webhook endpoint for the Zap, with source zapier
Nothing
When you turn the Zap off
The endpoint is removed
Nothing to remove
Use an instant trigger whenever there is one. New Candidate polls only because the Hub has no event for a new candidate yet.
Zapier plan limits. What a Zap may do depends on your Zapier plan, which Zapier controls and can change, so check Zapier's own pages. At the time of writing, the free plan allows a Zap of two steps (a trigger and one action) and checks polling triggers about every 15 minutes; paid plans allow more steps and shorter intervals. Of the recipes on this site, three use two steps and one uses three. Prices are not given here.
Cost of polling. Every check is one call against the key's hourly limit (1,000 by default). A Zap that checks every minute uses 60 calls an hour, so ten polling Zaps on one key would use more than half the default limit. Give a polling Zap its own key, raise the limit if you need to, and prefer instant triggers.

What every instant trigger gives you

Every instant trigger returns the same four fields, then the fields of its event:
Field
Meaning
ID and Event ID
The Hub's own id of this event. It is stable when the Hub delivers the event again, and Zapier uses it to avoid running a Zap twice for one event. Two different events about one booking are two runs.
Event Type
The event name, for example online-training.access.started.
Occurred At
When it happened, as a date and time.
By default an event carries ids, statuses and dates only, as the Hub's webhooks do. A candidate or booking is named by its reference, not by name or email.

Include details

Most triggers (51 of 59) have a choice called Include details, which you find under Configure when you set up the trigger. When it is True, the app does one extra lookup in the Hub for each run, adds a block of fields called Details (names, emails, statuses and dates of the record) and marks every lookup in the Hub's log as coming from Zapier. When it is False or left empty, nothing extra is fetched.
The Configure tab of the trigger Online Training Access Started with the option Include details and the two choices True and False
The Include details choice under Configure, shown for the trigger Online Training Access Started. Leave it empty or False unless a later step needs the name or email.
It costs one call against the key's hourly limit for every run.
It needs a read scope of the portal (shown in Scopes by step family), or the trigger refuses to turn on and names the scope.
Turn it on when a later step acts on the record, for example approves a renewal. Zapier cannot check that a message really came from the Hub (see Data protection), so a lookup makes the Hub the source of truth instead of the message.
A record that was deleted or is not allowed to be read does not lose the event: the run goes on and a field called details_error says why (not_found or insufficient_scope). A lookup stopped by a rate limit makes the run fail so that Zapier tries it again.
Details hold only a fixed list of fields. A phone number, date of birth, NMC number, address, notes or link is never in it.
Two triggers have a different choice or none:
Practical Training Booking Invite Sent has Include invite link. The link lets whoever holds it book, and Zapier keeps it in Zap history and hands it to the next app, so it is left out unless you tick this.
Account signals, such as a low balance, have no record to look up, so they have no Include details.

A test result

When you choose Test trigger Zapier shows an example. For an instant trigger it is the example in the Hub's own specification, not one of your records, so names and numbers in it are made up. In a sandbox you can raise a real event from the console (Simulate) or by acting in the Hub or through an action, and Zapier then shows that event.
The Run details of step 1, Online Training Access Started, listing the data out: Candidate Reference, Source credits, Started By api, three groups with their ids and titles Mandatory training, Safeguarding and Core skills, and Credits Charged 10.5
The result of a real test: the data of an Online Training Access Started event in the sandbox, with the candidate reference, source, who started it, the course groups and the credits charged.
The trigger event list of the Healthier Business Compliance Hub app showing Appraisal Booking Confirmed, Interview Booking Attendance Marked, Interview Booking Cancelled, Interview Booking Confirmed and Interview Booking Rescheduled, each with the label Instant, next to the account Sandbox: Zapier test key (client 1004)
The list of trigger events in the Zap editor. Each instant trigger carries the label Instant, and the account underneath is the connection.

How a trigger registers and ends

Turning the Zap on registers one webhook endpoint in the Hub, named Zapier: and the trigger name, for the one event, with the source zapier, a reference that belongs to that Zap and a timeout of 15 seconds. Turning the same Zap on again does not make a second endpoint. The signing secret the Hub returns is thrown away, because Zapier cannot use it.
Turning the Zap off removes the endpoint. A missing endpoint counts as removed.
An endpoint that fails 25 deliveries in a row is switched off by the Hub, and events during the outage are not queued. If a Zap stops firing, turn it off and on again, and check the endpoint on the Webhooks page.
The Hub tries each delivery up to five times over about 80 minutes.

The 60 triggers

There are no triggers for Occupational Health or DBS and Right To Work. The Hub has 73 events; the app uses 59 of them. The 14 it leaves out are the 9 Occupational Health events, the 3 DBS and Right To Work events, and the interview outcome and interview report events of Clinical Interviews.
In the tables, the sample is what Zapier shows when you test the trigger, in addition to the four fields above. Fields are shown with spaces instead of underscores. Include details says whether that choice is offered.

Hub (core) (1)

Trigger
Event
What it means
What the sample contains
Include details
New Candidate
Polling (no event)
A new candidate was added in the Hub. Zapier checks on its polling schedule.
candidate ref, first name, last name, name, email, roles, candidate reference, compliance status, is active, next expiry date, added at, updated at
No

Online Training (13)

Trigger
Event
What it means
What the sample contains
Include details
Online Training Access Payment Link Expired
online-training.access.payment_link.expired
A candidate payment link expired unpaid.
candidate ref, payment id, groups
Yes
Online Training Access Revoked
online-training.access.revoked
A candidate's training access was taken back (a refunded payment).
candidate ref, groups, reason
Yes
Online Training Access Started
online-training.access.started
A candidate's training access was switched on (agency credits, free or candidate payment).
candidate ref, source, started by, groups, credits charged, access months, starts at, expires at, payment id
Yes
Online Training Certificate Issued
online-training.certificate.issued
A combined training certificate was supplied for a candidate.
candidate ref, type, issued at
Yes
Online Training Course Assigned
online-training.course.assigned
Courses were assigned to a candidate.
candidate ref, course ids, courses, assigned at
Yes
Online Training Course Completed
online-training.course.completed
A candidate passed a course.
candidate ref, course id, course name, status, assigned at, completed at, expires at, grade
Yes
Online Training Renewal Approved
online-training.renewal.approved
A candidate's manual renewal was approved and their access renewed.
candidate ref, request id, credits charged, expires at
Yes
Online Training Renewal Declined
online-training.renewal.declined
A candidate's manual renewal request was declined.
candidate ref, request id, reason
Yes
Online Training Renewal Requested
online-training.renewal.requested
A manual renewal was requested for a candidate (by the candidate, by you through the API or by an embed session).
candidate ref, request id, groups, credits needed, source
Yes
Online Training Terms Accepted
online-training.terms.accepted
A candidate accepted the Hub terms, in the Hub or inside an embedded frame.
candidate ref, version, accepted at, via
Yes
Online Training Training Completed
online-training.training.completed
A candidate completed all their assigned training.
candidate ref, status, courses assigned, courses completed, completed at, expires at
Yes
Online Training Training Expired
online-training.training.expired
A candidate was sent a reminder that their training has expired.
candidate ref, status, expires at
Yes
Online Training Training Expiring
online-training.training.expiring
A candidate was sent a reminder that their training is due for renewal.
candidate ref, status, expires at
Yes

Practical Training (16)

Trigger
Event
What it means
What the sample contains
Include details
New Practical Training Booking
practical-training.booking.created
A booking was created.
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option
Yes
Practical Training Balance Depleted
practical-training.balance.depleted
The booking balance ran out.
balance pence, currency
No (nothing to look up)
Practical Training Balance Low
practical-training.balance.low
The booking balance is low.
balance pence, threshold pence, currency
No (nothing to look up)
Practical Training Booking Attendance Marked
practical-training.booking.attendance_marked
Attendance was recorded on the last day.
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option, attendance, attendance day
Yes
Practical Training Booking Cancelled
practical-training.booking.cancelled
A booking was cancelled or refunded.
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option, refund
Yes
Practical Training Booking Certificate Available
practical-training.booking.certificate_available
A certificate is available.
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option, attendance, attendance day
Yes
Practical Training Booking Confirmed
practical-training.booking.confirmed
A booking was confirmed (paid).
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option
Yes
Practical Training Booking Invite Opened
practical-training.booking_invite.opened
A booking invitation was opened.
invite id, candidate ref, course id, course name
No (nothing to look up)
Practical Training Booking Invite Sent
practical-training.booking_invite.sent
A booking invitation was sent.
invite id, candidate ref, course id
No. Option: Include invite link
Practical Training Booking Invite Used
practical-training.booking_invite.used
A booking invitation was used to book.
invite id, candidate ref, course id, booking id, training event id, course name, start date
Yes
Practical Training Booking No Show
practical-training.booking.no_show
A candidate did not attend.
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option, attendance, attendance day
Yes
Practical Training Booking Rescheduled
practical-training.booking.rescheduled
A booking was rescheduled.
booking id, candidate ref, training event id, course id, course name, location name, start date, booking status, pay option
Yes
Practical Training Credits Depleted
practical-training.credits.depleted
A course ran out of credits.
course id, course name, credits
No (nothing to look up)
Practical Training Credits Low
practical-training.credits.low
A course has few credits left.
course id, course name, credits, threshold
No (nothing to look up)
Practical Training Slot Hold Expired
practical-training.slot_hold.expired
A held place expired.
hold hash, training event id, course name, location name, start date, expired at
No (nothing to look up)
Practical Training Training Event Seats Low
practical-training.training_event.seats_low
A session is nearly full.
training event id, course name, location name, start date, remaining slots, threshold
No (nothing to look up)

Registration Monitoring (2)

Trigger
Event
What it means
What the sample contains
Include details
Registration Worker Initial Verification
registration-monitoring.worker.initial_verification
A worker registration was verified for the first time.
worker id, registration check id, regulator, registration number, status, checked at
Yes
Registration Worker Status Changed
registration-monitoring.worker.status_changed
A worker registration status changed.
worker id, registration check id, regulator, registration number, previous status, new status, checked at
Yes

References (7)

Trigger
Event
What it means
What the sample contains
Include details
New Reference Reference Request
references.reference.request.created
A reference request was created.
uuid, candidate ref, collection mode, references required, expires at
Yes
Reference Candidate Referees Submitted
references.candidate.referees.submitted
A candidate sent in the details of their referees.
reference request uuid, candidate ref, referees added
Yes
Reference Reference All Completed
references.reference.all_completed
Every reference a request needs has been completed.
reference request uuid, candidate ref, references completed, references required
Yes
Reference Reference Declined
references.reference.declined
A referee declined to give a reference.
reference uuid, reference request uuid, candidate ref, has decline reason
Yes
Reference Reference Expired
references.reference.expired
A reference passed its deadline without an answer.
reference uuid, reference request uuid, candidate ref, expired at
Yes
Reference Reference Reminder Sent
references.reference.reminder.sent
A reminder was sent to a referee.
reference uuid, reference request uuid, candidate ref, reminder number
Yes
Reference Reference Submitted
references.reference.submitted
A referee submitted their reference. The answers and the score are not passed on.
reference uuid, reference request uuid, candidate ref, submitted at
Yes

Virtual BLS (7)

Trigger
Event
What it means
What the sample contains
Include details
New Virtual BLS Booking
virtual-bls-training.booking.created
A booking was created.
booking id, candidate ref, course id, course, start date, pay option, status
Yes
Virtual BLS Booking Attendance Marked
virtual-bls-training.booking.attendance_marked
Attendance was recorded.
booking id, candidate ref, course id, course, start date, attendance, id checked
Yes
Virtual BLS Booking Cancelled
virtual-bls-training.booking.cancelled
A booking was cancelled or refunded.
booking id, candidate ref, course id, course, start date, status
Yes
Virtual BLS Booking Certificate Available
virtual-bls-training.booking.certificate_available
A certificate is available.
booking id, candidate ref, course id, course, start date
Yes
Virtual BLS Booking Confirmed
virtual-bls-training.booking.confirmed
A booking was confirmed (paid).
booking id, candidate ref, course id, course, start date, pay status, transaction id
Yes
Virtual BLS Booking Equipment Late
virtual-bls-training.booking.equipment_late
The training kit is overdue for return.
booking id, candidate ref, course id, course, start date, days overdue, notice number
Yes
Virtual BLS Booking Rescheduled
virtual-bls-training.booking.rescheduled
A booking was rescheduled.
booking id, candidate ref, course id, course, start date, status
Yes

Clinical Interviews (5)

Trigger
Event
What it means
What the sample contains
Include details
Interview Booking Attendance Marked
clinical-interviews.booking.attendance_marked
Attendance was recorded.
booking id, candidate ref, interview type, start date, status, interview status, attendance, by
Yes
Interview Booking Cancelled
clinical-interviews.booking.cancelled
A booking was cancelled.
booking id, candidate ref, interview type, start date, status, interview status, cancelled at, by
Yes
Interview Booking Confirmed
clinical-interviews.booking.confirmed
A booking was confirmed (paid).
booking id, candidate ref, interview type, start date, status, interview status, pay status, transaction id, by
Yes
Interview Booking Rescheduled
clinical-interviews.booking.rescheduled
A booking was rescheduled.
booking id, candidate ref, interview type, start date, status, interview status, previous start date, by
Yes
New Interview Booking
clinical-interviews.booking.created
A booking was created.
booking id, candidate ref, interview type, start date, status, interview status, pay option, by
Yes

Clinical Appraisals (2)

Trigger
Event
What it means
What the sample contains
Include details
Appraisal Booking Confirmed
clinical-appraisals.booking.confirmed
A booking was confirmed (paid).
booking id, candidate ref, appraisal type, status, appraisal status, pay status, transaction id, by
Yes
New Appraisal Booking
clinical-appraisals.booking.created
A booking was created.
booking id, candidate ref, appraisal type, status, appraisal status, pay option, by
Yes

Training Verification (7)

Trigger
Event
What it means
What the sample contains
Include details
Training Verification Failed
training-verification.failed
A verification failed.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at, reason code
Yes
Training Verification Not Found
training-verification.not_found
A certificate could not be matched to a record.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at, reason code
Yes
Training Verification Processing
training-verification.processing
A verification started processing.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at
Yes
Training Verification Refunded
training-verification.refunded
The charge of a verification was refunded.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at, refund
Yes
Training Verification Rejected
training-verification.rejected
A verification was rejected or cancelled.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at, reason code
Yes
Training Verification Submitted
training-verification.submitted
A certificate verification was submitted.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at
Yes
Training Verification Verified
training-verification.verified
A certificate was verified.
verification id, client reference, request type, status, candidate ref, candidate name, created at, updated at, completed at
Yes
Notes on a few:
Training Verification events carry the candidate name. They are the only events that do, so think before you pass them to other apps.
Reference Reference Submitted does not pass the score on, and no reference answer is ever passed on.
Practical Training Booking Invite Sent carries the invite id and the candidate, not the link, unless you tick Include invite link.
Next: Actions.
Last updated 31 Oct 202616 min readNeed help? Contact support