← Firerock Marketing hub

Firerock Marketing · Task doc

Build FireRock Standard v1 — Canonical Snapshot Structure

Complex Plan ready ·ClickUp: in progress ·Open in ClickUp ↗ ·Updated 2026-07-12
What this task isDesign and build the canonical GHL snapshot (workflows, pipelines, custom fields, tags, calendars) that will be loaded for every Firerock client going forward, with core components always on and optional modules toggled per client. This is the agency standard — wrong decisions here ripple across all accounts.
Build Plan

I have complete context. The task spec is self-contained, and the project files confirm the account IDs, snapshot mechanics, API surface (including the Cloudflare bot-wall constraint that forces browser-side execution for services.* writes), and the standing "verify location identity before writes" rule. The MCP read needed a permission grant that isn't available in this headless run, so the source→canonical workflow mapping is proposed from the spec and flagged for live reconciliation against the already-built audit data.

Here is the complete build plan.


Build FireRock Standard v1 — Canonical Snapshot Structure

Objective: Produce one modular agency snapshot ("FireRock Standard v1") with an always-on core (published) and toggleable optional modules ([OPT] drafts), built in a dedicated build sub-account, stripped of cruft, canonically named, then saved and smoke-tested so every future client account is identical and diffable against the spec.

Steps

0. Reconcile the source→canonical mapping (read-only, do first)

  1. Confirm identity of the MCP-scoped location HMm03ltwkS40J4YWI0De before any write (standing rule feedback_verify_mcp_scope_before_writes). Determine whether it is meant to be the new build account or an existing client account. Do NOT write to it until confirmed.
  2. Pull the live source inventory from Z Automation Snapshot dSBv9R8HBSsGUiAh0GEo (list_workflows, tags, pipelines, custom fields/values, calendars, forms) — or reuse audit/all-subaccounts.json + audit/workflow-maps.json already generated. Build the exact source-name → canonical-name table for all 13 workflows before touching anything. The audit report's "Standard Snapshot" tab (firerock-subaccount-audit.pages.dev/snapshot.html, gated paulai/paulai26) is the canonical spec.

1. Create the build account

  1. Create a new sub-account "FireRock Standard v1 [BUILD]" via POST backend.leadconnectorhq.com/locations/ with prospectInfo.snapshotId = the current live boilerplate cZeuZimeVcxKsVq1VAxd (FireRock 4.x, the version 14 clients run), isAgencySubAccount:false, status:"account" (payload shape per ghl-api-reference.md lines 100–125). This gives an editable working copy of today's canonical state. Wait for async snapshot load to finish, then verify counts match the source.

2. Strip the cruft (build account only — never a client account)

  1. Delete LinkedIn / ICP ScoreCard custom fields and the ScoreCard form.
  2. Delete duplicate custom fields only: any custom "Website / State / City / Email / Phone" fields that duplicate GHL STANDARD fields. Leave GHL standard fields untouched (they cannot be deleted).
  3. Delete the Lead Engagement pipeline (fleet standard is Main + Fixed only).
  4. Execute these deletes inside the logged-in playwright-firerock browser via browser_evaluate against the documented services/backend endpoints — server-side node calls to services.leadconnectorhq.com hit the Cloudflare 1010 bot wall (per ghl-api-reference.md). UI is the fallback.

3. Create folders + rename/move the 13 workflows to canonical names

  1. Create the 8 workflow folders exactly (names are the contract): 01 · Core — Lead Capture, 02 · Core — Reviews, 03 · Core — Utility, 10 · Optional — Appointments, 11 · Optional — Nurture, 12 · Optional — Calls, 13 · Optional — Ads & Tracking, 14 · Optional — Reviews+.
  2. Rename + move workflows to canonical names/folders (proposed mapping — reconcile names in Step 0):
FolderWorkflow (canonical name)State
01 Core — Lead CaptureAll Leads Captured → Tag Sources → GA4 EventsPublished
01 Core — Lead CaptureForms → Create Opportunity → Auto ResponsePublished
01 Core — Lead CaptureForms → GA4 → Add Tags → Send NotificationPublished
02 Core — ReviewsReview RequestsPublished
03 Core — UtilityMark All As ReadPublished
10 Optional — Appointments[OPT] Appointment Reminders — ConfirmationDraft
10 Optional — Appointments[OPT] Appointment Reminders — No-Show RebookingDraft
11 Optional — Nurture[OPT] Inbound Nurture — Day 1–3Draft
11 Optional — Nurture[OPT] Inbound Nurture — 5-WeekDraft
12 Optional — Calls[OPT] Incoming Call → TagDraft
13 Optional — Ads & Tracking[OPT] Facebook Lead Form / Messenger TagDraft
13 Optional — Ads & Tracking[OPT] Lead Engagement — Meta Conversion APIDraft
14 Optional — Reviews+[OPT] Review Request With Intent CheckDraft
14 Optional — Reviews+[OPT] Google Review Campaign – Past ClientsDraft
  1. Rename via get_workflowsave_workflow_from_spec (or internal-API PUT). Folder create + move endpoint is not yet captured — do folder create/assignment in the UI via playwright-firerock, and capture the XHR for the maintenance reference while doing it.

4. Set publish/draft states

  1. Publish the core 5 with publish_workflow; force every [OPT] module to draft with draft_workflow. GHL snapshots preserve per-workflow publish state, so this is what "core on load / modules as drafts" depends on.

5. Normalize the rest of the canonical payload

  1. Confirm pipelines are exactly Main (New Lead) and Fixed (9-stage sales).
  2. Confirm custom values GA4 Measurement ID and GA4 API Secret exist but are blank (per-client fill). Confirm custom fields Service Requested / Referred By / Referrer Email exist.
  3. Confirm calendar "Discovery Call with {{location.name}}" exists (owner will be set per client at onboarding — user assignments do not transfer between accounts).
  4. Confirm tag taxonomy (source / review-sequence / lost-reason) + the Google Review link trigger link are present and clean.

6. Save the agency snapshot

  1. In Agency → Settings → Snapshots (via playwright-firerock), create a new agency snapshot "FireRock Standard v1" from the build account. Record its new snapshotId in MEMORY.md and ghl-api-reference.md.

7. Smoke-test

  1. Create a throwaway sub-account loading FireRock Standard v1 (prospectInfo.snapshotId = new id). Verify: 8 folders present, core 5 published, 8 [OPT] modules draft, correct pipelines/custom values/fields/calendar/tags, and that stripped items are gone. Run scripts/ghl-audit.mjs inventory <throwaway> + regenerate the audit report to confirm zero drift vs spec. Delete the throwaway after.

8. Per-client activation runbook + onboarding roll-in

  1. Write the runbook (client-facing tone, no internal-tooling mentions): load snapshot → set GA4 Measurement ID + GA4 API Secret → assign Discovery Call calendar owner → set phone/A2P → toggle applicable [OPT] modules to published by client capability → publish. Add a capability→module matrix (books appointments → Appointments; runs ads → Ads & Tracking + Meta CAPI; takes inbound calls → Calls; past-client list → Reviews+).
  2. Add "FireRock Standard v1" to the onboarding SOP and note the versioning rule: canonical work lives only in Core/Optional folders; any client-specific workflow must live outside these folders so a future snapshot push never overwrites it. Version bumps go v1 → v1.1.

Risks & decisions

Results

Not built yet.

Compiled by Dispa · Firerock Marketing