Workflows
Workflows react to changes inside your PSA in real time. When a ticket is created, updated, closed, merged, or any other event the PSA emits, a matching workflow rule fires and runs its action steps.
This product is branded differently depending on which PSA you use:
| Your PSA | Product name |
|---|---|
| Autotask | Workflows for Autotask |
| ConnectWise PSA | Workflows for ConnectWise |
| HaloPSA | Workflows for HaloPSA |
Use Workflows when the trigger you care about is a change inside the PSA itself, rather than an inbound email, a form submission, or a schedule tick.
When to Use Workflows
- You want a follow-up action every time a ticket moves to a specific status.
- You want to cross-post ticket activity into Slack, Teams, or an external system when a ticket is created or updated.
- You want to keep other systems in sync with PSA state (for example, push asset changes to a CMDB).
- You want automation that runs only when the PSA's own notification system is the source of truth.
If the trigger is an inbound email, see Email Processing. If it is a schedule, see Scheduled Tasks. If it is a visitor submitting a form, see Forms.
How It Works
A workflow has three parts:
| Part | Purpose |
|---|---|
| Event source | The PSA that emits events (Autotask, ConnectWise, or HaloPSA). The event source is determined by which connection the rule is bound to. |
| Rule (with expression) | The rule's expression decides which events it matches. If the expression is empty, the rule fires for every event from the chosen source. |
| Action steps | The ordered work the workflow performs when a matching event arrives. Workflows support the same action library as every other product. |
When a matching event arrives:
- The system creates a History entry with the event trigger type.
- The event payload is placed on a namespace named after the event source (
autotask,connectwise-psa, orhalo). - The rule's action list runs in order.
- Intermediate work is stored in the
customnamespace. - The history entry is marked complete or failed based on the result.
Variables Available in Workflows
| Namespace | Populated by | Purpose |
|---|---|---|
autotask / connectwise-psa / halo | System | The event payload from your PSA. Variable name depends on the event source. |
meta | System | Processing run, event, and subscription metadata (meta.history.id, meta.event.source, meta.event.type, meta.subscription.id, and so on) |
custom | You | Working data within the workflow |
Full details: Variable Namespaces.
The Console
Workflows live under Workflows (or the PSA-branded name) in the console sidebar. From there you can:
- Home: landing page with a snapshot of your workflow rules.
- Rules: list, create, edit, and test workflow rules.
- History: review every event processed, with the full execution log and replay.
Every rule has a Test button that runs the action list against a sample event payload so you can verify the logic without waiting for the real event.
Typical Patterns
Status-change follow-up
- Rule expression matches tickets where
statusjust changed to a specific value. - Action list fires a notification, updates another field, or triggers an external system.
Cross-system sync
- Rule matches any change to a specific entity type (for example, Configuration Items).
- Action list pushes the change to an external CMDB or sync destination.
Audit trail
- Rule matches every event.
- Action list writes a line to an external log system for long-term auditing.
Start Here
- Core Concepts: the mental model shared by every product.
- Expression Builder: filter which events trigger each rule.
- Variable Namespaces: complete reference for
meta,custom, and PSA event payload namespaces. - Actions library: every action available inside a workflow.