Per-stage notifications for projects

Every project stage can name who hears when it completes — owner, the assigned PM, the crew lead, everyone on the project, named individuals, and the customer — with its own wording per channel.

What it is

A screen listing each stage of each project template with the rule actually in effect and where that rule came from. Recipients are explained in the builder's terms: 'Everyone with the admin role in THIS sub-account. Never anyone from another account, and never Leads 2 Build staff.' The customer option sends the branded progress email and a text if SMS is on.

Also called: notify when a stage finishes · stage automations · tell the customer when framing is done · who hears about stage completion

See it
Per-stage notifications for projects
Apr
May
Jun
Jul
Delia Yoder — Equipment Storage
Framing
Delia Yoder — 40×64 Shop
Concrete
Sutter Kline — Equipment Storage
Trim
Delia Yoder — 30×40 Garage
Framing
Ronan Petsch — Riding Arena
Concrete
Framing crewConcrete crewTrim crew
The stage list with each row showing its effective rule and source badge, one stage expanded into recipients and channels. StageNotificationsTab.tsx. Sample data — no customer information appears here.
How it works
  1. 1Rules attach to a stage definition, so renaming a stage cannot orphan its rule.
  2. 2The dispatcher resolves each rung explicitly: admins for owner, project managers ASSIGNED TO THIS PROJECT for PM (not every PM in the account), the assigned crew's lead, everyone assigned, plus named individuals.
  3. 3Named individuals are 'the explicit opt-in an admin has to go out of your way to create — nobody lands here by inheriting a role'.
Why we built it

The screen header lists the three faults of the grid it replaced, none visible to the builder: 'renaming a stage orphaned its rule (the slug moved, the rule didn't); every template shared one row, so "notify the customer on barndominiums but not on sheds" could not be expressed; and nothing told you WHERE a stage's behaviour came from, so editing one row and seeing no change was indistinguishable from the feature being broken.'

The problem
  • Slug-keyed rules broken by a rename
  • One shared rule across every template
  • No visibility into where behaviour came from
Sound familiar?
What you get
Per-stage, per-template control
Recipients named in plain language with isolation guarantees stated
What's inside

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 →