Workflow engine
/hcm/automation is the workflow engine. AxisSynapse workflows are
branchable DAGs — TRIGGER → CONDITION → WAIT → ACTION → END
nodes wired in any order, with 5 condition operators + 6
action types. The author surface includes a pure validator + a
simulator so you can prove the workflow's behaviour against
sample inputs before publishing. Publication is 4-eyes SoD
(author ≠ publisher); versions are append-only.
TL;DR — Open HCM → Automation. Draft a workflow. Wire trigger + conditions + actions. Simulate. A different HR admin publishes (4-eyes). New events trigger your workflow; runs appear in the history with timing + outcome.
Before you start
- Know your trigger — a platform event (new hire, position change, leave start, comp change, etc.) or a schedule (cron-style).
- Know your action — what should happen (send a notification, enroll in a course, file a document for signing, send a Slack / Teams DM, post a webhook).
- Sketch your conditions — under what circumstances should the action fire? Workspace state, employee attribute, role/level, geography, etc.
Node types
| Field | What it does | Accepted values / default |
|---|---|---|
| TRIGGER | What starts the run. | Platform event (incl. webhook subscriptions, life-cycle events, comp + benefits triggers) or schedule. |
| CONDITION | Branch the flow. | 5 operators: equals, not-equals, contains, in-list, regex-match. Negation supported on each. |
| WAIT | Pause the run. | Fixed delay, business-day-aware delay, until-deadline-or-event. |
| ACTION | Do the thing. | 6 action types — see below. |
| END | Terminate the run. | Multiple ENDs per workflow are allowed (one per branch). |
6 action types
| Field | What it does | Accepted values / default |
|---|---|---|
| Send notification | Per-user notification through the configured channels. | Routed through /account/notifications preferences. Per-category mute respected. |
| Slack / Teams DM | Direct message to the target user via the workspace's Slack / Teams connector. | OAuth-linked user must exist; channel-only delivery if DM linking unavailable. |
| Enroll in course | Adds the target user to a learning course. | Pulls from /hcm/learning catalog; respects role-required gating. |
| Send document for signing | Triggers a signing-template chain. | Per /hcm/admin/document-signing. |
| Outbound webhook | Post a JSON payload to a configured URL. | HMAC-signed per the workspace's signing secret; retry + circuit breaker per /platform/webhooks-and-event-subscriptions. |
| Custom step | Workspace-specific reserved-type action. | For workspaces with developer integration; not generally configurable in the UI. |
Build a workflow
Click "+ New workflow"
Blank canvas with a TRIGGER node placeholder.
Set the trigger
Pick an event (e.g. "employee onboarded") or a schedule.
Add condition + action nodes
Drag from the palette. Wire outputs into inputs to define the branching.
Validate
The pure validator runs on every save. Common errors: dangling nodes, unreachable branches, circular waits, missing required inputs.
Simulate
Run sample inputs through the workflow. See which nodes execute, which branches taken, action outputs.
Save draft
Audit log records
HCM_WORKFLOW_DRAFT_SAVED.
Publish (4-eyes)
A different HR admin opens the draft
Author cannot publish.
Click "Publish"
Publisher reviews the validator + simulator results + the diff against the prior version.
Confirm
Audit log records
HCM_WORKFLOW_PUBLISHED. The new version begins servicing new events; in-flight runs continue on their original version.
Append-only versioning
Workflows never overwrite. Each publish creates a new version;
prior versions retire as DEPRECATED but stay reachable for
in-flight runs + audit replay. The version history is a
permanent record.
Run history
Every run records:
| Field | What it does | Accepted values / default |
|---|---|---|
| Trigger event | What initiated the run. | With the event's payload (PII-redacted in display). |
| Workflow version | Which version handled the run. | Stable through the run; even if a new version publishes. |
| Node-by-node execution | Which nodes ran, which branches taken, action inputs + outputs. | Useful for debugging unexpected flows. |
| Outcome | Success / failure / cancelled / waiting. | Failures surface the error per the failed node. |
| Duration | Total elapsed time including WAIT nodes. | Useful for SLA tracking. |
Common patterns
| Field | What it does | Accepted values / default |
|---|---|---|
| New-hire onboarding | TRIGGER: HCM_EMPLOYEE_ONBOARDED → ACTION: send document chain + enroll in courses + send DM | Most common workflow; ships as a default template. |
| Offboarding cleanup | TRIGGER: HCM_EMPLOYEE_OFFBOARDED → ACTION: send equipment recovery task + send COBRA notice via signing | Ships as default template. |
| Anniversary recognition | TRIGGER: schedule (annually on hire date) → ACTION: Slack DM + send certificate | Workspace-curated template. |
| Quarterly compliance training reminder | TRIGGER: schedule → CONDITION: required by role → ACTION: enroll in course | Compliance-driven. |
Every field, explained
| Field | What it does | Accepted values / default |
|---|---|---|
| Trigger | Event or schedule that starts the run. | Workspace-defined event list + cron-style schedule. |
| Condition operator | How to compare a workflow input to a value. | 5 operators; negation supported. |
| Wait policy | How a WAIT node delays the run. | Fixed delay / business-day-aware / until deadline. |
| Action input mapping | How upstream node outputs map into the action's required fields. | Drag-and-drop mapping; supports basic expressions. |
| Validator output | Pure check on the workflow's structure. | Cannot publish if validation fails. |
| Simulator input | Sample event payload for testing. | Doesn't affect production runs. |
Audit codes
For SIEM ingestion + compliance review, this surface emits:
See Reference → Audit codes for the canonical description of each.
Common gotchas
- "My run failed but the workflow looks correct." Check the failed-node's input mapping; the most common failure is missing data (e.g. a Slack/Teams DM action with no linked user).
- "Workflow published but my action didn't fire." Verify the condition branches taken match your expected logic — simulator is the cheapest way to confirm.
- "In-flight runs use the old version." By design. Append-only versioning means a long-running workflow (e.g. a 30-day waiting step) finishes on its original version. New events use the new version.
- "Author can publish their own workflow." Not in production — 4-eyes SoD enforced. The publish button is hidden for the author.
- "Schedule trigger fired at the wrong time." Schedules use workspace timezone. Verify your workspace timezone is set correctly in Branding.
Troubleshooting
| Error code | What it means | Fix |
|---|---|---|
WORKFLOW_VALIDATION_FAILED | The structure is invalid. | Fix the named issue (dangling node, unreachable, etc.). |
WORKFLOW_PUBLISH_4EYES_VIOLATION | Author tried to publish. | Different HR admin publishes. |
WORKFLOW_RUN_ACTION_FAILED | Action node failed. | Check the action's input mapping + downstream system. |
WORKFLOW_CIRCULAR_WAIT | A WAIT loop back to itself. | Break the cycle. |
Related