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.
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.
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.
3 The core surfaces
These are the pages you live in. Keys and passcodes are listed in section 1.
| Surface | Link | What it is for | Good looks like | When it is not |
|---|---|---|---|---|
| B2C Board (pipeline view) | stpierre-b2c-board.stpierre.workers.dev | Every 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) | /ledger | One 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 | /clients | What 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.ai | Akash'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 Scoreboard | stpierre-b2c-scoreboard.pages.dev | Three 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 portal | client.stpierre.ai | What 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, Weekly | data.stpierre.ai/kpi | Every 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 Home | stpierre-command-home.pages.dev | The 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
| Question | Open this | What 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 card | Nudges 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 lane | A 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 portal | An outcome marked in the portal within 48 hours. |
| Where is the bottleneck by market? | Client Campaign Funnel | One row per market: impressions, clicks, conversations, qualified, handoff, booked, won, with weekly trends. |
| Where is the bottleneck in B2B? | Weekly Acquisition Funnel | Impressions 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.
5 Sales ops: what you run for Akash
| Surface | Link | Your job on it |
|---|---|---|
| Sales Center | pipeline.stpierre.ai | Record hygiene: outcomes, next actions, stage moves, dead drafts removed from the Today queue. |
| Sales room, 100-point game | rooms.stpierre.ai/sales | One point per contractor conversation, 25 per demo booked, 100 a day. Check the counter matches the dialer dispositions. |
| Outbound Sales Scoreboard | stpierre-outbound-funnel.pages.dev | Daily calls, texts and emails against target, plus the weekly dials-to-closed funnel. |
| Sales HQ launcher | stpierre-sales-hq.pages.dev | Every sales tool behind one link: prompter, cheat sheet, trainer, playbook, war game, both pipelines. Send this link, never the seven under it. |
| Kixie dialer | Kixie dashboard | Dispositions feed the scorecard and the game. Only connected dispositions count. Recordings feed the tone coach. |
| Stripe | Stripe dashboard | The 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.
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)
| Status | States | Notes |
|---|---|---|
| Page exists and is on the new name | TX, PA | Texas 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, NJ | Nine 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 create | AL, AR, CA, CT, GA, KS, KY, LA, MA, MD, NE, NV, NY, OR, RI, SC, TN, UT, VA, WA, WI | 21 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.
8 Client success: health and retention
| Surface | Link | What it shows | Limit |
|---|---|---|---|
| CX room | rooms.stpierre.ai/cx | Client 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 & Retention | stpierre-onboarding-board.pages.dev | Setup 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 portal | client.stpierre.ai | The 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.
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)
| Surface | Link | Open it when |
|---|---|---|
| Dashboard map | data.stpierre.ai | You are looking for a dashboard and do not know its address. |
| Rooms home | rooms.stpierre.ai | Passcode-gated rooms: CX, finance, scorecard, sales. |
| Weekly Scorecard | rooms.stpierre.ai/scorecard | Friday review. The four numbers, predicted against actual. |
| Finance room | rooms.stpierre.ai/finance | Read only for you. Cash in, cash out, weeks of runway, $1,500 floor. |
| Ads Live | stpierre-ads-live-dashboard.pages.dev | B2B ads only. The B2C Scoreboard replaced it for homeowner campaigns. |
| Split Test board | stpierre-split-test-pipeline.pages.dev | A creative test needs a hypothesis and a decision date. |
| Weekly Surfaces guide | stpierre-weekly-surfaces-docs.pages.dev | You want the reasoning behind the weekly rotation. |
| Machine Operating Guide | 02-Areas/Team/machine-operating-guide-2026-09-03.html | You want the deep how-to for one of the twelve machines, with screenshots. |
| Team library | team.stpierre.ai | SOPs, automation map, GoHighLevel rebuild guides, builder docs. |
| Level King lead flow | stpierre-levelking-lead-flow-docs.pages.dev | You 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.
| Gap | Today | Options | Pick |
|---|---|---|---|
| One link for the B2C pipeline with a list view | Board 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+ hours | Not 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 fixed | The 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 name | IL, 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.