← Firerock Marketing hub

Firerock Marketing · Task doc

GHL account / sub-account mainteance

Complex Plan ready ·ClickUp: start me ·Open in ClickUp ↗ ·Updated 2026-09-09
What this task isAudit all Firerock sub-accounts against a Google Sheets maintenance log to flag which ones are missing A2P registration, tracking numbers, call pools, and other standard GHL setup items. Requires per-account review and decisions on what to fix.
The Request

GHL Maintenance Log: https://docs.google.com/spreadsheets/d/1qv0DoOY99Hs4SXPAjO3FhI1oZ6OClJHbv0HJ73I6YgE/edit?gid=0#gid=0

Note not all accounts will new A2P verification, tracking numbers, call pools, etc. Use the log to mark if they have them or not and we can fix if required.

Build Plan

Firerock Sub-Account Maintenance Log — A2P / Numbers / Call Pools Audit

Objective: Sweep all 45 Firerock sub-accounts for A2P 10DLC verification, tracking numbers, and call pools, then populate the GHL Maintenance Log Google Sheet with a per-account has-it / doesn't-have-it status so gaps can be prioritized for a later fix pass.

The Plan

  1. Read the log schema. Open the GHL Maintenance Log (docs.google.com/spreadsheets/d/1qv0DoOY99Hs4SXPAjO3FhI1oZ6OClJHbv0HJ73I6YgE) via the playwright-firerock browser and capture the exact column headers + row order (which accounts are already listed). Map each column to a data source before touching anything. Do not assume columns — mirror what Patrick built.
  2. Refresh the internal-API token. Capture the token-id header from a backend.leadconnectorhq.com call in the playwright-firerock session and write it via node "C:\Paul AI\paul-ai-ghl-mcp\scripts\set-firerock-token.mjs" <token> (+ bearer file if stale). ~60 min TTL.
  3. Refresh the account roster. node scripts/ghl-audit.mjs meta → rebuilds audit/meta.json (45 locations, active flag, lcPhoneStatus, lcEmailStatus). This is the master row list to reconcile against the sheet.
  4. Sweep A2P status. node scripts/build-a2p-status.mjsaudit/a2p-status.json. Already returns per-account brandStatus, campaignStatus, phone count, derived status (VERIFIED / IN PROGRESS / FAILED / NOT REGISTERED / BRAND ONLY / NO PHONE) and needed.
  5. Discover the call-pool endpoint (gap — not yet captured). In the logged-in browser, open a sub-account's Settings → Phone → Number Pools / call-tracking pools, capture the XHR to backend.leadconnectorhq.com (expected /phone-system/...pools...), and confirm the response shape. Add it to ghl-api-reference.md.
  6. Extend the phone sweep (new mode in scripts/ghl-audit.mjs, patterned on the existing Promise.all block in sweep()): per active location pull

Write audit/maintenance-matrix.json.

  1. Compile the maintenance matrix. Join a2p-status.json + the phone/pool sweep + meta.json into one row per account with a yes/no (or status) cell per sheet column: A2P Verified, Brand status, Campaign status, Has number(s), # numbers, Has call pool(s), Phone enabled, Email verified, Active/Stale, Notes/Action-needed. Reuse the refine() logic in build-a2p-html.mjs for the canonical A2P verdict.
  2. Populate the Google Sheet. Match rows by account name to existing sheet rows; fill the status cells. Preferred: write directly via the Google Sheet in the playwright-firerock browser (paste-per-column). Fallback if direct write is blocked: produce a paste-ready TSV block matching the sheet's exact column order for Paul to paste. Do not reorder or delete existing rows — only fill cells.
  3. Flag the fix list. Produce a short prioritized "needs action" list (FAILED → NEEDS RESUBMIT → NOT REGISTERED → BRAND ONLY, plus missing call pools where a number exists). This is the input to a separate, approval-gated fix pass — no fixes in this task.

Build Primitives

Definition of Done

Risks & decisions

Accomplishment Report

Not built yet.

Compiled by Dispa · Firerock Marketing