hcm

Workflow engine

ENTERPRISEEstimated read: 11 min· Updated 2026-08-30

Workflow engine

EnterpriseAdmin

/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

FieldWhat it doesAccepted values / default
TRIGGERWhat starts the run.Platform event (incl. webhook subscriptions, life-cycle events, comp + benefits triggers) or schedule.
CONDITIONBranch the flow.5 operators: equals, not-equals, contains, in-list, regex-match. Negation supported on each.
WAITPause the run.Fixed delay, business-day-aware delay, until-deadline-or-event.
ACTIONDo the thing.6 action types — see below.
ENDTerminate the run.Multiple ENDs per workflow are allowed (one per branch).

6 action types

FieldWhat it doesAccepted values / default
Send notificationPer-user notification through the configured channels.Routed through /account/notifications preferences. Per-category mute respected.
Slack / Teams DMDirect 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 courseAdds the target user to a learning course.Pulls from /hcm/learning catalog; respects role-required gating.
Send document for signingTriggers a signing-template chain.Per /hcm/admin/document-signing.
Outbound webhookPost 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 stepWorkspace-specific reserved-type action.For workspaces with developer integration; not generally configurable in the UI.

Build a workflow

  1. Click "+ New workflow"

    Blank canvas with a TRIGGER node placeholder.

  2. Set the trigger

    Pick an event (e.g. "employee onboarded") or a schedule.

  3. Add condition + action nodes

    Drag from the palette. Wire outputs into inputs to define the branching.

  4. Validate

    The pure validator runs on every save. Common errors: dangling nodes, unreachable branches, circular waits, missing required inputs.

  5. Simulate

    Run sample inputs through the workflow. See which nodes execute, which branches taken, action outputs.

  6. Save draft

    Audit log records HCM_WORKFLOW_DRAFT_SAVED.

Publish (4-eyes)

  1. A different HR admin opens the draft

    Author cannot publish.

  2. Click "Publish"

    Publisher reviews the validator + simulator results + the diff against the prior version.

  3. 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:

FieldWhat it doesAccepted values / default
Trigger eventWhat initiated the run.With the event's payload (PII-redacted in display).
Workflow versionWhich version handled the run.Stable through the run; even if a new version publishes.
Node-by-node executionWhich nodes ran, which branches taken, action inputs + outputs.Useful for debugging unexpected flows.
OutcomeSuccess / failure / cancelled / waiting.Failures surface the error per the failed node.
DurationTotal elapsed time including WAIT nodes.Useful for SLA tracking.

Common patterns

FieldWhat it doesAccepted values / default
New-hire onboardingTRIGGER: HCM_EMPLOYEE_ONBOARDED → ACTION: send document chain + enroll in courses + send DMMost common workflow; ships as a default template.
Offboarding cleanupTRIGGER: HCM_EMPLOYEE_OFFBOARDED → ACTION: send equipment recovery task + send COBRA notice via signingShips as default template.
Anniversary recognitionTRIGGER: schedule (annually on hire date) → ACTION: Slack DM + send certificateWorkspace-curated template.
Quarterly compliance training reminderTRIGGER: schedule → CONDITION: required by role → ACTION: enroll in courseCompliance-driven.

Every field, explained

FieldWhat it doesAccepted values / default
TriggerEvent or schedule that starts the run.Workspace-defined event list + cron-style schedule.
Condition operatorHow to compare a workflow input to a value.5 operators; negation supported.
Wait policyHow a WAIT node delays the run.Fixed delay / business-day-aware / until deadline.
Action input mappingHow upstream node outputs map into the action's required fields.Drag-and-drop mapping; supports basic expressions.
Validator outputPure check on the workflow's structure.Cannot publish if validation fails.
Simulator inputSample 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 codeWhat it meansFix
WORKFLOW_VALIDATION_FAILEDThe structure is invalid.Fix the named issue (dangling node, unreachable, etc.).
WORKFLOW_PUBLISH_4EYES_VIOLATIONAuthor tried to publish.Different HR admin publishes.
WORKFLOW_RUN_ACTION_FAILEDAction node failed.Check the action's input mapping + downstream system.
WORKFLOW_CIRCULAR_WAITA WAIT loop back to itself.Break the cycle.

Related