Ops Manager Cheat Sheet — every surface, what to check, what to do

The one page for whoever runs sales ops, delivery ops and general ops at St. Pierre - every live surface, the daily loop, the weekly media pipeline, the state-page rollout, and the gaps still open.

Updated 2026-09-07

1 Read this first

You own three things: sales ops (the records and queues behind Akash's calls), delivery ops (every homeowner lead from ad to client outcome), and general ops (the machines, the trackers, the problems list). Akash sells. Everything else is yours.

Five things always stay with Akash: money, messages sent as him, public-facing changes, account access, and deleting data. Everything else is reversible. Do it, log it, report it.

The business in one line: ads bring homeowners into Facebook Messenger, the bot captures a name and a verified phone, we transfer that lead to the contractor client immediately, the client books and records the outcome, and we get paid per qualified appointment. Foundation repair is the only niche we sell right now.

Day-one access to ask Akash for

  • The Sales Center key and the B2C board key. Each page asks once, then the browser remembers it.
  • The passcode for the rooms (CX, finance, scorecard, sales room).
  • A Supabase login for the issue register and the change ledger.
  • Meta Business Manager access for the ad accounts and the pages.
  • Drive access to "Proven B2C Ads by Niche".

2 Your daily loop (about 20 minutes, before 9:15)

  • 1Command Home - read the six weekly numbers and the fleet health strip. Anything red goes on the issues list today.
  • 2B2C Board - open "Needs reply" and "Unreachable". Anyone who gave a name and phone and is stuck did not get transferred. Fix the transfer, then find out why.
  • 3Client lane - every lead transferred to a client with no client action after 48 hours gets a nudge that asks them to mark it in their portal.
  • 4Sales Center - clean the records only. Every conversation Akash worked yesterday needs an outcome and a dated next action. You do not message prospects as Akash.
  • 5B2C Scoreboard, Markets tab - spend that is not turning into replies and qualified leads is the bottleneck of the day.
"Delivered" means a receipt exists, not that the client did anything. "Sent" means a timestamp on the row, not a message someone read. Check the record, never the label.

3 The core surfaces

These are the pages you live in. Keys and passcodes are listed in section 1.

SurfaceLinkWhat it is forGood looks likeWhen it is not
B2C Board (pipeline view)stpierre-b2c-board.stpierre.workers.devEvery homeowner conversation, every market and niche, in columns by state. Client and Niche dropdowns at the top. Outcomes, notes and archive live here."Needs reply" is empty by 9:15 and nothing sits in "Unreachable" with a phone number.Open the card, read the thread, then check the send-guard log before guessing why a follow-up did not go.
Lead ledger (list view of the same board)/ledgerOne color-coded row per lead with the camp decided server-side: ours or the client's. Click a row for the transcript.Every lead has a next action or a closed status.A lead with no next action is a lead nobody owns. Assign it.
Client lane/clientsWhat each client is sitting on: transferred leads with no recorded action, per client.Nothing older than 48 hours without a client update.Nudge the client to mark it in their portal. One-word text reply is the fallback.
Sales Center (B2B pipeline)pipeline.stpierre.aiAkash's contractor pipeline: Today queue, Inbox, Pipeline stages, reference. Threads read live from GoHighLevel.Every worked conversation has an outcome and a dated next action.Fix the record, flag the gap to Akash. Never send as him.
B2C Scoreboardstpierre-b2c-scoreboard.pages.devThree tabs. Live now = both B2C ad accounts. Markets = the pivot by market and client (spend, leads, cost per lead, replied, qualified, sent to client, appointments, jobs won, revenue). Creatives = the pivot by creative with a thumbnail contact sheet.Cost per qualified lead under the client's target and every market feeding a client.A market spending with zero replies usually means the page is not connected. Pause spend until a real contact lands from that page.
Client portalclient.stpierre.aiWhat the client sees: their leads, their outcomes, their outcome buttons. Each client has a private token link on their record.Clients mark outcomes here within 48 hours.Send the portal link with every nudge.
KPI Grid, Weeklydata.stpierre.ai/kpiEvery metric as rows, weeks as columns, next to the goal. B2B sections: conversations, dials, follow-ups, calls booked, demos, deals, trials, paid clients.Every row moving toward its goal week over week.A flat row for two weeks is a project, not a wait.
Command Homestpierre-command-home.pages.devThe front door. Today's three, the six weekly numbers against target, fleet health, and the project cards.You open it first every morning.Update the project cards through the brain, never a side document.

4 Delivery ops: what to audit and how

The lead path is: ad, Messenger conversation, name and verified phone, transfer to client, client books, outcome recorded. Your job is to prove each step happened, not to assume it.

Where the truth lives for each question

QuestionOpen thisWhat proves it
Did our follow-ups go out?B2C Board card, then the send-guard log (Supabase, table sp_send_guard_log)A sent timestamp on the follow-up row. A denial reason in the log if not.
Is response time immediate?B2C Board, "Needs reply" column and hours-since on each cardNudges fire at 5 and 30 minutes automatically. A card older than an hour in "Needs reply" is a bot or rail failure.
Did the transfer happen?Lead ledger row, then the client laneA transfer receipt and the lead in the client's camp. Name plus verified phone is the whole bar. ZIP never gates a transfer.
Did the client act?Client lane and the client portalAn outcome marked in the portal within 48 hours.
Where is the bottleneck by market?Client Campaign FunnelOne row per market: impressions, clicks, conversations, qualified, handoff, booked, won, with weekly trends.
Where is the bottleneck in B2B?Weekly Acquisition FunnelImpressions to cash by week. Data stops at August 23 and form-start tracking is missing, so treat it as a template until refreshed.

Rules that are already enforced by the system, so do not re-decide them

  • Once a lead has a name and a verified phone, it transfers. Chase texts to complete or transferred leads are blocked at send time.
  • One text script for everyone, slot-filled. Never a custom message per lead.
  • Never send the same link twice in 48 hours. Never force a channel switch.
  • Geography never disqualifies a lead. Non-English does. Out-of-coverage conversations close silently.
  • Opted-out leads are never handed to a client.
If a live test could text a real person, the only safe target is Akash's test phone ending 5477. Verify the recipient in the payload before firing anything.

5 Sales ops: what you run for Akash

SurfaceLinkYour job on it
Sales Centerpipeline.stpierre.aiRecord hygiene: outcomes, next actions, stage moves, dead drafts removed from the Today queue.
Sales room, 100-point gamerooms.stpierre.ai/salesOne point per contractor conversation, 25 per demo booked, 100 a day. Check the counter matches the dialer dispositions.
Outbound Sales Scoreboardstpierre-outbound-funnel.pages.devDaily calls, texts and emails against target, plus the weekly dials-to-closed funnel.
Sales HQ launcherstpierre-sales-hq.pages.devEvery sales tool behind one link: prompter, cheat sheet, trainer, playbook, war game, both pipelines. Send this link, never the seven under it.
Kixie dialerKixie dashboardDispositions feed the scorecard and the game. Only connected dispositions count. Recordings feed the tone coach.
StripeStripe dashboardThe source of truth for a B2B close. A deal is not closed until the card runs.

The offer of record: a $0-down seven-day trial of ten booked appointments, then prepaid appointment blocks at a flat price per appointment. Cold-call trial rung is three appointments for $450. Never invent terms. Send anyone asking to the Sales HQ launcher.


6 Media pipeline: a new foundation repair pack every week

You publish one new pack of foundation repair creatives every week. The scoreboard tells you what won last week; the pack is your bet for next week.

The weekly cycle

  • 1Monday: read. B2C Scoreboard, Creatives tab, All time and Last 7 days. Rank by cost per qualified lead. Note the hook and the on-screen surface of the top three.
  • 2Tuesday to Wednesday: build. Video pack: staged b-roll, Eric voiceover with the mandatory tempo and pause treatment, red karaoke captions burned from the script, clips looped to the read, an A/B silent control. Image pack: 20 image copies in 2 formats, 3 captions (Full, Punch, Alt open) and 2 headlines each, inside one ad set.
  • 3Thursday: stage. Ads are created PAUSED in the existing campaign as a new "Pack N" ad set, a duplicate of Pack 1 with the videos swapped. Contact sheet goes to Akash.
  • 4Friday: launch. After Akash approves the sheet, run the launch QA, then activate. Nothing gets turned off when a new pack launches; the campaign budget reallocates on its own.
  • 5Following Monday: score it. The pack is the row on the Creatives tab. Winners get reused across markets; losers get cut on evidence, never on taste.

Standards that are not up for debate

  • One campaign per market. Budget at the campaign level, always. Ad sets inside a campaign are clones; only the creative pack changes.
  • Never fewer creatives. If the per-ad budget looks thin, raise budget or extend the window.
  • Ad accounts are per niche: one for concrete leveling, one for foundation repair, one for B2B. Confirm the account before any launch.
  • Light backgrounds only, no dark creative. "Or you don't pay" stays in the copy.
  • Proven finished ads live in Drive under "Proven B2C Ads by Niche". Reuse them with new audio before making anything from scratch.
Where the files live: raw and de-branded b-roll in 03-Resources/generic-broll-library, staged clips in 01-Projects/StPierre-GTM/ready-for-tos, finished packs in 01-Projects/StPierre-GTM/ready-to-deploy. Claude runs the build steps; you run the calendar and the approvals.

7 Pages: one Facebook page per state

The strategy is one page per state, carrying every market in that state. From one page we can run foundation repair, concrete leveling, waterproofing and crawl space ads to any territory. The new naming standard is "[State] Foundation Repair & Waterproofing". Organic content is the same video, tweaked per niche and state.

Where the rollout stands today (from the rollout plan table, 57 markets)

StatusStatesNotes
Page exists and is on the new nameTX, PATexas carries Dallas, Houston, Austin, San Antonio. Pennsylvania carries Philadelphia and Pittsburgh.
Page exists, still named "Concrete Leveling & Repair"IL, IN, MN, NC, OK, CO, MI, MO, NJNine pages to rename to the new standard. Renames keep page age; new pages get throttled, so rename before creating.
Rename queue (a freed page becomes this state)AZ, FL, OH, OK (Tulsa)Planned renames of the old Houston, San Antonio and Austin city pages.
To createAL, AR, CA, CT, GA, KS, KY, LA, MA, MD, NE, NV, NY, OR, RI, SC, TN, UT, VA, WA, WI21 states. Wave order is in the rollout plan.

Page spin-up checklist. A page is not live until all six are proven.

  • 1Page created on the naming standard, and a row set in the rollout plan table.
  • 2Lead Ads terms accepted on that page by a page admin in the browser. There is no API for it. Check every page in a wave, not just new ones.
  • 3Page-scoped dataset created and shared to the right ad account, proven by a test event that returns "received".
  • 4Page connected to the CRM. Two connections exist: the lead-form sync and the Messenger integration. A Messenger campaign needs the second. Akash clicks the grant. Proof is a real contact landing from that page id.
  • 5The four routing rows: client record, park rows in the ZIP map, an enabled delivery destination, and the campaign-to-client map. Missing any one means leads are written correctly and delivered to nobody, with no error.
  • 6No Instagram placement. None of the pages has an Instagram account, so Instagram traffic would land in an inbox nobody reads.
Seven markets once ran ads on unconnected pages and produced zero leads on real spend. Nothing errored. Say the connection check out loud in every launch ask.

8 Client success: health and retention

SurfaceLinkWhat it showsLimit
CX roomrooms.stpierre.ai/cxClient health lanes: Healthy, At risk, Blocked on client, with reasons and next actions.Its aging clock counts days since our last outbound touch, not hours since the client last received a lead.
Onboarding & Retentionstpierre-onboarding-board.pages.devSetup step, live date, first lead, first booked job, first 5-lead week, weeks retained.Mixes real clients with market-test pages, so the client count is not a paying-client count.
Client portalclient.stpierre.aiThe client's own view and their outcome buttons.Each client's token link is on their record.

Current clients and where they stand

  • Level King Pro (Dallas, concrete leveling): paying, paused. Leads go by text through the CRM.
  • AlphaLift Foundation Repair (Dallas): paused. Leads go by DripJobs card plus the portal.
  • Able Concrete (Minneapolis): paused. Leads forwarded by hand.
  • Arbuckle Waterproofing (Pittsburgh): upcoming. Scott is still a prospect; no auto-delivery.
  • Everything else in the roster is a market test with no buyer. Leads park until a buyer signs.

9 Problems and projects: reactive and proactive

Reactive: the issue register. Table issues in Supabase. Every problem found by monitoring or by a person goes here with severity, owner and status. Intended stages: Open, In progress, Resolved, or Won't fix with a reason.

Today it holds 27 open rows, 13 critical, and nothing has been updated since August 13. Your first week's job is to triage it to zero: each row gets an owner, a status, and either a fix or a reason.

Change history: the ledger. Table change_ledger in Supabase. Every change to a live system carries who, what, why, before and after, and how to undo it. Read it when something looks different than yesterday. Write to it when you change anything outside your own notes.

Proactive: the project tracker. Command Home project cards, driven by the brain. Progress, next action, definition of done, proof. This is the only project tracker. Do not start a spreadsheet.

Decisions waiting on Akash. Decision cockpit. Keep "waiting on Akash" and "needs Akash's approval" as two separate lists.

  • Found a problem: add an issues row the same day, with a severity and an owner.
  • Fixed a problem: ledger row with the rollback, then close the issues row with the ledger id.
  • Starting something new: a project card with a definition of done, not a task in your head.

10 Everything else that exists (open only for a reason)

SurfaceLinkOpen it when
Dashboard mapdata.stpierre.aiYou are looking for a dashboard and do not know its address.
Rooms homerooms.stpierre.aiPasscode-gated rooms: CX, finance, scorecard, sales.
Weekly Scorecardrooms.stpierre.ai/scorecardFriday review. The four numbers, predicted against actual.
Finance roomrooms.stpierre.ai/financeRead only for you. Cash in, cash out, weeks of runway, $1,500 floor.
Ads Livestpierre-ads-live-dashboard.pages.devB2B ads only. The B2C Scoreboard replaced it for homeowner campaigns.
Split Test boardstpierre-split-test-pipeline.pages.devA creative test needs a hypothesis and a decision date.
Weekly Surfaces guidestpierre-weekly-surfaces-docs.pages.devYou want the reasoning behind the weekly rotation.
Machine Operating Guide02-Areas/Team/machine-operating-guide-2026-09-03.htmlYou want the deep how-to for one of the twelve machines, with screenshots.
Team libraryteam.stpierre.aiSOPs, automation map, GoHighLevel rebuild guides, builder docs.
Level King lead flowstpierre-levelking-lead-flow-docs.pages.devYou need to explain to a client exactly how a lead reaches them.

11 Gaps, and what I recommend

These are the things Akash asked for that do not exist yet, or exist in a form that will mislead you.

GapTodayOptionsPick
One link for the B2C pipeline with a list viewBoard and ledger are two addresses on the same worker, linked top-right.(a) Leave as two links. (b) Add a Pipeline / List toggle on the board that swaps in the ledger.(b). One bookmark, one key, same data. Small change to the board page.
Clients with no lead in 24, 48, 72+ hoursNot built. CX room ages on our last touch, the onboarding board uses a five-leads-a-week rule.(a) Add a column to the client lane. (b) A new lane in the CX room off the last verified delivery receipt, with "newly launched" and "paused on purpose" as separate states.(b). The receipt is the only honest clock. Launched and paused clients must not show as at risk.
Pivot by creative element (hook, surface, offer)Creatives tab compares whole creatives only.(a) Tag creatives by hook and surface in the roster, then group. (b) Keep judging whole creatives.(a). The pack standard already names the hook and the on-screen surface. Tagging costs nothing at build time and pays every Monday.
A bug pipeline that proves problems get fixedThe issue register is a stale table with 27 open rows.(a) Triage the table and keep it as a table. (b) Triage it, then render it as a board with the ledger id on every closed row.(b). A board you open daily gets kept. A table nobody opened since August is proof that a table does not.
Nine pages still on the old nameIL, IN, MN, NC, OK, CO, MI, MO, NJ say "Concrete Leveling & Repair".(a) Rename now. (b) Rename as each state launches.(a). Renames keep page age and cost nothing; every week they stay wrong is a week of mismatched ads and organic posts.

Order to do them: triage the issue register first, because it tells you what is actually broken. Then the no-lead client lane, because clients are the revenue. Then the page renames, the list toggle, and the creative tags.