284 lines
7.1 KiB
Markdown
284 lines
7.1 KiB
Markdown
# FRE-650: Mailchimp Execution Checklist
|
|
|
|
**Status:** 🟢 Ready to Execute
|
|
**Priority:** High
|
|
**ETA:** 2-3 hours to complete all phases
|
|
|
|
---
|
|
|
|
## Prerequisites ✅
|
|
|
|
- [x] DNS records added (CTO completed)
|
|
- [x] Waitlist export scripts created (CTO completed)
|
|
- [x] Email templates drafted (CMO completed)
|
|
- [x] Domain authentication configured (CTO completed)
|
|
|
|
---
|
|
|
|
## Phase 1: Account Setup (15 min)
|
|
|
|
### 1. Create Mailchimp Account
|
|
- [ ] Go to **mailchimp.com**
|
|
- [ ] Click "Sign Up Free"
|
|
- [ ] Email: `hello@scripter.app`
|
|
- [ ] Complete profile:
|
|
- Company: FrenoCorp
|
|
- Industry: Software/Technology
|
|
- Size: 1-10
|
|
|
|
### 2. Configure Sender Info
|
|
- [ ] From name: "Scripter Team"
|
|
- [ ] From email: `hello@scripter.app`
|
|
- [ ] Reply-to: `hello@scripter.app`
|
|
- [ ] Add physical address (required by CAN-SPAM)
|
|
|
|
### 3. Verify Domain
|
|
- [ ] Navigate: Account → Settings → Domains
|
|
- [ ] Click "Verify" next to `scripter.app`
|
|
- [ ] Confirm all checks show green ✓
|
|
- [ ] If failed, wait 15 min and retry
|
|
|
|
**Time:** 15 minutes
|
|
**Complete when:** Domain shows "Verified" in Mailchimp
|
|
|
|
---
|
|
|
|
## Phase 2: Export & Import Waitlist (20 min)
|
|
|
|
### 1. Export Waitlist Data
|
|
```bash
|
|
cd /home/mike/code/FrenoCorp
|
|
tsx scripts/export-waitlist.ts
|
|
```
|
|
|
|
**Requires environment variables:**
|
|
- `TURSO_DATABASE_URL`
|
|
- `TURSO_AUTH_TOKEN`
|
|
|
|
**Output:**
|
|
- `waitlist-export.csv` (Mailchimp-ready)
|
|
- `waitlist-export.json`
|
|
|
|
### 2. Import into Mailchimp
|
|
- [ ] In Mailchimp: Audience → Add Contacts → Import
|
|
- [ ] Choose "Upload a file"
|
|
- [ ] Select `waitlist-export.csv`
|
|
- [ ] Map fields:
|
|
- Email Address → Email Address
|
|
- Name → First Name
|
|
- Source → Tag (or custom field)
|
|
- Status → Tag
|
|
- [ ] Tag as: `WAITLIST_ORIGINAL`
|
|
- [ ] Complete import
|
|
|
|
### 3. Verify Import
|
|
- [ ] Check audience count matches export
|
|
- [ ] Spot-check 3-5 emails
|
|
- [ ] Confirm tags applied correctly
|
|
|
|
**Time:** 20 minutes
|
|
**Complete when:** Waitlist contacts visible in Mailchimp audience
|
|
|
|
---
|
|
|
|
## Phase 3: Load Email Templates (45 min)
|
|
|
|
### Templates to Load
|
|
From `/plans/FRE-650-email-templates.md`:
|
|
|
|
1. **Welcome Email (Waitlist)** - Immediate
|
|
2. **Founder Story** - Day 3
|
|
3. **Feature Preview** - Day 7
|
|
4. **Beta Invitation** - Day 14
|
|
5. **Launch Announcement** - Launch day
|
|
6. **Transactional Welcome** - New user signup
|
|
|
|
### For Each Template:
|
|
- [ ] Navigate: Create → Email → Regular
|
|
- [ ] Choose "Build from scratch" or basic template
|
|
- [ ] Copy/paste email body from templates doc
|
|
- [ ] Replace placeholders:
|
|
- `[Logo]` → Upload Scripter logo
|
|
- `[Founder Name]` → Add actual name
|
|
- `[Link]` → Add actual URLs
|
|
- [ ] Set brand colors:
|
|
- Primary: `#518ac8`
|
|
- Text: `#1a336b`
|
|
- Button: `#518ac8` (white text)
|
|
- [ ] Save template with clear name
|
|
- [ ] Send test to own email
|
|
- [ ] Verify mobile rendering
|
|
|
|
**Time:** 45 minutes (7-8 min per template)
|
|
**Complete when:** All 6 templates loaded and tested
|
|
|
|
---
|
|
|
|
## Phase 4: Build Automation (45 min)
|
|
|
|
### Waitlist Sequence Automation
|
|
|
|
**Create Customer Journey:**
|
|
- [ ] Navigate: Automations → Customer Journeys → Build from scratch
|
|
- [ ] Trigger: When subscriber joins audience
|
|
- [ ] Filter: Tag = `WAITLIST_ORIGINAL`
|
|
|
|
**Add Email Actions:**
|
|
|
|
1. **Email 1 (Immediate)**
|
|
- [ ] Add action: Send email
|
|
- [ ] Choose: Welcome Email template
|
|
- [ ] Timing: Immediately
|
|
|
|
2. **Email 2 (Day 3)**
|
|
- [ ] Add action: Wait (3 days)
|
|
- [ ] Add action: Send email
|
|
- [ ] Choose: Founder Story template
|
|
|
|
3. **Email 3 (Day 7)**
|
|
- [ ] Add action: Wait (4 days)
|
|
- [ ] Add action: Send email
|
|
- [ ] Choose: Feature Preview template
|
|
|
|
4. **Email 4 (Day 14)**
|
|
- [ ] Add action: Wait (7 days)
|
|
- [ ] Add action: Send email
|
|
- [ ] Choose: Beta Invitation template
|
|
|
|
**Save & Activate:**
|
|
- [ ] Name: "Waitlist Nurture Sequence"
|
|
- [ ] Turn on journey
|
|
- [ ] Verify all emails scheduled correctly
|
|
|
|
**Time:** 45 minutes
|
|
**Complete when:** Automation active and sending emails
|
|
|
|
---
|
|
|
|
## Phase 5: Testing (30 min)
|
|
|
|
### 1. Test Email Delivery
|
|
- [ ] Add test email to audience (your email)
|
|
- [ ] Tag as: `TEST_USER`
|
|
- [ ] Manually trigger automation for test user
|
|
- [ ] Verify Email 1 arrives within 5 min
|
|
- [ ] Check email rendering:
|
|
- Desktop (Gmail, Outlook)
|
|
- Mobile (iOS Mail, Gmail app)
|
|
- Dark mode
|
|
|
|
### 2. Test Links & Personalization
|
|
- [ ] Click all links in each email
|
|
- [ ] Verify `*|FNAME|*` merge tag works
|
|
- [ ] Check UTM parameters on all links
|
|
- [ ] Test unsubscribe flow
|
|
|
|
### 3. Test Spam Score
|
|
- [ ] Send test to mail-tester.com
|
|
- [ ] Score should be 9/10 or higher
|
|
- [ ] Fix any issues flagged
|
|
|
|
### 4. Test Analytics
|
|
- [ ] Enable open tracking
|
|
- [ ] Enable click tracking
|
|
- [ ] Verify UTM parameters in Google Analytics
|
|
|
|
**Time:** 30 minutes
|
|
**Complete when:** All tests pass, spam score 9/10+
|
|
|
|
---
|
|
|
|
## Phase 6: Launch (15 min)
|
|
|
|
### 1. Final Checklist
|
|
- [ ] All templates loaded
|
|
- [ ] Automation active
|
|
- [ ] Tests passed
|
|
- [ ] Spam score acceptable
|
|
- [ ] Links working
|
|
- [ ] Unsubscribe working
|
|
|
|
### 2. Import Remaining Waitlist
|
|
- [ ] If seed data only, import full waitlist now
|
|
- [ ] Verify all contacts tagged correctly
|
|
|
|
### 3. Monitor First Sends
|
|
- [ ] Watch for first email sends
|
|
- [ ] Check delivery rates
|
|
- [ ] Monitor bounce/complaint rates
|
|
|
|
### 4. Document Setup
|
|
- [ ] Save all login credentials
|
|
- [ ] Document automation logic
|
|
- [ ] Create handoff doc for team
|
|
|
|
**Time:** 15 minutes
|
|
**Complete when:** First waitlist emails sending successfully
|
|
|
|
---
|
|
|
|
## Total Time: 2 hours 50 minutes
|
|
|
|
| Phase | Time | Status |
|
|
|-------|------|--------|
|
|
| 1. Account Setup | 15 min | ⏳ Pending |
|
|
| 2. Export & Import | 20 min | ⏳ Pending |
|
|
| 3. Load Templates | 45 min | ⏳ Pending |
|
|
| 4. Build Automation | 45 min | ⏳ Pending |
|
|
| 5. Testing | 30 min | ⏳ Pending |
|
|
| 6. Launch | 15 min | ⏳ Pending |
|
|
|
|
---
|
|
|
|
## Success Criteria
|
|
|
|
- [ ] Mailchimp account created and verified
|
|
- [ ] Domain authentication complete (green checks)
|
|
- [ ] Waitlist imported (all contacts visible)
|
|
- [ ] 6 email templates loaded and branded
|
|
- [ ] Waitlist automation active and sending
|
|
- [ ] Test emails delivered successfully
|
|
- [ ] Spam score 9/10 or higher
|
|
- [ ] All links working with UTM tracking
|
|
- [ ] Unsubscribe flow functional
|
|
|
|
---
|
|
|
|
## Resources
|
|
|
|
- **Email Templates:** `/plans/FRE-650-email-templates.md`
|
|
- **Quick Start Guide:** `/plans/FRE-650-mailchimp-quickstart.md`
|
|
- **DNS Records:** `/plans/FRE-650-dns-records.md`
|
|
- **Export Script:** `scripts/export-waitlist.ts`
|
|
- **Mailchimp Docs:** https://mailchimp.com/help/
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
**Domain verification fails:**
|
|
- Wait 15-30 minutes for DNS propagation
|
|
- Check DNS records match exactly (no typos)
|
|
- Ensure TXT records not proxied by Cloudflare
|
|
|
|
**Export script fails:**
|
|
- Verify `TURSO_DATABASE_URL` and `TURSO_AUTH_TOKEN` set
|
|
- Run `npm install` if dependencies missing
|
|
- Ask CTO for credentials if needed
|
|
|
|
**Mailchimp import fails:**
|
|
- Ensure CSV has headers: Email Address, First Name, Last Name
|
|
- Remove duplicates before import
|
|
- Check email format (no invalid characters)
|
|
|
|
**Automation not sending:**
|
|
- Verify journey is turned on (not paused)
|
|
- Check subscriber has correct tag
|
|
- Ensure email template is saved (not draft)
|
|
|
|
---
|
|
|
|
**Owner:** CMO
|
|
**Created:** 2026-04-26
|
|
**Status:** Ready to execute
|