The dispatcher behind the per-stage rules. It resolves the stage's identity, resolves the rule, sends to the chosen internal recipients and to the customer over email/SMS, then runs any registered action handlers. Returns 'handled' so the caller skips the legacy org-wide notification.
Also called: automations · when a stage finishes do this · trigger on stage complete
- 1Identity comes from the project's stage instance row — the definition it was actually built from, not whatever Settings says today
- 2Internal recipients resolve to org admins, the assigned project manager, the assigned crew's lead, per-project assignees, and any named users
- 3Customer email and SMS reuse the tenant's own messaging path with the tenant's brand
- 4registerStageActionHandler lets webhook / QuickBooks / change-order handlers plug in with zero engine changes
- 5A rule that exists but is disabled counts as handled, so an org that chose silence stays silent
Renaming a stage in settings used to orphan every notification hanging off it. The builder saw a tidier name and silently lost the emails behind it, usually finding out weeks later when a customer said nobody had told them anything. Stages carry an identity that survives a rename. The message tokens are kept deliberately small: a full templating language here would have been a second email engine competing with the one the platform already runs.
- Manual notification after every stage
- Automation bound to a name that can change
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →