A best-practice comparison across all 35 client sub-accounts versus the current "Z Automation Snapshot," and a plan to turn it into one standard baseline you load for every client, then toggle modules on/off per need.
Source: full-fleet sweep (45 sub-accounts) + Z Automation Snapshot inventory. Prepared for the Patrick standard-snapshot initiative.
"Working" = published (live, running) across the fleet. These five run in 70–94% of all client accounts. They are the universal core.
| Workflow | Coverage | In Z snapshot? | |
|---|---|---|---|
| All Leads Captured → Tag Sources → GA4 Events | 94% | Yes · published | |
| Forms: Any Form Submitted → Create Opportunity → Auto Response | 94% | Yes · published | |
| Mark All As Read | 91% | Yes · published | |
| Review Requests | 86% | Yes · published | |
| Forms: Any Form Submitted → GA4 → Add Tags → Send Notification | 71% | Yes · published |
| Asset | What's standard | Coverage | In Z? |
|---|---|---|---|
| Pipelines | Main + Fixed (two-pipeline standard) | 27 / 14 of 35 | Yes |
| Custom values | GA4 Measurement ID, GA4 API Secret (per-client config knobs) | 34 of 35 | Yes |
| Custom fields | Service Requested, Referred By, Referrer Email | 26–29 of 35 | Yes |
| Calendar | "Discovery Call with {{location.name}}" | 17 of 35 | Yes |
| Trigger link / tags | Google Review Link + review-sequence / traffic-source / lost-reason tag taxonomy | common | Yes |
Ranked by published workflow count (battle-tested, actually in use):
| Account | Published | Total wf | Use for |
|---|---|---|---|
| Acclaimed Roofing Arizona | 29 | 38 | Gold reference — pull exact step config of the core 5 from here |
| Alfred's Roofing | 22 | 58 | Cross-check nurture + reminder modules |
| Empire Roofing | 19 | 24 | Clean published-to-total ratio; pipeline reference |
| Reliable Roofing, Siding & Windows | 16 | 22 | Review + notification config |
One snapshot. A core that's always on, a set of modules shipped as drafts you flip on per client, and the cruft removed.
Duplicate "Z Automation Snapshot" into a fresh sub-account named FireRock Standard v1. Build there so the live Z stays untouched until v1 is validated.
Delete the ScoreCard fields + ScoreCard form, the duplicate fields, and the Lead Engagement pipeline. Result: a clean field list (Service Requested, Referred By, Referrer Email + standard opportunity/contact fields only).
Confirm the 5 core workflows are present and published; verify each step config against Acclaimed Roofing Arizona (the most mature account). Keep Main + Fixed pipelines, GA4 custom values (left blank as placeholders), Discovery Call calendar, tag taxonomy, Google Review link, Contact Us + Referrals forms.
Prefix every optional workflow with [OPT] and group them in an "Optional Modules" folder, so on/off is obvious at a glance. Core workflows go in a "Core" folder. This is what makes "turn on what we need" a 10-second job.
The toggle checklist below — by client capability, not niche.
Save FireRock Standard v1 as an agency snapshot. Spin up a throwaway sub-account from it, confirm core fires on a test form submit (one verified send), then retire the old snapshot.
New client = load snapshot → fill the config knobs (GA4 IDs, calendar owner, business phone) → toggle the modules they need → publish. Done.
| Module | Turn ON when the client… | Default |
|---|---|---|
| Appointment Reminders | books calls / appointments via the calendar | usually ON |
| Incoming Call → Tag | takes inbound phone calls (most home-services) | usually ON |
| Inbound nurtures (Day 1–3, 5-Week) | has a longer sales cycle / quote-then-decide flow | situational |
| Facebook Lead Form + Meta Conversion API | runs Meta (Facebook/Instagram) lead ads | situational |
| Review Request "with intent check" | wants smarter review timing (replaces basic Review Requests) | optional |
| Google Review Campaign – Past Clients | has an existing customer list to reactivate for reviews | on request |
This is the single source of truth. Build the master exactly to these names so every account is identical and drift is instantly visible in the audit sweep.
| Object | Convention | Example |
|---|---|---|
| Core workflow | Plain descriptive name, lives in a numbered Core folder. No prefix. | Review Requests |
| Optional workflow | Prefix [OPT] + descriptive name, in an Optional folder. The prefix makes on/off obvious at a glance. | [OPT] Appointment Reminders — Confirmation |
| Folders | NN · Layer — Group (zero-padded number sets order; "Core" vs "Optional" sets the layer) | 01 · Core — Lead Capture |
| Source tags | lowercase plain words | website form, paid social |
| Sequence tags (system) | lowercase, no spaces, numbered. System-managed — never hand-edit. | emailreviewrequest1 |
| Category tags | category:value colon-namespaced | lost:cost, lost:timing |
| Custom values | UPPER for IDs/secrets, Title Case for the rest | GA4 MEASUREMENT ID |
| Snapshot version | FireRock Standard vN — bump on any change, log it | FireRock Standard v1 |
📁 01 · Core — Lead Capture ├─ All Leads Captured → Tag Sources → GA4 Events [published] ├─ Forms: Any Form Submitted → Create Opportunity → Auto Response [published] └─ Forms: Any Form Submitted → GA4 → Add Tags → Send Notification [published] 📁 02 · Core — Reviews └─ Review Requests [published] 📁 03 · Core — Utility └─ Mark All As Read [published] 📁 04 · Optional — Appointments ├─ [OPT] Appointment Reminders — Confirmation [draft] └─ [OPT] Appointment Reminders — No-Show Rebooking [draft] 📁 05 · Optional — Nurture ├─ [OPT] Inbound Nurture — Day 1–3 [draft] └─ [OPT] Inbound Nurture — 5-Week [draft] 📁 06 · Optional — Calls └─ [OPT] Incoming Call → Tag [draft] 📁 07 · Optional — Ads & Tracking ├─ [OPT] Add Facebook Messenger Tag [draft] ├─ [OPT] Facebook Lead Form Submitted [to add] └─ [OPT] Lead Engagement — Meta Conversion API [to add] 📁 08 · Optional — Reviews+ ├─ [OPT] Review Request — With Intent Check [draft] └─ [OPT] Google Review Campaign — Past Clients [draft]
Evidence-based: every tag below is already on 34/35 client accounts unless noted. Group, don't free-form.
| Group | Tags | Owner |
|---|---|---|
| Source / traffic | direct traffic · organic traffic · paid search · paid social · social media · website form · website referral · facebook form · facebook messenger · referral lead | Set by Lead-Capture workflows |
| Review sequence | emailreviewrequest1 · emailreviewrequest2 · emailreviewrequest3 · emailreviewtried1 · emailreviewtried2 · smsreviewtried1 · smsreviewtried2 · smsreviewtried3 · review request | System — never hand-edit |
| Lost reason | lost:cost · lost:timing (extend lost:* as needed) | Set on Closed Lost |
| State / ops | after hours · spam | Routing workflows |
| Pipeline | Stages (in order) | Use |
|---|---|---|
| Main | New Lead (single intake stage; clients may extend, but the standard ships one) | Raw intake / triage |
| Fixed | Day 1-3** › Meeting Scheduled** › Missed Meeting/Reschedule** › Negotiation › Pending › Closed Won › Closed Lost › 5 Week Lead Nurture** › No Response | Sales process (canonical 9-stage) |
** marks stages that trigger automation (Day 1-3, Meeting Scheduled, Missed Meeting/Reschedule, 5 Week Lead Nurture). Keep the marker in the stage name — the nurture & reminder modules key off these stages. Drop the old "Lead Engagement" pipeline; it is not part of the standard.| Type | Items | Folder |
|---|---|---|
| Custom fields (intake) | Service Requested · Referred By · Referrer Email | 📁 Lead Intake |
| Custom fields (standard) | opportunity + contact defaults (name, email, phone, address, pipeline, stage, status, lead value, source, lost reason) | 📁 Standard |
| Custom values (config knobs) | GA4 MEASUREMENT ID · GA4 API Secret · Facebook Phone Number (FB module only) | — |
The FireRock Standard vN agency snapshot is canonical. Every new account is created from it, so names, folders, tags, pipelines and fields are identical on day one.
Because every object name + folder is fixed, the audit sweep can diff each live account against this spec and flag any drift (renamed workflow, stray tag, missing core folder) automatically.
Any improvement is made in the master, the version bumps (v1 → v1.1), and the change is logged. We re-push only the changed objects to existing accounts; client-specific edits live outside the Core folders so they are never overwritten.
Re-run the fleet sweep, diff against this canonical spec, and bring stragglers back in line. The audit dashboard is the scoreboard.