How do I trigger onboarding from a TempWorks candidate status?

Last updated: September 25, 2026

Onboarded can create a placement — and run the policy engine — the moment an employee's status against a TempWorks job order changes. The trigger is off until you turn it on and pick the statuses, which is the usual reason a client-specific policy sits there doing nothing.

Steps

There are two halves to this. First you turn the trigger on in the TempWorks configuration, then you point a policy at the placement it produces.

Before you start

  • A TempWorks integration with saved credentials. The Configuration tab stays locked until credentials are in.

  • Permission to edit account settings.

  • The job-order candidate statuses your recruiters actually use in TempWorks — you'll pick from that list.

Turn on the trigger

  1. Go to Marketplace in the left nav.

  2. Find the TempWorks card and select Edit. You should see the Configure TempWorks panel open.

  3. Open the Configuration tab.

  4. Scroll to Placement creation triggers — "Choose when placements are created and the policy engine runs."

  5. Turn on On candidate status change. A status picker appears reading Select statuses....

  6. Select each status that should start onboarding — Accepted is the common one. Onboarded saves the moment you pick one, and you should see the confirmation "Candidate status triggers saved."

Flipping the toggle on by itself saves nothing.

What gets stored is the list of statuses, and the toggle's state is read back from that list. Turn it on, close the panel without picking a status, and the toggle reads off again next time you open it — no status change will ever match. Pick at least one status before you leave the page.

Point a policy at the placement

Each placement this trigger creates is named after the status that fired it, in the form Candidate Status (Accepted). That name is what a policy rule matches on.

  1. Open the policy that should assign the onboarding packet.

  2. Add a condition on placement.name.

  3. Use equal against the full value including the parentheses — Candidate Status (Accepted) — or contains Candidate Status to catch every status you selected.

  4. Save the policy.

Because the status-change event carries the job order, the placement resolves to a job order and its customer as well as the employee. Your other conditions — client.name, job.address.state, job.custom_attributes.* — evaluate against real values, so you can layer client-specific logic on top of the status match.

Verify

Change an employee's status on a job order in TempWorks to one you selected. Within a minute or so you should see a new placement on that employee named Candidate Status (<status>), carrying the tasks your policy assigns.

If nothing appears, work through these in order:

  • Reopen the Configuration tab and confirm your statuses are still listed. A toggle switched on with nothing selected doesn't persist, and it's the most common cause.

  • Confirm the policy rule matches the stored value. equal against Candidate Status never fires — the status is always in parentheses.

  • Confirm the status you changed in TempWorks is one of the ones you picked. A status you didn't select is ignored without an error.

  • The placement is created only when the employee, job order, customer, and employer all sync. If any one of them fails, no placement appears — check the sync for errors on that employee.

If the placement name reads Candidate Status (4521) with a number instead of a status name, Onboarded couldn't read the status list from TempWorks and fell back to the raw status ID. The placement is still valid and your policy still runs — match on the number, or reopen the configuration panel to refresh the list and let the next one resolve properly.

Selecting several statuses that the same employee passes through creates one placement per status. If an employee moves Submitted → Interviewed → Accepted and all three are selected, that's three placements and three policy evaluations. Pick the one status that means "start onboarding" unless you deliberately want packets at more than one stage.

Related