# Plan 3 — Ops & Delivery

> **For agentic workers:** REQUIRED SUB-SKILL: Use `superpowers:subagent-driven-development` (recommended) or `superpowers:executing-plans` to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** Stand up the operational machinery that turns a website lead into a delivered package — intake form, kickoff Calendly slot, production tracking sheet, per-service offshore playbooks, US team review checkpoint, and cancellation/data-export checklist. None of this is code; it's docs + Google Sheets + Calendly + CRM config. But without it, every lead gets dropped or every delivery is late.

**Architecture:** All operational artifacts live as templates in `ops/`. Each artifact has a defined trigger (when it's used in the customer lifecycle), a defined owner (US team, offshore team, automation), and acceptance criteria (what "done" looks like). The lifecycle is: Lead capture → Intake → Kickoff → Production → US Review → Delivery → Upsell OR Cancellation.

**Reference spec:** `docs/superpowers/specs/2026-06-02-packages-launch-design.md` (§4 tripwire delivery standard, §6 cancellation policy, §9 implementation notes).

---

## File Structure

```
ops/
├── README.md                                ← lifecycle overview + owner map
├── 01-intake-form.md                        ← intake form spec (Google Form or Typeform schema)
├── 02-kickoff-call-playbook.md              ← 15-min Calendly call agenda + Calendly setup
├── 03-production-tracker.md                 ← Google Sheet schema for active customer-package rows
├── 04-us-review-checkpoint.md               ← review checklist before delivery
├── 05-cancellation-data-export.md           ← cancellation SLA + 5-business-day export checklist
├── 06-upsell-sequence.md                    ← 14-day post-delivery upsell trigger
├── playbooks/
│   ├── tripwire-5k-email-blast.md           ← per-tripwire production playbook
│   ├── tripwire-ai-seo-audit-fix.md
│   ├── tripwire-ai-landing-page-mockup.md
│   ├── service-email-marketing.md           ← per-service monthly playbook
│   ├── service-social-media.md
│   ├── service-ppc.md
│   ├── service-seo.md
│   ├── service-marketing-website.md
│   └── service-graphics-brand.md
```

Working directory: `/Users/sanketlakhani/Work/btwebgroup-packages/ops/`

---

## Task 1: Write the lifecycle README

**Files:**
- Create: `ops/README.md`

- [ ] **Step 1: Write the lifecycle overview**

```markdown
# BT Web Group — Ops & Delivery

This folder contains the operational artifacts that turn a website lead into a delivered package. Every document here has a defined trigger, owner, and acceptance criteria.

## Lifecycle

```
[Eblast send]
     │
     ▼
[Lead modal submitted] ──► CRM creates lead record
     │
     ▼
[Intake form auto-sent]  ──► customer fills it out (00-intake-form.md)
     │
     ▼
[Kickoff call scheduled] ──► customer picks Calendly slot (02-kickoff-call-playbook.md)
     │
     ▼
[Production starts]      ──► offshore team executes per-service playbook (playbooks/)
     │                       Production tracker (03-production-tracker.md) updated daily
     ▼
[US review checkpoint]   ──► US team reviews + approves OR sends back (04-us-review-checkpoint.md)
     │
     ▼
[Delivery]               ──► email sent to customer with deliverables + report
     │
     ▼
   ┌─┴─┐
   │   │
 [Upsell]      [Cancellation]
 06-upsell-    05-cancellation-
 sequence.md   data-export.md
```

## Owner map

| Step | Owner | SLA |
|---|---|---|
| Lead modal submit → CRM record | Automation | Instant |
| Intake form auto-send | Automation | Within 5 min of CRM record |
| Customer fills intake | Customer | (no SLA — chase at 24h if not done) |
| Kickoff call booked | Customer (via Calendly) | (chase at 48h if not booked) |
| Kickoff call run | US team (Sanket or account manager) | Day 2 of 5-day window |
| Production | Offshore team | Day 3-4 |
| US review | US team | Day 5 morning |
| Delivery | US team or automation | Day 5 EOD |
| Upsell offer | US team | Day 14 post-delivery |
| Cancellation processing | Account manager | Same business day |
| Data export | Offshore + US team | 5 business days |

## Tools used

- **CRM:** existing CRM (sends SendGrid emails, holds lead records)
- **Intake form:** Google Forms (or Typeform if upgraded)
- **Calendly:** dedicated 15-min event type for kickoff calls
- **Production tracker:** Google Sheet (one row per active customer-package)
- **Deliverable storage:** Google Drive (one folder per customer)
- **Communication:** email primary, Slack internal for handoffs

## Before launching

Confirm these are configured BEFORE the first eblast goes out:
- [ ] Lead modal webhook endpoint configured in CRM
- [ ] Intake form built (per 01-intake-form.md) and link tested
- [ ] Calendly event type created (per 02-kickoff-call-playbook.md)
- [ ] Production tracker Sheet created with column headers (per 03-production-tracker.md)
- [ ] Offshore team has access to all playbooks and tracker
- [ ] US team reviewer assigned + review checklist printed (04)
- [ ] Cancellation flow + data export checklist trained (05)
```

- [ ] **Step 2: Commit**

```bash
cd /Users/sanketlakhani/Work/btwebgroup-packages
git add ops/README.md
git commit -m "docs(ops): add lifecycle overview"
```

---

## Task 2: Define the intake form

**Files:**
- Create: `ops/01-intake-form.md`

The intake form is auto-sent the moment a lead becomes a paying customer (or in our offline-payment model: when the kickoff call confirms scope). It collects everything the offshore team needs to execute Day 3-4 work without a second call.

- [ ] **Step 1: Write the intake form spec**

```markdown
# 01 — Customer Intake Form

**Trigger:** Sent immediately after the kickoff call when scope is confirmed (or auto-sent at purchase, if online payment is added later).
**Form platform:** Google Forms (or Typeform if upgraded).
**Delivery to customer:** link sent via CRM email titled "Quick intake — let's get started"
**SLA:** Customer should complete within 24 hours of kickoff. Chase at 24h.
**Storage:** Responses auto-flow to a Google Sheet linked to the production tracker (one row per customer; see 03).

## Section A — Customer profile (same for every package)

1. Business name *
2. Primary contact name *
3. Primary contact email *
4. Primary contact phone *
5. Business website URL
6. Industry / vertical (dropdown: Restaurant · Retail · Trades · Professional Services · Real Estate · E-commerce · B2B · Healthcare · Other)
7. Brief description of the business (1-3 sentences)
8. Geographic service area (Lexington only · Kentucky · Multi-state · National · Other)
9. Approximate annual revenue (Under $250K · $250K-$1M · $1M-$5M · $5M+) — optional, used for tier-fit
10. Approximate number of employees — optional
11. Best time of day to reach you (Morning · Midday · Afternoon · Evening)
12. Preferred communication channel (Email · Phone · Text · Slack)

## Section B — Brand assets (conditional — only if package needs them)

Show ONLY if package is Website / Graphics / Social / any visual-output service:

13. Upload your logo (PNG/SVG preferred; if you don't have one, leave blank — we'll discuss in kickoff)
14. Brand colors (paste hex codes if you have them; or describe — e.g., "navy blue and gold")
15. Brand fonts (if applicable)
16. Existing brand guide or style doc (Google Drive link or upload)
17. 5-10 photos we can use (Google Drive link or upload) — leave blank if we should source

## Section C — Package-specific intake

Different blocks based on which package the customer bought. Show ONE of the following sections (CRM passes the package context into the form via a URL parameter):

### C-1. 5,000-Contact Email Blast tripwire

18. Email list — upload as CSV (columns: email required, first_name optional, last_name optional)
19. Approximate list size (Under 500 · 500-2,000 · 2,000-5,000 · "I'll use up to 5,000")
20. Where did this list come from? (Past customers · Newsletter signups · Lead form submissions · Purchased list · Mixed · Other) — used to assess deliverability risk
21. Last time this list was emailed (Within 30 days · 30-90 days · 90 days+ · Never)
22. Goal of this email (Drive a sale · Announce something · Win back lapsed customers · Re-engage cold list · Other)
23. Key offer or message (1-3 sentences)
24. Any specific call-to-action URL?
25. Brand voice notes (any do's/don'ts for tone)
26. Preferred send window (Best day/time, or "you decide")

### C-2. AI SEO Audit + Fix tripwire

27. WordPress / CMS admin login credentials (Username + temporary password — note: rotate after our access)
28. Or: invite our team email `dev@btwebgroup.com` as an Editor/Admin
29. Top 5 pages on your site you'd most want fixed (or "you decide based on the audit")
30. Top 3 search terms you wish you ranked for
31. 3 competitor websites you'd want to beat in search
32. Any specific products/services that should rank highest

### C-3. AI Landing Page Mockup tripwire

33. Which page do you want mocked up? (Home · Service · About · Custom — describe)
34. Goal of this page (Generate leads · Sell a product · Build trust · Inform · Other)
35. 3 competitor or "love this style" examples (URLs)
36. Key value proposition in 1 sentence
37. Single most important call-to-action on this page
38. Anything to AVOID stylistically (1-3 things)

### C-4. Email Marketing subscription (Starter/Growth/Pro)

(All of C-1 questions PLUS:)
39. Existing email service provider? (Mailchimp · Constant Contact · Klaviyo · None · Other) — if we're migrating
40. Frequency preference (1x/mo · 2x/mo · weekly · seasonal)
41. List growth — are you actively adding contacts? How? (signup form, in-store, events, etc.)
42. Three "types" of emails your business sends most often

### C-5. Social Media subscription (Starter/Growth/Pro)

43. Existing social handles (paste URLs for FB, IG, GBP, X, LinkedIn — whichever you have)
44. Account access — invite our offshore team handle as a manager (instructions linked)
45. Topics that perform well (3-5 examples — events, behind-the-scenes, products, tips, etc.)
46. Topics to AVOID
47. Existing visual style preferences (photo vs. graphic, mood)
48. Frequency preference (we'll lock to tier; this just confirms cadence comfort)

### C-6. PPC subscription (Starter/Growth/Pro)

49. Existing Google Ads or Meta accounts? (Yes — share access | No — we set up)
50. Customer Match audiences? (Yes — share list | No)
51. Monthly ad spend budget (paid by you directly to Google/Meta)
52. Top 5 keywords/services you'd want to advertise
53. Geographic targeting (radius, city, state)
54. Conversion goal (form fill · phone call · purchase · in-store visit · other)
55. Existing landing page or shall we recommend one

### C-7. SEO subscription (Basic/Intermediate/Advanced)

(C-2 questions PLUS:)
56. Target keywords (5-15)
57. Geographic SEO scope (Lexington · KY · Regional · National)
58. Existing blog or content? (URL if yes)
59. GBP listing claimed? (Yes/No — invite us as manager if yes)
60. Citation listings (Yelp, Yellow Pages, BBB, etc.) — paste links

### C-8. Marketing Website (Refresh/5-Page/10-Page)

(B questions PLUS:)
61. Domain registrar + hosting provider (so we know where to deploy)
62. Existing site? (URL — for refresh/redesign)
63. Pages needed (list them — Home, About, Services, Contact, Blog, plus custom)
64. Must-have features (contact form, booking widget, blog, e-commerce, member area, etc.)
65. 3 sites you love stylistically (URLs)
66. 1 site you dislike (URL — to know what to avoid)

### C-9. Graphics & Brand (Brand Basics/Brand Kit/Brand Identity Pro)

67. Business name to feature in the logo (and any tagline)
68. Words/feelings the brand should communicate (3-5 — e.g., "trustworthy, modern, warm")
69. Words/feelings to AVOID (e.g., "playful, cheap, retro")
70. Industry-specific symbolism preferred or avoided
71. 3 brand examples you admire (Apple, Stripe, local biz — anything)
72. Color preferences (any must-haves / must-avoids)
73. Where the logo will be used most (website, signage, vehicle wrap, business cards, etc.)

## Section D — Acknowledgments (every form)

74. Have you read our cancellation + data-export policy? (Yes/No — link to /packages cancellation FAQ)
75. Any deadlines or constraints we should know about? (event date, product launch, seasonal window)
76. Anything else our team should know? (free-text)

## Submission behavior

- Form sends auto-confirmation email to customer
- Response row auto-flows into production tracker (Sheet) under that customer's row
- Offshore team gets a Slack ping (or email notification) that intake is complete
- Production timer starts (Day 1 = day intake is completed)
```

- [ ] **Step 2: Build the form in Google Forms (manual step)**

This is a manual configuration step. The above spec is the source of truth — the operator builds the form to match, including the section-conditional logic (Google Forms supports "go to section based on answer").

Acceptance:
- [ ] Form built and link captured
- [ ] Test submission flows to the response sheet
- [ ] Response sheet is linked to production tracker (Task 4)
- [ ] Auto-confirmation email enabled

- [ ] **Step 3: Commit**

```bash
git add ops/01-intake-form.md
git commit -m "docs(ops): intake form spec"
```

---

## Task 3: Build the kickoff call playbook

**Files:**
- Create: `ops/02-kickoff-call-playbook.md`

- [ ] **Step 1: Write the playbook**

```markdown
# 02 — Kickoff Call Playbook (15 minutes)

**Trigger:** Lead submits inquiry via lead modal → CRM creates lead → reply email includes a Calendly link → customer picks a slot → US team takes the call.

For tripwire purchases (offline payment in current model), the kickoff call doubles as the scoping + payment-confirmation call.

## Calendly setup

- **Event name:** "BT Web Group — 15-min Free Strategy Call"
- **Duration:** 15 min (offer 30-min upgrade after first 5 min if scope is complex)
- **Buffer:** 10 min after
- **Availability:** Mon-Fri, 9 AM – 4 PM ET
- **Form fields:** name (auto), email (auto), phone, "Which package brought you here?", "What's the one outcome you most want from us?"
- **Confirmation email:** include a 1-line agenda + "If 15 min won't be enough, just say so when we connect — we can extend or schedule a longer follow-up."
- **Calendar invite:** auto-add to caller's calendar with Zoom or phone link
- **Buffer for prep:** US team reviews the lead record + intake form (if completed) 5 min before call

## Call agenda (15 min, structured)

| Minute | Topic | Goal |
|---|---|---|
| 0:00 – 1:00 | Greeting + thanks | Set warm tone, confirm name + business |
| 1:00 – 5:00 | Their situation (listen mode) | Understand the problem in their words; ask 2-3 clarifying questions; do NOT pitch |
| 5:00 – 9:00 | Match to package | Recommend ONE specific package (tripwire, starter, or bundle) that fits; explain why |
| 9:00 – 12:00 | Walk through deliverables + timeline | Specific. "In 5 business days you'll get X. Day 1: intake. Day 2: this call. Day 3-4: production. Day 5: delivery." |
| 12:00 – 14:00 | Cancellation + data policy | Proactively mention "no contracts, cancel anytime, data is yours." Customers consistently bring this up — address it before they have to |
| 14:00 – 15:00 | Close + next steps | "Send you a confirmation email with payment instructions [or "I'll send the intake form now"]. Get the form back to me by [date] and we start the clock." |

## Call follow-up (within 1 hour of call ending)

1. Update the lead record in CRM with: package recommended, customer's stated goal, any concerns raised, deadline.
2. Send a follow-up email containing:
   - Confirmation of package + price
   - Payment instructions (offline — Stripe invoice, ACH, or check) OR intake form link if pre-paid
   - Link to intake form (01)
   - Calendar invite for any follow-up call
   - The 5-day delivery clock starts when intake is complete + payment received
3. If customer hasn't bought yet: schedule a follow-up nudge in CRM (3 days) — soft, not pushy.
4. Add customer to the production tracker (03) with status "Awaiting intake/payment."

## What success looks like on a kickoff call

- Customer can repeat back the deliverable in their own words
- Customer knows exactly when delivery will happen
- Customer has zero open questions about cancellation/data
- Next step is unambiguous (intake form + payment)
- Call ended on or before 15 min — not because we rushed, but because we were efficient
```

- [ ] **Step 2: Configure Calendly (manual step)**

Acceptance:
- [ ] Calendly event type created with the specs above
- [ ] Booking link captured (use in CRM reply templates + on `/contact` page + lead-modal-success message)
- [ ] Test booking → verify calendar invite arrives + form fields capture

- [ ] **Step 3: Commit**

```bash
git add ops/02-kickoff-call-playbook.md
git commit -m "docs(ops): kickoff call playbook"
```

---

## Task 4: Build the production tracker schema

**Files:**
- Create: `ops/03-production-tracker.md`

- [ ] **Step 1: Define the tracker schema**

```markdown
# 03 — Production Tracker (Google Sheet)

**Purpose:** Single source of truth for every active customer-package. Offshore team updates daily. US team reviews daily. Catches anything slipping the 5-business-day SLA.

**Location:** Google Sheet titled `BT Web Group — Production Tracker [YYYY]`, shared with US team (edit) + offshore team (edit).

## Sheet structure — one row per active customer-package

| Column | Type | Required | Notes |
|---|---|---|---|
| A. Record ID | Text | Yes | Auto-generated `2026-06-001`, increments |
| B. Customer name | Text | Yes | From intake |
| C. Customer email | Text | Yes | From intake |
| D. Package SKU | Dropdown | Yes | `tripwire-5k-email-blast`, `tripwire-ai-seo-audit-fix`, `email-starter`, `bundle-lead-engine`, etc. — full list per spec |
| E. Purchase date | Date | Yes | When payment received |
| F. Intake completed | Date | Yes | When customer submitted intake form |
| G. Kickoff date | Date | Yes | When kickoff call happened |
| H. Day-5 deadline | Date | Yes | Auto-calculated: max(F, G) + 5 business days |
| I. Production start | Date | Auto | Day after kickoff |
| J. Production status | Dropdown | Yes | `Awaiting intake` · `Awaiting kickoff` · `In production` · `Ready for US review` · `In US review` · `Approved` · `Delivered` · `Cancelled` · `Refunded` |
| K. Offshore lead | Text | Yes | Person responsible for production |
| L. US reviewer | Text | Yes | US team member reviewing |
| M. Deliverable links | Text | Yes when status ≥ "Ready for US review" | Google Drive folder URL |
| N. US review checklist done | Checkbox | Yes when delivered | Per 04 |
| O. Delivery date | Date | Yes | When customer received deliverable |
| P. On-time? | Auto | Yes | `O <= H ? "YES" : "NO"` |
| Q. Customer satisfaction | Number 1-5 | After delivery | Captured via 1-question follow-up email |
| R. Upsell offer sent (date) | Date | Day 14 post-delivery | Per 06 |
| S. Upsell outcome | Dropdown | When known | `Accepted` · `Declined` · `No response` · `Reschedule` |
| T. Notes | Text | Optional | Anything quirky about this customer |
| U. CRM lead ID | Text | Yes | For cross-reference |

## Conditional formatting

- Row H (deadline) within 1 business day: highlight yellow
- Row H past deadline + status ≠ "Delivered": highlight red
- Status = "Cancelled" or "Refunded": strikethrough whole row
- Status = "Delivered" + on-time: highlight green

## Daily review (US team standup, 10 min)

Every morning:
1. Sort by Day-5 deadline ascending
2. Confirm all rows due "today" or "tomorrow" are in `Ready for US review` or `Approved`
3. Address any red rows immediately — escalate to offshore + customer if needed
4. Mark `Delivered` rows + send the 1-question CSAT email
5. Queue Day-14 upsell offers (rows where today = delivery date + 14)

## Filters / views to create

- **View 1: Active work** — status NOT in (Delivered, Cancelled, Refunded)
- **View 2: This week's deadlines** — Day-5 deadline within 7 days
- **View 3: Upsell queue** — delivered + Day-14 due
- **View 4: Cancellation in progress** — status = Cancelled, data export pending

## When to add a row

- Triggered by: lead modal → kickoff call → payment received → row created with status "Awaiting intake"
- Customer cancellations from existing subscriptions: do NOT add a row; handle in 05 export workflow

## When to archive

- After delivery + Day-14 upsell outcome captured: move to "Archive" tab at end of quarter
```

- [ ] **Step 2: Build the Sheet (manual step)**

Acceptance:
- [ ] Google Sheet created with the column headers above
- [ ] Conditional formatting applied
- [ ] 4 filter views configured
- [ ] Shared with US team (Edit) + offshore team (Edit)
- [ ] Test row added + flowed through all statuses end-to-end

- [ ] **Step 3: Commit**

```bash
git add ops/03-production-tracker.md
git commit -m "docs(ops): production tracker schema"
```

---

## Task 5: Build the US review checkpoint checklist

**Files:**
- Create: `ops/04-us-review-checkpoint.md`

- [ ] **Step 1: Write the review checklist**

```markdown
# 04 — US Review Checkpoint

**Trigger:** Offshore team marks production tracker row as "Ready for US review."
**Owner:** US team member assigned in tracker column L.
**SLA:** Complete review within 4 hours during business hours, OR within 1 business day at worst.
**Outcome:** Either "Approved → Deliver" OR "Send back to offshore with notes."

## Universal review checklist (applies to every deliverable)

- [ ] Deliverable matches the scope sold (no missing pieces, no scope creep)
- [ ] Brand voice consistent with customer's intake notes
- [ ] No factual errors (claims, statistics, names, URLs verified)
- [ ] No specific AI tool names mentioned (ChatGPT, Claude, Midjourney etc.) in any customer-facing copy
- [ ] No grammar / spelling errors
- [ ] Files named cleanly (e.g., `[CustomerName]-AISEOAudit-2026-06.pdf`)
- [ ] All files placed in the customer's Drive folder
- [ ] Customer's name and business spelled correctly throughout
- [ ] Any links open correctly
- [ ] Copyright / source attribution OK (no stolen imagery, no plagiarized copy)

## Deliverable-specific checks

### Email send (tripwire or subscription)
- [ ] Subject line tested in inbox preview (no truncation, no broken emoji)
- [ ] Preheader visible in preview
- [ ] All `{{first_name}}` merge tags resolve correctly in test send
- [ ] Unsubscribe link works
- [ ] Mobile + desktop render verified
- [ ] Spam score ≥ 9/10 (mail-tester.com check)
- [ ] Customer approved the final draft (this is non-negotiable; never send without)

### SEO audit + fix
- [ ] Audit doc is readable, not just a data dump
- [ ] All 5 page fixes actually applied on the live site (verified by viewing source)
- [ ] No accidental site breakage (homepage loads, forms work, mobile clean)
- [ ] AEO/GEO recommendations included
- [ ] Before/after screenshots in deliverable

### Landing page mockup
- [ ] Figma file is shared with customer (Edit or View access — per intake)
- [ ] PDF export attached
- [ ] Mobile + desktop frames both included
- [ ] Customer revisions log shows we addressed their notes (if any)

### Social media posts
- [ ] All posts scheduled in the platform (Buffer/Later/native scheduler)
- [ ] Calendar visible to customer (read-only)
- [ ] Visuals brand-aligned
- [ ] No competitor mentions accidentally

### PPC campaign
- [ ] Ad copy approved by customer in writing (email or Slack)
- [ ] Targeting reviewed (geo, demographics, keywords) — no obvious miss
- [ ] Conversion tracking installed + tested with a test conversion
- [ ] Daily budget caps set
- [ ] Customer has direct billing relationship with Google/Meta (NOT us paying ad spend)

### Website build
- [ ] All pages load on mobile + desktop
- [ ] Forms submit (test submission → arrives in customer's email)
- [ ] No Lorem Ipsum left
- [ ] Page speed ≥ acceptable (PageSpeed Insights mobile ≥ 70)
- [ ] Schema markup present where promised
- [ ] CMS admin handed off to customer with 1-hr training video

### Graphics / brand
- [ ] Source files (Figma / Illustrator / PSD) included in delivery folder
- [ ] All file format exports listed in the deliverable spec (PNG, SVG, JPG, PDF)
- [ ] Brand guide PDF reviewed for readability + completeness
- [ ] Customer revisions log shows all rounds used

## If review fails

Send back to offshore with notes in the tracker row's notes column. Document specifically what needs to change. Offshore re-submits. Re-review.

## If review passes

1. Update tracker status to "Approved"
2. Send delivery email to customer (template below)
3. Update tracker status to "Delivered" + record delivery date in column O
4. Send 1-question CSAT email 24 hours later: *"On a scale of 1-5, how happy are you with what we delivered?"*
5. Queue Day-14 upsell offer in tracker

## Delivery email template

```
Subject: Your [package name] is ready

Hi [first name] —

Your [package name] is ready. Here's everything you need:

- [Deliverable link 1]
- [Deliverable link 2]
- Delivery report: [link]

[2-3 sentences on what was done + a notable finding or result.]

Next steps:
- Take a look. If anything needs a quick tweak, just reply.
- I'll follow up in a couple of weeks with a few ideas for what's next.

Thanks for trusting us with this one.

— Sanket
BT Web Group · Lexington, KY · 20 years of doing this
```
```

- [ ] **Step 2: Commit**

```bash
git add ops/04-us-review-checkpoint.md
git commit -m "docs(ops): US review checkpoint"
```

---

## Task 6: Build the cancellation + data export checklist

**Files:**
- Create: `ops/05-cancellation-data-export.md`

This is the "No Lock-In Ever" pillar made operational. Spec §6 promises 5 business days for data export. Without this checklist, that promise rots.

- [ ] **Step 1: Write the checklist**

```markdown
# 05 — Cancellation + Data Export

**Trigger:** Customer requests cancellation via email, dashboard button (future), or kickoff call.
**Owner:** Account manager (US team) processes; offshore team produces the export package.
**SLA:** 5 business days from cancellation request to delivered export package. ALWAYS.

## Same-day actions (within 4 business hours of cancellation request)

- [ ] Reply to customer within 1 hour confirming cancellation received
- [ ] Update CRM lead record: status = "Cancellation in progress"
- [ ] Update production tracker (if active customer): status = "Cancelled"
- [ ] Update Stripe / billing system: cancel at end of current billing period (NOT immediate — they paid for the month)
- [ ] Add customer to the Export Queue tab in the production tracker

## Reply email template (sent same day)

```
Subject: Re: Cancellation — confirmed, here's what's next

Hi [first name] —

Got it. Your [package name] is cancelled effective at the end of your current billing month ([date]). No further charges.

We'll send your complete data export by [date + 5 business days]. Here's what'll be in it:

[Tailored list based on what services they had. See "Export contents" section below.]

If there's anything specific you want included that I haven't listed, just hit reply.

Thanks for the time we worked together. If you ever want to come back, no setup fees, no hard feelings.

— Sanket
BT Web Group
```

## Export contents (tailor per service)

### Email Marketing
- [ ] Full subscriber list (CSV — email, first_name, last_name, custom fields)
- [ ] All email templates ever sent (HTML files)
- [ ] All segments + their rules (documented)
- [ ] Automation flow exports (if Growth/Pro tier had them)
- [ ] Performance reports (last 12 months — opens, clicks, conversions)
- [ ] Unsubscribe list (CSV)

### Social Media
- [ ] All posted content (CSV with text, image URL, post date, platform, engagement)
- [ ] Content calendar going forward (XLS or CSV)
- [ ] Removal of our account manager access from their social platforms
- [ ] Branded templates / visual assets (PSD/Figma)
- [ ] Performance reports (last 12 months)

### PPC
- [ ] All campaign settings (XLS export from Google Ads / Meta)
- [ ] All ad creatives (images + copy text)
- [ ] Audience lists (Customer Match, lookalikes — exported)
- [ ] Performance reports
- [ ] Removal of our access from their ad accounts
- [ ] Conversion tracking continues to work for them (don't break their pixel)

### SEO
- [ ] Full audit document (PDF)
- [ ] All content created (Word/Google Doc + HTML)
- [ ] Citation submission list (where we placed listings)
- [ ] Backlink list (URLs + anchor text)
- [ ] Ranking history report
- [ ] GBP access returned

### Website
- [ ] Full WordPress export (XML)
- [ ] Database backup
- [ ] All media files (zip)
- [ ] Admin credentials reset and given to customer
- [ ] FTP/host credentials reset
- [ ] Source files for any custom code

### Graphics / brand
- [ ] All source files (Figma, AI, PSD)
- [ ] All export formats (PNG, SVG, PDF, JPG)
- [ ] Brand guide PDF
- [ ] Font files (where licensing permits) OR list of fonts used with license info

## Universal export items (always included)

- [ ] Handoff document — 1-page summary of who did what, where files are, who customer can call if questions
- [ ] Performance dashboard snapshot (PDF) — final state of all reporting
- [ ] All customer-facing communications archive (emails sent to/from customer's contact)
- [ ] Invoices / billing history (PDFs)

## Delivery method

- Single ZIP file (or Google Drive folder with view-and-download permissions) named `[CustomerName]_Export_[YYYY-MM-DD].zip`
- Sent via email with download link
- Customer signs a confirmation that data has been received (auto-generated form)

## After export is sent

- [ ] Wait 7 business days (in case customer reports missing items)
- [ ] If no issues: archive customer's working files in our cold storage
- [ ] Remove customer's data from active systems (CRM stays for re-engagement; production folders archived)
- [ ] Update production tracker: status = "Export complete"
- [ ] Note in CRM: "Departed [date] — door always open"
- [ ] Schedule a 90-day re-engagement check-in (optional, soft)

## What NOT to do

- ❌ Charge for export (it's free, always — promised in pillar 5)
- ❌ Delay export to give time for "win-back" attempts (do win-back BEFORE cancellation goes through; once cancelled, deliver)
- ❌ Hold any deliverable hostage
- ❌ Make customer log a support ticket multiple times to get their data
- ❌ Hand over an unorganized data dump — package it properly
```

- [ ] **Step 2: Commit**

```bash
git add ops/05-cancellation-data-export.md
git commit -m "docs(ops): cancellation + data export checklist"
```

---

## Task 7: Build the post-delivery upsell sequence

**Files:**
- Create: `ops/06-upsell-sequence.md`

- [ ] **Step 1: Write the sequence**

```markdown
# 06 — Post-Delivery Upsell Sequence

**Trigger:** 14 days after delivery date for any tripwire purchase OR any Starter-tier subscription's first 30 days.
**Goal:** Move tripwire buyers to Starter (spec target: ≥30% within 60 days). Move Starter to Growth (spec target: ≥20% within 90 days).
**Tone:** Helpful, specific, not pushy. Pull-marketing not push-marketing.

## Upsell paths

```
Tripwire buyer (Day 14 post-delivery)
  ├─► 5K Email Blast → Email Starter ($497/mo) — focus: "if that send worked, let's run them monthly"
  ├─► AI SEO Audit + Fix → SEO Basic ($497/mo) — focus: "the fixes worked; here are the next 20 issues we found"
  └─► AI Landing Page Mockup → 5-Page Website Build ($1,997 one-time) — focus: "let's actually build it"

Starter subscriber (Day 30 in tier)
  ├─► Email Starter → Email Growth ($997/mo) — focus: "you've hit the volume ceiling; add automation flows"
  ├─► Social Starter → Social Growth — focus: "engagement is growing; let's add reels and community mgmt"
  ├─► PPC Starter → PPC Growth — focus: "results data justifies expanding to Meta + retargeting"
  └─► SEO Basic → SEO Intermediate — focus: "rankings showing; let's accelerate with content + backlinks"

Single-service Starter (Day 60)
  └─► Bundle (Lead Engine / Brand Builder / Upsell Engine) — focus: "you've got X working; pair with Y to compound"
```

## Email templates

### Template A — Tripwire → Starter (Day 14)

```
Subject: How'd it land?

Hi [first name] —

It's been about 2 weeks since we delivered your [tripwire name]. Quick check-in:

How'd it land? Any results worth talking about? (Hit reply — I read these personally.)

If it worked the way we hoped, here's what most of our customers do next:

[For 5K Email Blast tripwire:]
**Email Marketing Starter — $497/mo**
One campaign per month, AI-assisted personalization, ongoing list management, monthly reporting. Same team. Same speed. Same no-contract guarantee.

[For AI SEO Audit + Fix tripwire:]
**SEO Basic — $497/mo**
The audit surfaced 20+ more issues than the 5 we fixed. SEO Basic addresses them month-by-month, plus new content, plus AEO/GEO work to keep you visible in AI search.

[For AI Landing Page Mockup tripwire:]
**5-Page Website Build — $1,997 one-time**
Let's actually build the page — and 4 others to round out a high-conversion site. Same look, fully coded, mobile-clean, with forms and analytics.

If interested, just reply "tell me more" and I'll send specifics. No call needed unless you want one.

— Sanket
BT Web Group · Lexington, KY
```

### Template B — Starter → Growth (Day 30)

```
Subject: Quick numbers from your first month

Hi [first name] —

Your first month of [service] is in the books. Here's how it went:

[Insert 3 specific numbers from their results — e.g., "open rate 28%, click rate 4.2%, 12 inbound replies that look like real leads."]

The numbers are solid. The single thing holding you back from a step-change is [reason — list size, ad budget, content depth, etc.].

Growth tier addresses exactly that:
- [Specific Growth feature 1 that matches this customer's gap]
- [Specific Growth feature 2]
- [Specific Growth feature 3]

It's $997/mo instead of $497/mo — but it solves the bottleneck I'm seeing. Most Starter customers move up at month 2-3 once they have data showing the ceiling.

Want me to walk through it on a 15-min call? Or reply "tell me more" for specifics.

— Sanket
```

### Template C — Single service → Bundle (Day 60)

```
Subject: One thing you're missing

Hi [first name] —

You've had us running [service] for two months now. Results are [specific quick summary].

Here's what I'm seeing across the board: customers who ONLY do [service] cap out around [outcome]. Customers who do [service] + [second service] see [bigger outcome] because [reason — e.g., "every PPC click also gets follow-up via email, every email opens up traffic that SEO can capitalize on"].

That's why we built the [Lead Engine / Brand Builder / Upsell Engine] Bundle:

[Service 1] + [Service 2] + [Service 3 if applicable]
**$X/mo** (save $Y/mo vs. buying separately) + free signup bonus worth $Z.

You'd save $Y/mo + get the bonus. Same team, same no-contract, single bill.

Worth a 15-min call?

— Sanket
```

## Reply handling

- Any reply asking "tell me more" → US team responds within same business day with package details + Calendly link for a 15-min call
- Any reply with a specific concern → US team responds personally; document concern in CRM
- No reply within 14 days of upsell email → drop into long-term nurture (monthly check-in, not weekly)

## Cadence guardrails

- ONE upsell email per customer per service line per 30 days. No carpet-bombing.
- If customer says "not now" or "not interested": respect for 90 days, no upsell emails, only monthly check-ins.
- If customer cancels: 06 stops; switch to 05.
```

- [ ] **Step 2: Commit**

```bash
git add ops/06-upsell-sequence.md
git commit -m "docs(ops): post-delivery upsell sequence"
```

---

## Task 8: Build per-service production playbooks

**Files:**
- Create: `ops/playbooks/tripwire-5k-email-blast.md`
- Create: `ops/playbooks/tripwire-ai-seo-audit-fix.md`
- Create: `ops/playbooks/tripwire-ai-landing-page-mockup.md`
- Create: `ops/playbooks/service-email-marketing.md`
- Create: `ops/playbooks/service-social-media.md`
- Create: `ops/playbooks/service-ppc.md`
- Create: `ops/playbooks/service-seo.md`
- Create: `ops/playbooks/service-marketing-website.md`
- Create: `ops/playbooks/service-graphics-brand.md`

Each playbook = step-by-step recipe for offshore team. Includes: required intake fields, AI tools used (internal only — never customer-facing), human review steps, deliverable spec, time budget, common gotchas.

These playbooks are LONG to write but follow a consistent template. The plan defines the template + lists which playbooks to write; the executor fills the content.

- [ ] **Step 1: Write the playbook template (use for all)**

The template each playbook follows:

```markdown
# [Service Name] Playbook

**Tier scope:** [Which tier(s) this playbook covers]
**Time budget:** [Total person-hours]
**Owner:** Offshore team lead
**US reviewer:** [Role]
**Customer-facing SLA:** [Days]

## Required intake fields

[List the intake form questions (from 01) that MUST be answered before production starts. If missing: pause + chase customer.]

## Step-by-step execution

### Day 1 — Intake review (offshore, 30 min)
- [ ] Read all intake responses
- [ ] Flag missing or ambiguous answers — escalate to US team for clarification
- [ ] Access customer assets (logins, files, drives)
- [ ] Confirm scope matches what was sold

### Day 2 — Kickoff alignment (15 min, attended by US team)
- [ ] Sit in on kickoff call OR get kickoff call notes from US team
- [ ] Confirm production plan with US team before starting

### Day 3 — First draft / production (offshore + AI tools, X hours)
- [ ] [Specific step using internal AI tools — e.g., "Use ChatGPT-4 to generate 3 subject line variants"]
- [ ] [Specific step]
- [ ] Save all working files to customer's Drive folder

### Day 4 — Refinement (offshore, X hours)
- [ ] Apply customer's brand voice
- [ ] Internal QA pass per the checklist below
- [ ] Set tracker status to "Ready for US review"

### Day 5 — US review + delivery
- [ ] US team runs through 04 review checkpoint
- [ ] On approval: send delivery email + update tracker

## Internal QA checklist (run BEFORE flagging for US review)

[Service-specific QA — different per playbook]

## AI tools used (INTERNAL — never mention to customer)

[List with purpose — e.g., "ChatGPT-4 for subject line variants; Midjourney for image options; Frase for SEO content briefs"]

## Common gotchas

[Things that have gone wrong before — list as they emerge in real production]

## Deliverable spec

[Exact list of what gets handed over. Cross-check against §4 (tripwires) or §5 (services) of the launch spec.]
```

- [ ] **Step 2: Write tripwire playbooks (3)**

For each of the 3 launch tripwires, create the playbook file using the template. Reference spec §4 for exact deliverable specs. Key time budgets (matched to spec's "negligible cost" framing):

- **5K Email Blast:** 2-3 person-hours total (intake review + 1 email draft + AI variants + send + report)
- **AI SEO Audit + Fix:** 4-5 person-hours (audit run + interpretation + 5 page fixes + AEO/GEO recos + report)
- **Landing Page Mockup:** 3-4 person-hours (concept + AI copy + AI/curated imagery + Figma + 1 revision round)

- [ ] **Step 3: Write service playbooks (6)**

For each of the 6 service lines, create playbook covering all three tiers in one document with clear sections per tier. Reference spec §5 for deliverable specs.

- [ ] **Step 4: Verify playbooks against the spec**

For each playbook, cross-reference the deliverable counts and quality bars against spec §4 and §5. No deliverable promised in the spec is missing from a playbook.

- [ ] **Step 5: Commit all playbooks**

```bash
git add ops/playbooks/
git commit -m "docs(ops): per-service production playbooks (3 tripwires + 6 services)"
```

---

## Task 9: Operational launch readiness check

**Files:** (none — verification only)

- [ ] **Step 1: Run the launch-readiness checklist**

Before Eblast 1 sends, confirm each:

- [ ] CRM lead-modal webhook tested with a fake submission → arrives in CRM
- [ ] Intake form built in Google Forms, link captured, test submission works
- [ ] Calendly event type live, test booking arrives in calendar
- [ ] Production tracker Google Sheet created with all column headers + conditional formatting
- [ ] Production tracker shared with US + offshore teams
- [ ] All 9 playbooks (3 tripwires + 6 services) written and accessible to offshore
- [ ] US reviewer assigned per tier; review checkpoint doc printed/saved
- [ ] Cancellation + data export checklist trained with account manager
- [ ] Upsell sequence email templates loaded in CRM
- [ ] Stripe (or invoice tool) set up for offline payment collection
- [ ] CAN-SPAM physical address confirmed
- [ ] SendGrid sender authentication (SPF/DKIM/DMARC) confirmed on btwebgroup.com
- [ ] Unsubscribe URL works in all 4 eblast templates
- [ ] /privacy and /contact pages exist on btwebgroup.com and load OK
- [ ] (859) phone number replaced everywhere it appears in code/templates

- [ ] **Step 2: Document any blockers**

If any item above isn't done, list it in a `ops/LAUNCH_BLOCKERS.md` file with owner + deadline. Do not send Eblast 1 until that file is empty (or only contains items the team has accepted as "ship anyway").

- [ ] **Step 3: Final commit**

```bash
git add ops/
git commit -m "ops: launch-readiness verified"
```

---

## Out of Scope for This Plan

- **CRM platform selection or rebuild** — assumes existing CRM works
- **SendGrid sender domain authentication** — verify it's already done; if not, that's a 30-min DNS task and a launch blocker
- **Building a customer self-service dashboard** — spec §11 confirms manual approval flow for v1; dashboard is later phase
- **Affiliate / referral program** — spec §11
- **Annual billing setup** — spec deliberately excludes
- **Building the offshore team itself** — assumes team + tools exist

---

## Success Criteria

- Every operational artifact in `ops/` is filled in, not placeholder
- The lifecycle from lead-modal submit → delivery → upsell is documented end-to-end with named owners and SLAs
- Cancellation/data-export is operationally bulletproof — promise in §6 of the spec is matched by checklist in 05
- Offshore team has playbooks specific enough to execute Day 3-4 work without a second call
- US team has a review checklist specific enough to catch quality misses before delivery
- Launch readiness checklist (Task 9) is empty before Eblast 1 goes out
