# Round 4 Chain Patches — Ready-to-Deploy Specs

**Filed:** S83-H202-C (2026-05-05) · deferred to H203 for safe post-May-8 deployment
**Why deferred:** May 8 webinar in 3 days; Stripe router (`9xX3AVDuFKdCJGMw`) is a critical live workflow. 0 buyers of target products in last 60d = no urgency. Better to wire post-webinar without time pressure.

**Pattern:** mirror H196's Strategy Session IF + ExecuteWorkflow / httpRequest webhook call.

---

## Patch 1 — DS Course $297 → existing enrollment chain

**Add to Stripe router (`9xX3AVDuFKdCJGMw`):**
- IF node: `Is DS Course Purchase`
  - Condition: `{{ $('Extract Payment Data').first().json.offer_id }}` equals `mm_ds_course_297`
- ExecuteWorkflow: target `DEU0O9bB8T3xeoE3` (DS: Enrollment intake)
- Pass through: email, name, payment_intent_id, amount, offer_id
- Wire output to existing post-purchase merge (same as Strategy Session pattern)

**Existing infrastructure (already deployed):**
- `DEU0O9bB8T3xeoE3` (DS: Enrollment) — handles enrollment + Day-1 email
- `WTNiCkqlOh1a1Kiy` (DS: Lesson Delivery) — daily 7 AM, delivers Day-2 through Day-7
- `LidEQb5hgyzHPCbA` (DS: Student Progression) — daily 6 AM, advances day_progress
- `6okV6o04ijB7aITe` (DS: Graduation) — daily 8 AM, fires on completion + MM Membership upsell (per H196)

**Effect:** $297 buyer → enrollment row → 7-day lesson sequence → graduation upsell to MM Membership. Full chain ready upon router patch.

**Verification post-deploy:**
- Self-test buy at `https://buy.stripe.com/4gM8wI8KpfyrdQqf8Sb7y02`
- Confirm DS Students row created in Airtable
- Confirm Day-1 email arrives within 1 min
- Refund self-test in Stripe dashboard

---

## Patch 2 — Venus Deep-Dive $95 → audio letter delivery + nurture

**Add to Stripe router:**
- IF node: `Is Venus Deep-Dive Purchase`
  - Condition: `{{ $('Extract Payment Data').first().json.offer_id }}` equals `rc_venus_deep_dive_95`
- httpRequest: `POST https://roseinthegrove.app.n8n.cloud/webhook/venus-deep-dive-fulfill`
- Pass through: email, name, payment_intent_id, amount, offer_id

**NEW workflow needed:** `RC: Venus Deep-Dive Fulfillment`

Mirror Star Map Fulfillment pattern. Nodes:
1. Webhook trigger `venus-deep-dive-fulfill`
2. Extract payload
3. Trigger Venus audio letter generation (call existing audio pipeline if exists; otherwise queue manual)
4. Send confirmation email via SYS: Send Confirmation Email (template_key: `r4_venus_deep_dive`)
5. Schedule T+3 follow-up email via Email_Send_Log scheduling
6. Schedule T+14 cross-sell to Star Map ($45) via Email_Send_Log scheduling
7. Standard hardening: errorWorkflow `wS4HtmfK8WXZ7KhF`, no empty credentials, typecast on Airtable creates

**New email templates needed (Confirmation_Email_Templates table):**
- `r4_venus_deep_dive` (T+0 confirmation)
- `r4_venus_deep_dive_t3` (T+3 "how was it?")
- `r4_venus_deep_dive_t14` (T+14 cross-sell to Star Map)

---

## Patch 3 — MM Membership Annual $297/yr → onboarding chain

**Add to Stripe router:**
- IF node: `Is Membership Annual Purchase`
  - Condition: `{{ $('Extract Payment Data').first().json.offer_id }}` equals `mm_membership_annual_297`
- httpRequest: `POST https://roseinthegrove.app.n8n.cloud/webhook/mm-annual-onboarding`

**NEW workflow needed:** `MM: Annual Onboarding`

Nodes:
1. Webhook trigger `mm_annual_onboarding`
2. Upsert RoseCard Members row (Tier=Annual, Status=Active, Renewal Date=+1yr)
3. Send onboarding email (template_key: `r4_mm_membership_annual`) — includes member dashboard link
4. Send Zoom calendar invite for first-quarter member call (Q+1 from purchase date)
5. T+1 day: "Day 1 onboarding" email
6. T+3 days: "Featured workflow walkthrough" email
7. Schedule T-30/T-7/T-1 renewal reminders before expiry
8. Standard hardening

**New email templates:** `r4_mm_membership_annual`, `r4_mm_membership_t1`, `r4_mm_membership_t3`, `r4_mm_membership_t-30_renewal`, etc.

---

## Patch 4 — RoseCard Annual $10/yr → renewal cadence

**Add to Stripe router:**
- IF node: `Is RoseCard Annual Purchase`
  - Condition: `{{ $('Extract Payment Data').first().json.offer_id }}` equals `rc_rosecard_annual_10`
- httpRequest: `POST https://roseinthegrove.app.n8n.cloud/webhook/rc-rosecard-annual`

**NEW workflow needed:** `RC: RoseCard Annual Renewal`

Lighter than #3:
1. Webhook trigger `rc-rosecard-annual`
2. Upsert RoseCard Members row (Tier=Annual, Renewal Date=+1yr)
3. Send confirmation email (template_key: `r4_rc_rosecard_annual`)
4. Schedule T-30 renewal reminder
5. Schedule T-7 renewal reminder
6. Standard hardening

**New email templates:** `r4_rc_rosecard_annual`, `r4_rc_rosecard_t-30`, `r4_rc_rosecard_t-7`

---

## Deployment order (recommended H203 sequence)

1. **Patch 1 first** (DS Course) — easiest; reuses existing infrastructure; highest EV ($297)
2. **Patch 2** (Venus Deep-Dive) — mirrors known pattern (Star Map); real fulfillment value
3. **Patch 3** (Membership Annual) — most complex; defer until first member arrives
4. **Patch 4** (RoseCard Annual) — lightest; can ship anytime

Total estimated H203 effort: ~3h CC time + email template authoring (~30m Brady time for copy review).

---

## Risk mitigation

- **Bounce protocol per CLAUDE.md:** PUT → deactivate → activate after each router edit
- **Self-test before declaring done:** each patch needs a Brady-self test buy (refunded) to confirm route fires correctly
- **DLQ wired:** all new workflows must have `errorWorkflow: wS4HtmfK8WXZ7KhF`
- **Email Rate Gate compliance:** all marketing-category emails (T+3, T+14, renewal reminders) must call `wH2yN9tV1Oqu5b7B` per S81 hard rule
- **Email Gate compliance:** all non-transactional emails must call `shared/comm_gate.is_eligible()` mirror per S83-H175 hard rule

---

_Filed S83-H202-C (2026-05-05). Defer router modifications to H203 to avoid risk during May 8 webinar window. Round 4 coverage widget surfaces these as "Spec ready, not yet wired" status._
