← Firerock Marketing hub

Firerock Marketing · Task doc

GHL account / sub-account mainteance

Complex Plan ready ·ClickUp: start me ·Open in ClickUp ↗ ·Updated 2026-07-12
What this task isAudit all Firerock sub-accounts against a Google Sheets log to check which ones have A2P, tracking numbers, and call pools configured. Mark gaps in the log and flag accounts that need fixes.
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

Results

Not built yet.

Compiled by Dispa · Firerock Marketing