# DS Sprint Week-1 Push — Fire May 7 morning (T-1 to May 8 webinar)

**Filed:** 2026-05-04 (S83-H180-C) by CC.
**Event:** DS Webinar — May 8, 2026 · 10 AM PT · Zoom
**Fire date:** Wednesday May 7 morning (T-1) — if mailed Wed AM, attendees see it before they fill their Thursday calendar.
**Recipient pool:** Master Contacts warm-source (~50–70 from May 1 cohort + recent intake)

This is the turn-key DS sprint week-1 push Brady runs Wednesday morning. Brady doesn't re-think it on May 7 — he runs the CLI command + posts a clip. **Fixed in H180:** Post-Webinar Processor cron moved from Friday 12 PM → Friday 6 PM PT, so the May 8 webinar's post-email sequence will fire correctly even if Brady flips Status manually after the session ends.

---

## Step 1 — May 7 (Wednesday) morning: record short clip + fire email

### 30-second clip script
> "Tomorrow morning, 10 AM Phoenix. Free webinar — Data Sovereignty: The Basics. The one where I show you the architecture of owning your own data. Builders, creators, anyone tired of paying SaaS rent. Free to attend. Link in bio."

**Caption (TikTok / IG / LinkedIn):**
> Free DS webinar tomorrow 10 AM PT. The architecture of owning your own data. Mirror Mirror — Brady. Sign up at mirrormirror.roseinthegrove.com/webinar 📐

### Fire the email blast

```bash
cd ~/builders

# Step 1: pull warm-source recipient list
python3 bin/master_contacts_export.py \
  --filter warm-source \
  --output /tmp/ds_sprint_w1_recipients.txt

# Step 2: dry-run send
python3 bin/send_blast.py \
  --recipients /tmp/ds_sprint_w1_recipients.txt \
  --subject "Tomorrow 10 AM PT — Free DS webinar" \
  --body-file ~/docs/ecosystem/campaigns/ds_sprint_week1_email.html \
  --brand MirrorMirror \
  --template-key ds_sprint_week1_push_2026 \
  --dry-run

# Verify recipient count + spot-check a sample. Then:
python3 bin/send_blast.py \
  --recipients /tmp/ds_sprint_w1_recipients.txt \
  --subject "Tomorrow 10 AM PT — Free DS webinar" \
  --body-file ~/docs/ecosystem/campaigns/ds_sprint_week1_email.html \
  --brand MirrorMirror \
  --template-key ds_sprint_week1_push_2026 \
  --apply
```

`bin/send_blast.py` is idempotent within 24h — running it twice won't double-send.

---

## Step 2 — Email body (paste into `ds_sprint_week1_email.html`)

```html
<!doctype html>
<html><body style="font-family:-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a2e;max-width:600px;margin:0 auto;padding:24px;line-height:1.6;">

<p>Hey —</p>

<p>Quick reminder: <strong>tomorrow morning 10 AM Phoenix time</strong>, I'm running the DS webinar.</p>

<p>It's free. It's an hour. The format is: <em>here's the architecture of owning your own data, here are the 5 specific moves that compound over a year, here's how to start with one this week.</em></p>

<p>If you've ever been frustrated paying $500+/month for SaaS subscriptions you don't fully control — this is the antidote.</p>

<p style="margin:32px 0;">
  <a href="https://mirrormirror.roseinthegrove.com/webinar/"
     style="background:#1a1a2e;color:#fff;padding:14px 28px;text-decoration:none;border-radius:4px;display:inline-block;font-weight:600;">
    Reserve your seat →
  </a>
</p>

<p style="font-size:0.95rem;color:#666;">
  <strong>Time:</strong> Thursday May 8, 2026 · 10:00–11:00 AM PT (Phoenix)<br>
  <strong>Where:</strong> Zoom (link sent on registration)<br>
  <strong>Cost:</strong> Free. Optional $20 Priority Q&A if you want first dibs on questions.
</p>

<p>If you can't make it live, register anyway — you'll get the replay.</p>

<p>— Brady<br>
<em>Mirror Mirror · Data Sovereignty</em></p>

</body></html>
```

---

## Step 3 — Post social clip simultaneously

Post the recorded clip to:
- **TikTok** — Brady personal account, Wednesday AM
- **LinkedIn** — Brady personal page, Wednesday AM
- **Instagram** — Brady or Mirror Mirror page, Wednesday AM (Reels format)

Optional: drop into Discord #marketing-content channel as Brady's "I'm posting" log.

---

## Step 4 — Verify post-webinar email sequence will fire (H180 fix in place)

H180 moved Post-Webinar Processor cron from Friday 12 PM → **Friday 6 PM PT**. After the May 8 webinar (10–11 AM):
1. Brady marks the May 8 Webinar_Sessions row Status=Complete (manually or auto)
2. At 6 PM PT, Post-Webinar Processor cron fires
3. It finds the May 8 row (Status=Complete + Processing Status=Pending + recent date)
4. Sends post-webinar emails to all attendees + no-shows
5. Email_Send_Log gets entries

If the cron misses for any reason: open n8n UI → `MM: Post-Webinar Processor` (`UwqBRqUQiPhmEyGJ`) → click Execute manually.

---

## Step 5 — Track conversion

After the webinar, watch:
- **DS Stripe Payment** webhook (`Tsdx1mWqD6HeNW47`) for **first non-zero execution** — that's the first external course buyer
- **Email_Send_Log** entries for the post-webinar sequence
- **/admin/brady/** Active Funnel widget for revenue updates

The H178 + H179 audits both said "infrastructure healthy, no buyers." May 8 is the test of whether traffic + this email push actually converts.

---

## Why this matters

Per H179 audit: DS course infrastructure is fully wired but has zero external buyers across 4 webinars run. The bottleneck is conversion, not code. This T-1 push compresses the work Brady has to do Wednesday morning to: <30 minutes (record clip + run 2 CLI commands + post 3 social clips). If conversion still drops after this, the next experiment is the message itself, not the cadence.

---

## Brady-action checklist

- [ ] Wed May 7 AM: record 30-sec clip
- [ ] Wed May 7 AM: run `bin/master_contacts_export.py --filter warm-source` to gen list
- [ ] Wed May 7 AM: run `bin/send_blast.py --dry-run` then `--apply`
- [ ] Wed May 7 AM: post clip to TikTok / LinkedIn / IG
- [ ] Thu May 8 9:30 AM PT: confirm Zoom + open webinar
- [ ] Thu May 8 10:00 AM PT: webinar starts
- [ ] Thu May 8 11:00 AM PT: webinar ends — flip Webinar_Sessions Status=Complete
- [ ] Thu May 8 6:30 PM PT: verify Post-Webinar Processor fired (Email_Send_Log entries)
- [ ] Fri May 9 morning: check Stripe for first DS Course conversion

---

_Filed S83-H180-C (2026-05-04 by CC). Turn-key. Brady runs the CLI + posts the clip; everything else is automated. The cron-timing race is fixed. If the May 8 webinar still doesn't convert, we re-tune the message or the offer next session._
