> For the complete documentation index, see [llms.txt](https://docs.rubica.au/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rubica.au/workflow-automation/stage-actions-overview.md).

# Stage Actions — Overview

Automating what happens while a Job is running — timed emails, texts, tasks, and more, fired off stage entry, exit, or due date.

A **Stage Action** is a piece of automation attached to a stage — "3 days after this Job enters Prepare, email the client", "if nothing happens within 5 days, text them again", "7 days after the due date, skip to the next stage automatically". This is what actually runs *inside* an already-open Job, as opposed to [Workflow Triggers](/workflow-automation/workflow-triggers-creating-a-trigger.md), which create the Job in the first place.

For the full list of what an action can actually *do*, see [Action Types Reference](/workflow-automation/action-types-reference.md). This page covers the fields **every** action type shares: timing, recipients, and conditions.

## Where to find it

**Home → Settings → Workflow Templates →** a template **→ Stages** tab **→** open a stage **→ + Add Action**.

## Timing

| Field                                                  | Options                                   | Notes                                                                                                                                                                                                                  |
| ------------------------------------------------------ | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Trigger mode**                                       | One-time / Recurring                      | Recurring repeats every N days up to a max count — e.g. "text every 5 days, up to 3 times, until they respond".                                                                                                        |
| **Anchor**                                             | Stage Entry / Stage Exit / Stage Due Date | What the offset below counts from.                                                                                                                                                                                     |
| **Direction**                                          | Before / After                            |                                                                                                                                                                                                                        |
| **Offset days**                                        | A number, or blank                        | **Blank = fires immediately** on stage entry, handled by the original always-on Flow system rather than the day-offset engine — still works, just a different underlying mechanism. Set a number to actually delay it. |
| **Recurrence interval / max count** *(Recurring only)* |                                           | How many days between repeats, and how many times before it stops trying.                                                                                                                                              |

## Recipients

Controls who a message-based action (email/text) sends to when the Job's Account is a Household with more than one person:

* **Primary Contact** *(default)* — sends to whoever's flagged Primary on the household; if nobody is, falls back to whichever household member actually has a usable phone/email rather than picking arbitrarily.
* **All Contacts** — sends to every household member who has usable contact info, reporting back success/failure per person.

For a single-person Account, this setting doesn't matter — there's only ever one possible recipient.

## Conditions

Any action can have one or more **Conditions** attached — "only send this if Service Category contains Ongoing", combinable, all must match. See [Setting Conditions on a Workflow Trigger](/workflow-automation/setting-conditions-on-a-workflow-trigger.md) for the full operator reference (Equals / Not Equals / Contains) — the same condition-builder UI and logic apply here.

{% hint style="success" %}
**🆕 Conditions on Stage Actions are now live** (v1) — you can attach the same Equals/Not Equals/Contains conditions used on Workflow Triggers directly to a Stage Action, gating it on an Account field. Two things worth knowing while this is new: it's **Account-field only** for now (no Job or Contact fields yet), and it's freshly shipped with no production usage yet at time of writing — test it with a real Preview (see [Testing & Previewing](/workflow-automation/testing-and-previewing.md)) before relying on it for a live client workflow.
{% endhint %}

## Preventing duplicate sends

A one-time action **never fires twice** for the same Job, even if something goes wrong and someone re-triggers evaluation — every prior attempt counts (sent, skipped, or failed), so a mis-configured action doesn't silently retry forever once you notice and fix it.

## Testing before you trust it

Message-based actions (email/text, compose mode) have a **Preview with a real client** button — pick any real Account, see the fully rendered message with merge fields filled in, at zero cost: no Job created, nothing sent, nothing saved.

## See also

* [Action Types Reference](/workflow-automation/action-types-reference.md)
* [Merge Fields](/workflow-automation/merge-fields.md)
* [Testing & Previewing](/workflow-automation/testing-and-previewing.md)
