§01
Data model
Contact custom fields
All contact-level. Never store working data in opportunity custom fields (R7 in the risk register).
Tags
Prefix everything [AI Elite], colon for sub-state. Create the full set once; workflows match by exact string, so never free-type a variant. Journey tags are never removed. Machine tags are added and removed by workflows.
New Sale form
Keep the existing form URL. Required: name, email, phone, elite_plan_type, elite_price_paid, elite_contract_value, elite_closer, launchpad_grad, grad_credit_applied, kickoff-booked confirmation checkbox, elite_sale_notes. Optional: financing_provider, whop_order_id. Every field maps 1:1 to the custom fields above. The closer submits it live on the sales call (SOP-1); it is the master trigger for everything post-sale.
Payment rails (Whop)
- All money flows through Whop checkout links: one PIF at $3,997, one each for in-house 2-pay and 3-pay (amounts TBD; plug them into the Whop links and contract merge whenever they land, nothing else waits on them). Whop runs the installment schedule and the retries.
- External financing (Klarna, Clearpay, Zip, similar) is chosen inside the Whop checkout; the provider pays in full after fees. These buyers are operationally PIF:
[AI Elite] Plan: Financed, never dunned.
- In-house 2-pay/3-pay are the only dunning-eligible buyers.
- Whop → GHL is a webhook, not native: point Whop's
payment.succeeded and payment.failed webhooks at GHL Inbound Webhook trigger URLs (Phase 2, powers HT00w / HT05 / HT05r). Match contacts by email. Until wired, the form is the sole trigger and SOP-5 is the net.
- Grad credit: Whop promo code or a dedicated discounted link.
§02
Pipeline & stages
Two pipelines. The Sales Pipeline is the money board and ships in P1. The Setter Pipeline is a working queue for applicants who have not booked yet, and ships in P2 when setting starts. Stage names below are canonical: this spec refers to stages by name, never by number, so inserting a stage later never invalidates an instruction.
Sales pipeline P1
Named AI Architect Elite Pipeline. Replaces the current six stages (Closed PIF / Closed Payment Plan collapse into Paid, Signed and Active, plus plan tags). Call Booked splits by lead grade so the board itself shows who needs deeper triage, which is what GHL's lack of saved views otherwise costs you.
Setter pipeline P2
Named AI Elite Setter Pipeline. Holds every applicant who has not booked, and only those. It is a dialer queue, not a funnel: the setter works it top to bottom, and an opportunity leaves the moment a call is booked.
Why cross-pipeline moves are safe here
GHL wipes opportunity custom fields when an opportunity moves pipelines (R7). This system stores every working value on the contact, specifically so a Setter → Sales move loses nothing. That decision is what makes the two-pipeline model workable; do not start writing data to opportunity fields later or this breaks.
When the Setter Pipeline goes live, new unbooked applications are created there instead of in Sales New Application. New Application then stops receiving new opportunities and stays only for history. Do not delete it.
Status & value rules
- Opportunity status: Open through
Paid · Contract Out (unsigned money stays visible as risk), Won on entry to Signed · Onboarding (HT02), Lost only at Lost / DQ.
- Monetary value =
elite_contract_value, set by HT00. Actual cash lives in elite_price_paid + Whop.
- Enable "allow move to any previous stage" on both pipelines (a rebooked no-show moves back to its Call Booked stage).
- One opportunity per person, always. It moves; it is never duplicated across the two pipelines.
- Slack: one channel,
#elite-pipeline, wins and alarms together. Native Slack premium action or a webhook, builder's choice.
§03
Workflows
P1 scope lock · build nothing beyond this list first
Phase 1 workflows, ONLY: S00, S02, S02b, S02c, S03, HT00, HT01, HT02, HT03b, HT03. Phase 1 alarms, ONLY: Paid · Contract Out unsigned >48h, and Signed · Onboarding not onboarded >3 days. Everything else in this section is P2/P3 by decision, not oversight: do not build it early because it looks easy. P2 starts after a real buyer has run the P1 path end to end.
Type chips: Automation runs unattended · Hybrid automation that creates human tasks (build the task, not a bot) · phase chips match the Build Overview. R# = risk register entry in §04. Tasks always carry an assignee and a due time. GHL workflow name = ID: Name exactly as each card header reads (e.g. HT02: Welcome & Access), all inside one AI Elite workflow folder.
S-series (pre-sale)
S00Application ScoringAutomationP1
| Trigger | Form Submitted: any application form (Elite form, AI app building form, Masterclass) |
| Goal event | — |
| Actions |
- Add
[AI Elite] Completed Application
- If/Else, grade the lead. NQL branch condition:
app_needs_financing = Yes OR app_readiness_score less than 8. Everything else falls to SQL
- NQL branch adds
[AI Elite] Lead: NQL · SQL branch adds [AI Elite] Lead: SQL
- Both branches: Create/Update Opportunity → Sales Pipeline,
New Application, status Open, source = form name
- Wait 10 minutes, then If/Else: does an appointment exist on the sales calendar? Yes → end, S02 owns them. No → end, S01 owns them (P2; until S01 exists, unbooked applicants sit in
New Application for manual work)
|
| Tags | Adds [AI Elite] Completed Application plus exactly one of [AI Elite] Lead: SQL / [AI Elite] Lead: NQL |
| Notes | Hard dependency: every application form must map its readiness question to app_readiness_score and its financing question to app_needs_financing. An unmapped answer lands empty and the contact grades NQL, which is the safe direction (more nurture, not less). The grade is a snapshot, not a verdict: the closer can re-grade by swapping the tag, and the stage move follows. |
S01No-Book LadderHybridP2
| Trigger | Tag added [AI Elite] Completed Application, with a wait-and-check so anyone who books inside 10 minutes never enters |
| Goal event | Appointment booked on the sales calendar → move the opportunity to the Sales Pipeline (Call Booked: SQL or : NQL) and end. This is the workflow's one goal (R4) |
| Actions |
- If an appointment already exists, end
- Move opportunity to Setter Pipeline →
New App: SQL or New App: NQL per lead tag
- Instant email + SMS with the booking link, then Manual Call action to queue the first dial
- Day 3 → stage
3-Day No Book + Manual Call + SMS + email
- Day 7 → stage
7-Day No Book + Manual Call + SMS + email
- Day 30 → stage
30-Day No Book + Manual Call + SMS + email
- After day 30 → stage
Long-Term Nurture + [AI Elite] Nurture: Not Now; the monthly reactivation sequence takes over
|
| Tags | Exit adds [AI Elite] Nurture: Not Now |
| Notes | The dialer is GHL's Manual Actions queue. The Manual Call workflow action drops the contact into that queue; the setter opens Manual Actions and dials straight down the list, which is the closest native equivalent to power dialing. Each rung is call + SMS + email on the same day, deliberately: the ladder is a contact cadence, not an email sequence. |
S02Show-Up MachineAutomationP1
| Trigger | Appointment Status = booked/confirmed, sales calendar, no Modified-By filter (R5) |
| Goal event | — (ends at appointment time) |
| Actions |
- If/Else on lead tag → Opportunity to
Call Booked: SQL or Call Booked: NQL
- Instant confirmation email: calendar file, what to have ready, short Rone expectation video
- SMS "Reply C to confirm"; replies route to the closer
- Reminders: 48h email · 24h email + SMS · 4h SMS · 1h SMS with the Zoom link
- NQL branch only: hand off to S05 for the extra pre-call layer P3
|
| Tags | Adds [AI Elite] Booked Call |
| Notes | Fires for every appointment including closer-rebooked follow-ups (those no-show at roughly 2x). The morning-of confirmation is a separate workflow (S02b) because built-in calendar reminders can only fire relative to the appointment, never at a fixed clock time. |
S02bMorning-Of Confirmation SMSAutomationP1
| Trigger | Appointment Status = Confirmed (add Booked to fire at booking time too), Calendar = sales calendar |
| Goal event | — |
| Actions |
- Wait 1: Wait type = Event/Appointment Time → reference Appointment Start Time → Before → 20 hours. This lands the contact on the afternoon or evening of the day before
- Wait 2: a second Wait immediately after, restricted to a time window of 09:00-09:30. Depending on GHL version this is a "Time Window" wait type or a "wait for a specific time of day" setting inside the Wait step
- Send SMS: morning-of confirmation naming the appointment time, asking for a YES reply
|
| Tags | — (S02c handles the reply) |
| Notes | The two chained waits are the whole trick: wait 1 gets into the day before, wait 2 holds until 9am, which is the morning of the call. Leave the existing 30-minutes-before reminder exactly as it is. Breaks for calls booked before roughly 9:30am (the SMS would land after the call): if the calendar opens before 10am, add an If/Else first that sends 2 hours before instead. If your account has no time-window option, fall back to a single Event/Appointment Time wait calculated per typical slot and say so, so it can be specified properly. |
S02cConfirmation Reply HandlerHybridP1
| Trigger | Customer Replied, message contains "yes" |
| Goal event | — |
| Actions |
- Add
[AI Elite] Ops: Confirmed Attending
- Notify the closer (internal SMS or the Slack channel)
|
| Tags | Adds [AI Elite] Ops: Confirmed Attending |
| Notes | This is what makes the YES worth asking for. Anyone still untagged an hour before their call is the no-show risk list, which is a working queue for the setter rather than a friendlier reminder. Ask for the reply only if this workflow exists. |
S03No-Show RecoveryHybridP1
| Trigger | Appointment Status = no-show (closer marks it right after the missed slot) |
| Goal event | Appointment re-booked → end |
| Actions |
- Opportunity →
No Show; SMS within 15 min: "We held your spot, grab a new time" + rebook link
- Task → closer: call within 1 business hour
- Email day 0, SMS day 1, email day 3, final email day 7 →
Not Now · Nurture
|
| Tags | Adds [AI Elite] Booked Call: No Show |
| Notes | On rebooking, return the opportunity to the Call Booked stage matching its lead grade. |
S04Deciding Follow-UpHybridP3
| Trigger | Opportunity enters Call Held · Deciding (closer's post-call disposition) |
| Goal event | Form Submitted = New Sale form → end. Never use a GHL Payment trigger here; Whop payments are invisible to GHL (R1) |
| Actions |
- Task → closer: send personal recap; the follow-up call was already booked before hang-up (SOP-1 rule: never end a call without the next meeting set)
- Day 1 value email · day 2 SMS · day 3 belief-first objection email · day 7 door-closing email
- Day 5 Slack stall ping
- Day 14 task: forced disposition →
Not Now · Nurture or Lost / DQ with loss_reason
|
| Tags | Adds [AI Elite] Completed Call + [AI Elite] Completed Call: Deciding; DQ exit adds [AI Elite] Completed Call: DSQ |
S05NQL Pre-Call NurtureAutomationP3
| Trigger | Tag added [AI Elite] Booked Call AND contact has [AI Elite] Lead: NQL |
| Goal event | — (ends at appointment time) |
| Actions |
- Email + SMS: watch the pre-call video before your call, framed as a requirement rather than a resource
- Reminder 24h before if the video link has not been clicked
- Second touch: one qualifying question by SMS, replies route to the closer
|
| Tags | — |
| Notes | Exists because NQL leads convert at a lower rate with the same call time: the extra layer pre-handles objections, walks the program, and raises the bar to show up, so the closer spends the call closing rather than educating. Needs the pre-call video filmed (see the Copy Brief). Track the video click as the qualification signal. |
HT-series (post-sale)
HT00New Sale IntakeAutomationP1
| Trigger | Form Submitted: New Sale form |
| Goal event | — |
| Actions |
- If
[AI Elite] Ops: Intake Done exists → end (idempotency)
- Add
[AI Elite] Ops: Sale Form In + [AI Elite] Closed: Paid; stamp elite_first_payment_date
- Slack: new sale with name, price, plan, closer
- If/Else on
elite_plan_type → exactly one Plan tag; if launchpad_grad = yes → [AI Elite] Launchpad Grad
- Update opportunity →
Paid · Contract Out, monetary value = elite_contract_value
- Add
[AI Elite] Ops: Intake Done (releases HT01)
|
| Notes | P2 addition once the webhook is live: a 30-min wait for [AI Elite] Ops: Whop Paid with a Slack verify-charge alarm on timeout (skip for Financed). Do not build in P1 (R1). |
HT00wWhop Payment WatchdogAutomationP2
| Trigger | Inbound Webhook: Whop payment.succeeded (match contact by email) |
| Goal event | — |
| Actions |
- If
[AI Elite] Ops: Intake Done exists: this is an installment rebill → if [AI Elite] Ops: Dunning Active, hand to HT05r; either way end. Rebills never re-run intake (R6)
- Add
[AI Elite] Ops: Whop Paid
- Wait 30 min for
[AI Elite] Ops: Sale Form In; missing → Slack "payment with NO sale form, contract blocked" + task → closer, due 1h
|
| Notes | Financed purchases also emit payment.succeeded, so every rail is visible here (R1) |
HT01Contract Send + ChaseHybridP1
| Trigger | Tag Added: [AI Elite] Ops: Intake Done |
| Goal event | Document Status = Completed, template "Elite Client Agreement", behavior wait until goal met (R2, R3) |
| Actions |
- Add
[AI Elite] Closed: Contract Pending
- Send Documents & Contracts: template "Elite Client Agreement", email + SMS; merges name/price/plan from custom fields (guaranteed set by HT00 ordering)
- SMS: agreement just landed, 2 minutes, laptop works best (R4)
- Chase while unsigned: +3h email · +24h SMS + email + task → closer: call them · +48h Slack + task → Rone: personal SMS/video nudge · +72h final nudge + Slack "going into kickoff unsigned" (hands off to SOP-2)
- Day 7 unsigned AND no kickoff held: task → Rone + program owner: ghost decision + Slack. Human decides; never auto-refund
|
| Tags | Adds Closed: Contract Pending. Removal happens in HT02 |
| Notes | To re-send, re-share the SAME document link. NEVER generate a second document from the template (R2). A duplicate silently freezes the entire post-signature flow. |
HT02Welcome & AccessHybridP1
| Trigger | Documents & Contracts: status = Completed, template "Elite Client Agreement" (only Completed, R3) |
| Goal event | — |
| Actions |
- If
[AI Elite] Closed: Contract Signed exists → end (de-dupe, R3). Else remove Closed: Contract Pending, add Closed: Contract Signed
- Opportunity →
Signed · Onboarding, status Won; Slack signed ping
- Welcome email within the hour: next-24-hours plan, Skool invite link, roadmap, one unannounced bonus, billing-descriptor heads-up
- Welcome SMS from Rone's line, invite link repeated; send intake form (goals, background, tools)
- Task → Rone: record 60-90s personal welcome video, due 24h
- If/Else:
[AI Elite] Onboarding: Call Booked exists? No → add [AI Elite] Onboarding: Booking Needed (starts HT03)
- +24h: task → ops: SOP-3 Skool join verification
|
| Tags | Removes Closed: Contract Pending; adds Closed: Contract Signed, maybe Onboarding: Booking Needed |
| Notes | Requirement: the completed, signed agreement must be attached to the client record in GHL. This is native Documents & Contracts behavior (signed PDF stores on the contact and emails a copy to the buyer); verify it in the P1 test matrix, do not assume it. |
HT03bOnboarding Booking DetectorAutomationP1
| Trigger | Appointment Status = booked/confirmed, Elite Onboarding calendar, no Modified-By filter so closer-booked counts (R5) |
| Actions | - Add
[AI Elite] Onboarding: Call Booked, remove [AI Elite] Onboarding: Booking Needed. Calendar-level notifications handle 24h/1h reminders
|
HT03Onboarding Booking GuardHybridP1
| Trigger | Tag Added: [AI Elite] Onboarding: Booking Needed |
| Goal event | Appointment booked, Elite Onboarding calendar → end |
| Actions |
- If
[AI Elite] Onboarding: Call Booked exists → end
- Email with the Elite Onboarding calendar link ("lock your kickoff, we hold your build slot")
- +24h SMS · +48h task → closer/Rone: book it by phone
|
| Notes | First-class pathway, not an edge case: fires whenever Jasmine could not book the kickoff live on the call. SOP-1 makes live booking the ideal, not the requirement, so this ships in Phase 1. |
HT0430-Day RampHybridP3
| Trigger | Tag Added: [AI Elite] Onboarding: Complete (Rone marks it after the kickoff) |
| Goal event | — |
| Actions |
- Entry guard: if
[AI Elite] Closed: Contract Signed missing → exit + Slack alert (nobody ramps unsigned)
- D0 recap email + quick-win assignment: first snapshot agent deployed within 48h · D2 SMS "did your agent take its test call?" · D3 first-win celebration email · D5 Build-With-You prep email
- D7 task → Rone: personal check-in + email · D10 outreach activation email · D14 consumption checkpoint If/Else (stalled → task: personal outreach)
- D18 Rone's Ohio story email (compliance framing) · D21 momentum + VIP Day tease · D25 If/Else on
[AI Elite] Milestone: First Win → micro-testimonial ask · D30 review push + wins collection + task: 30-day review
|
| Notes | Dark-member detection is SOP only, never automation (SOP-5, R8). Do not attempt login tracking or activity webhooks; Skool has no API. All copy through the compliance gate (§06) |
HT05DunningHybridP2
| Trigger | Tag Added: [AI Elite] Ops: Dunning Active. Tag applied by the payment.failed webhook path, or by ops from a Whop failure notice until the webhook is live. Guard: contact has Plan: 2-Pay or Plan: 3-Pay; Financed never enters |
| Goal event | — (HT05r ends it) |
| Actions |
- D0: email with Whop billing link + Slack + task: human call within 48h
- D3 email · D7 email + SMS, access-at-risk framing
- D10: task → ops: SOP-4 suspension + suspension notice email
|
| Notes | Whop/Stripe owns retries and the card-update page; GHL owns comms and tasks. Payment-plan contract language is parked, not a build item |
HT05rDunning CureHybridP2
| Trigger | Whop payment.succeeded for a contact with [AI Elite] Ops: Dunning Active (via HT00w step 1), or ops manual |
| Actions | - Remove
[AI Elite] Ops: Dunning Active · task → ops: restore access now · Slack cure ping
|
§04
Risk register
Every platform footgun lives here once. Workflows cite these by number; nothing is restated elsewhere. All are verified GHL/Skool/Whop behaviors as of Aug 2026, not caution boilerplate.
§05
Manual SOPs
Human checklists. The automation creates tasks pointing at these; it never replaces them.
SOP-1 · Closer post-yes ritual SOP P1
Owner: Jasmine. Run while the buyer is still on Zoom. Steps 1 and 2 are non-negotiable and only take a couple of minutes; steps 3 and 4 have automation backstops, so the call never runs long for them.
- Charge the card live. Whop checkout link in Zoom chat; stay on while they complete it (they pick PIF, in-house plan, or external financing in the checkout). Note which option they chose.
- Submit the New Sale form live. Thirty seconds. This releases the contract with correct merged terms.
- Point at the contract, do not wait for it. "The agreement just hit your email and phone, takes about two minutes. Knock it out today, a laptop works best." Jasmine does not hold the call for the signature; HT01's 72-hour chase and Rone's pre-kickoff check (SOP-2) own it from here.
- Book the kickoff live if the call allows, on the Elite Onboarding calendar inside 48-72 hours. Live booking is the ideal, not the requirement: when there is no time, skip it and HT02/HT03 automatically send the self-book link and chase it to booked.
- Inoculate the remorse. "Sometime in the next day or two a voice may ask if this was crazy. Totally normal. When it shows up, text us instead of sitting with it, deal?"
SOP-2 · Pre-kickoff contract check SOP P1
- Before every kickoff call, check the contract status on the contact.
- Unsigned → first agenda item: "Before we build anything, let's knock out the agreement. I'll wait, it takes two minutes." Re-share the SAME document link in Zoom chat. Never create or send a new document (R2).
- Watch the status flip to Completed, then run the call. HT02 fires behind it automatically.
- Never run the build portion or mark
[AI Elite] Onboarding: Complete for an unsigned member.
SOP-3 · Skool join verification SOP P1
Task auto-created by HT02 at +24h, assigned to Jasmine.
- Open the Inner Circle member list; confirm the buyer appears (match by the email captured in Skool's membership question).
- Joined → add
[AI Elite] Ops: Skool Joined; send the new-member DM within 10 minutes of spotting them: one action only (intro post or start-here video).
- Not joined → SMS them the invite link again; re-check tomorrow.
- If the invite link ever leaks or circulates, rotate it in Skool and update the welcome email template the same day.
SOP-4 · Skool removal (refund or suspension) SOP P2
Owner: Jasmine. Triggered by a refund decision or dunning day 10. No automation can do any of this (R8).
- Remove the member from the Inner Circle in Skool (refunding in Whop or Skool does NOT do this).
- Pause/revoke course access and the Archie seat.
- Refund path: tag
[AI Elite] Lost: Refunded, opportunity → Lost / DQ with loss_reason, exit-interview logged.
- Suspension path (dunning): keep
[AI Elite] Ops: Dunning Active; restore everything immediately on cure (HT05r task).
- Confirm completion in Slack.
SOP-5 · Weekly reconciliation & sweep SOP P2
Mondays, 15 minutes, alongside the scoreboard review.
- Whop payments list vs pipeline: any payment whose opportunity has not reached
Paid · Contract Out = a missed sale form. Fix and debrief the closer.
- Whop past-due list vs
[AI Elite] Ops: Dunning Active: any mismatch = missed dunning. Tag it by hand.
- Member sweep (P3): anyone with no call attendance, no replies, no visible activity for 7 days → add
[AI Elite] Ops: At Risk + task for Rone: a personal text, not a sequence.
- Scoreboard: show rate, close rate, hours-to-sign, sign-to-kickoff hours, quick-win rate, cash mix, refunds/disputes, dunning cures.
§06
Copy inventory
Compliance gate, every asset, no exceptions
- No income guarantees, ever. Dollar figures only as market examples or Rone's own results, with "what you make depends on you and the work."
- The identity is AI Architect. Never "consultant," never "agency owner." No hype.
- No em dashes in any written follow-up.
- Portal and community names must mirror the sales language exactly.
The full writing brief, one row per asset with its job, send moment and a ClickUp export, lives on the Copy Brief tab. 68 assets total. Totals by set:
P1 launch-blocking set = 26 assets. All email and SMS copy is supplied separately; build each workflow's send steps with placeholder content and drop the final copy in when it arrives.
§07
Test matrix
Run each phase's tests before that phase goes live. Use a dedicated test contact.
Phase 1 · before the first real buyer
- End-to-end test sale: Whop payment → form → contract → signature → welcome → Skool link → kickoff booked, every Slack ping verified.
- Merge-field render check on the contract (name, price, plan terms) for each plan type.
- Sign on desktop AND attempt on mobile; confirm Completed status behavior both ways (R4).
- Duplicate-template test: confirm nothing can send a second document from the template to one contact (R2).
- Unsigned chase: let the test contact sit unsigned; confirm the +3h/+24h/+48h/+72h ladder, the "going into kickoff unsigned" flag, and the day-7 decision task.
- Staff-booked appointment fires S02 and HT03b (R5).
- Lead grading: submit a test application with financing = Yes, confirm
[AI Elite] Lead: NQL and the opportunity landing in Call Booked: NQL on booking. Repeat with readiness 9 + no financing for the SQL path.
- Unmapped-answer default: submit an application leaving the readiness question blank, confirm the contact grades NQL rather than erroring.
- Morning-of SMS: book a test appointment for tomorrow afternoon on a number you control; confirm the SMS lands at 9am and the existing 30-minute reminder still fires. Reply YES and confirm
[AI Elite] Ops: Confirmed Attending plus the closer alert.
- No-show marking fires S03 within 15 minutes.
- No-book pathway: run a signed test sale WITHOUT booking the kickoff on the call; confirm HT02 branches to
Onboarding: Booking Needed, HT03 sends the self-book link, and the +48h book-by-phone task fires.
- Signed PDF on the client record: after completion, confirm the executed agreement is attached to the contact in GHL and the buyer received their copy by email.
Paid · Contract Out (48h unsigned) and Signed · Onboarding (3 days not onboarded) alarms fire on an aged test opportunity.
Phase 2 · before guards go live
- Whop webhook delivery: test
payment.succeeded and payment.failed reach the Inbound Webhook triggers and tag the right contact by email.
- Form-missing alarm: pay without the form, confirm HT00w fires at 30 minutes.
- Rebill exclusion: simulate an installment event on an intake-done contact; confirm intake and welcome do NOT re-fire (R6).
- Failed-payment simulation: HT05 fires; HT05r clears and creates the restore task on cure.
- Full stall alarm set fires on aged test opportunities in
New Application, No Show, Call Held · Deciding.
- Setter pipeline: an unbooked test application lands in
New App: SQL/NQL, walks the 3/7/30 rungs on accelerated waits, and queues a Manual Call at each rung.
- Cross-pipeline move: booking from the Setter Pipeline moves the opportunity into the matching Sales
Call Booked stage with every contact field intact (R7).
- SOP-4 refund walk-through run once as a drill.
Phase 3 · before the ramp goes live
- HT04 entry guard: an unsigned test contact tagged
Onboarding: Complete exits with a Slack alert.
- Ramp arc dry-run on a compressed schedule (minutes instead of days) to verify ordering, If/Else branches, and task creation at D7/D14/D30.
- D25 testimonial branch fires only with
[AI Elite] Milestone: First Win present.
- S01/S04 goal events end the workflows on booking and on form-submit respectively.
Companion document: Elite Build Overview (goals, entities, workflow index, phase plan). Research citations and full rationale: Elite Pipeline Blueprint (Appendix tab).