Marketing-Ops Handoff (Lead Lifecycle + Sales Routing)
Position in workflow: v0.8 Monitoring Setup → v0.8 Marketing-Ops Handoff → v0.9 Launch Channels (ORB), v0.9 Cold Outreach
Execution Mode
Default is standard. See .claude/rules/08-skill-execution-modes.md for selection logic.
| Mode |
What this skill produces |
| quick |
3-stage lifecycle (Anonymous → Lead → Customer); single handoff rule; SLA per stage |
| standard |
Full 5-stage lifecycle (Anonymous → MQL → SQL → Opportunity → Customer); entry/exit criteria; handoff payload spec; SLAs |
| deep |
Full lifecycle + per-segment routing (by ICP / region / size); scoring model; rejection-loop rules; SLA monitoring + escalation |
What This Does
Defines the lifecycle stages a lead passes through from first touch to customer (or churn), plus the handoff rules at each transition. Without this, marketing-captured leads get dropped, double-worked, or never followed up. With this, you have an auditable definition of who owns what at each moment.
This skill applies primarily to B2B and prosumer products with a human-touch sales motion (founder-led sales, BDR/SDR teams, customer-success-led expansion). Pure self-serve products use a simpler version: lifecycle = Anonymous → Trial → Paid, with no human handoff.
How It Works
- Pick the lifecycle shape — Match the product:
- Self-serve: Anonymous → Signup → Activated → Paid → Expanded
- Sales-assisted: Anonymous → MQL → SQL → Opportunity → Customer
- Hybrid (PLG + Sales): Anonymous → Signup → Activated → Paid → SQL → Opportunity → Expansion
- Define entry criteria per stage — What event/behavior moves a lead into this stage? Examples:
- MQL: filled out a high-intent form, downloaded gated content, hit usage threshold
- SQL: explicit "talk to sales" or scoring threshold reached
- Opportunity: discovery call held, budget + authority confirmed
- Define exit criteria per stage — Two paths out: progress (to next stage) and disqualify (back to nurture or out). Disqualification rules matter as much as progression.
- Map ownership — Who owns the lead at each stage:
- Anonymous: marketing automation
- MQL: BDR/SDR
- SQL: AE / founder
- Opportunity: AE / founder
- Customer: CS / founder
- Define handoff payload — When a lead moves between owners, what context goes with them? At minimum:
- Source (which GTM-* channel produced this lead)
- Touchpoint history (what they've engaged with)
- Best-fit signals (firmographic match, behavioral fit)
- Disqualifiers (anything that ruled out an earlier stage)
- Open questions (what the next owner should clarify)
- Set SLAs per stage — How fast must the new owner respond after handoff? MQL → BDR typically <1 business hour for high-signal, <1 business day for low-signal. SQL → AE typically <30 minutes.
- Plan rejection routing — When SQL → AE handoff is rejected ("not a fit"), where does the lead go? Back to nurture, disqualified, requeued? Without this rule, leads die in limbo.
Example
B2B SaaS, $200/month entry price, sales-assisted motion.
| Stage |
Entry criteria |
Exit criteria |
Owner |
SLA |
| Anonymous |
Any first touch |
Filled form OR signed up |
Marketing |
n/a |
| MQL |
Filled high-intent form (demo request, pricing page) |
BDR qualifies in OR disqualifies |
BDR |
1 business hour |
| SQL |
BDR confirms fit + intent |
AE accepts OR rejects |
BDR → AE |
30 min |
| Opportunity |
AE held discovery, budget + authority confirmed |
Closed-won OR closed-lost |
AE |
24 hr per touch |
| Customer |
Closed-won contract signed |
Churn OR expand |
CS |
Onboarding kickoff <1 business day |
Handoff payload at MQL → SQL (BDR → AE):
- Source: GTM-002 (Product Hunt) + retargeting
- Touchpoints: 3 blog posts, demo video, pricing page (3×)
- Best-fit signals: 50-person SaaS (matches PER-001), VP Eng signed up
- Disqualifiers: none
- Open questions: confirm budget owner; confirm timeline
Rejection routing at SQL → AE rejection ("too small"): lead returns to MQL queue with "small-team" tag; BDR can re-engage in 90 days if size signal changes.
What You Get Back
- BR-MOPS-* lifecycle rule entries — One per stage with entry/exit/owner/SLA
- GTM-MOPS-* handoff flow entries — One per transition (MQL→SQL, SQL→OPP, etc.) with payload spec
- Rejection-routing rules — Disqualifier-aware routing back to nurture
- SLA monitoring plan — Hooks into MON-DRIFT-* for SLA drift watching
When to Use It
| Trigger |
Mode |
| B2B / sales-assisted product, pre-launch |
standard |
| Hybrid PLG + Sales motion |
deep |
| Pure self-serve consumer product |
skip — overkill |
| Adding human sales to existing self-serve |
standard |
| Sales velocity issues (leads dying in queue) |
deep (rebuild with SLAs) |
| Pre-Series A audit (investor wants to see process) |
deep |
Consumes
- PER-* best-fit characteristics (sharpened by v0.9 Positioning when available) — Defines what fit-signal scoring looks like
- GTM-* channel mix (from v0.9 Launch Channels ORB, when available) — Lead sources feed into Anonymous stage
- GTM-* offer card (from v0.9 Offer Construction) — Determines what "qualified" means (price tier sets bar)
- BR-PRICING-* (from v0.3 + v0.9) — Sets stage thresholds (above $X/year → SQL; below → self-serve)
- KPI-* baseline targets — Stage conversion targets feed into KPI- entries
When this skill runs before v0.9, channel and offer references use placeholders that get reconciled when v0.9 finalizes.
Produces
- BR-MOPS-* entries (lifecycle stage rules) in
SoT/SoT.BUSINESS_RULES.md
- GTM-MOPS-* entries (handoff flow specs) — One per stage transition
- CFD-* gaps surfaced — When stage criteria can't be cleanly defined, log as research gap
Output Template
BR-MOPS-XXX: Lifecycle Stage — [Stage name]
Type: Lifecycle-Stage
Order: [#]
Status: Active
Stage: [Anonymous | Signup | Activated | MQL | SQL | Opportunity | Customer | Expansion]
Entry criteria:
- [Criterion 1 — e.g., "Filled out demo request form"]
- [Criterion 2 — e.g., "Reached usage threshold X"]
Exit criteria (progression):
- To [next stage]: [Criterion]
Exit criteria (disqualification):
- [Criterion that routes back to earlier stage or out]
Owner: [Marketing automation | BDR/SDR | AE | CS | Founder]
SLA:
Response time after entering this stage: [duration]
Escalation: [What happens if SLA missed]
Linked IDs: PER-XXX (fit signals), GTM-YYY (source channels), BR-PRICING-ZZZ (tier threshold), KPI-AAA (conversion rate)
GTM-MOPS-XXX: Handoff — [Stage A] → [Stage B]
Type: Handoff
Status: Active
From: [Stage A] (owner: ...)
To: [Stage B] (owner: ...)
Trigger: [Specific event — e.g., "BDR marks lead as Qualified in CRM"]
Payload (what context transfers):
- Source: [GTM-* channel]
- Touchpoint history: [What they engaged with]
- Best-fit signals: [Firmographic + behavioral match]
- Disqualifiers: [Anything that ruled out earlier stages]
- Open questions: [What new owner should clarify]
Rejection rule:
Condition: [When does the new owner reject this handoff?]
Routing: [Where does the rejected lead go? Nurture / disqualified / requeue]
Re-engagement: [Conditions under which this lead can return]
SLA: [Response time required from new owner]
Linked IDs: BR-MOPS-AAA (Stage A rule), BR-MOPS-BBB (Stage B rule)
Anti-Patterns
| Pattern |
Signal |
Fix |
| MQL = "anyone who filled a form" |
High-volume MQLs with 1% SQL conversion |
Tighten MQL entry criteria; add fit-signal scoring |
| No rejection routing |
Leads die when SQL → AE rejects |
Define where rejected leads go (nurture, disqualified, requeue) |
| SLA without escalation |
"Respond in 1 hour" with no consequence if missed |
SLA must have an escalation path |
| Handoff without payload |
New owner asks "who is this?" |
Mandatory payload fields at every handoff |
| Stages without owners |
"We'll figure out who handles SQLs later" |
One owner per stage; named role minimum |
| Lifecycle for self-serve |
$20/month consumer product with MQL/SQL/OPP |
Use Signup → Activated → Paid; no human handoff |
| No SLA monitoring |
SLAs exist on paper, missed in practice |
Drift-monitor SLA via MON-DRIFT- |
Quality Gates
Before activating handoff:
Downstream Connections
| Consumer |
What it uses |
Example |
| Launch Channels (ORB) |
Each channel's leads enter the lifecycle at Anonymous |
GTM-002 (Product Hunt) → Anonymous → MQL routing |
| Cold Outreach (Tiered) |
Tier 1/2/3 sequences map to lifecycle stages |
Tier 1 = SQL-tier ABM; Tier 3 = MQL nurture |
| Launch Metrics |
Stage conversion rates become KPI- entries |
KPI-MQL-to-SQL-conversion |
| Feedback Loop Setup |
Rejected leads' "why we passed" reasons feed CFD- |
Pattern: "too small" rejections → CFD- pricing signal |
| Drift Monitoring |
SLA drift catches process decay |
MON-DRIFT-MQL-response-SLA |
Detailed References
- alirezarezvani's
marketing-ops and revenue-operations skills (claude-skills)
- Predictable Revenue (Aaron Ross) — sales handoff structure
- From Impossible to Inevitable (Aaron Ross + Jason Lemkin) — stage discipline
- SiriusDecisions lead-lifecycle framework (the canonical B2B reference)
- (No bundled
references/ — lifecycle shapes vary; this skill encodes the discipline, not a specific shape)
1---2name: prd-v08-marketing-ops-handoff3description: Define lifecycle stages and marketing → sales / CSM handoff rules for leads captured by GTM channels during PRD v0.8 Deployment & Ops. Triggers on requests to set up lead lifecycle, define MQL/SQL criteria, build handoff process, or when user asks "what's an MQL?", "marketing to sales handoff", "lead lifecycle", "lead routing", "RevOps", "MOPS", "marketing operations". Outputs BR-MOPS-* lifecycle rules and GTM-MOPS-* handoff flow entries.4---5
6# Marketing-Ops Handoff (Lead Lifecycle + Sales Routing)
7
8Position in workflow: v0.8 Monitoring Setup → **v0.8 Marketing-Ops Handoff** → v0.9 Launch Channels (ORB), v0.9 Cold Outreach
9
10## Execution Mode
11
12Default is **standard**. See [`.claude/rules/08-skill-execution-modes.md`](../../rules/08-skill-execution-modes.md) for selection logic.
13
14| Mode | What this skill produces |
15|------|--------------------------|
16| **quick** | 3-stage lifecycle (Anonymous → Lead → Customer); single handoff rule; SLA per stage |
17| **standard** | Full 5-stage lifecycle (Anonymous → MQL → SQL → Opportunity → Customer); entry/exit criteria; handoff payload spec; SLAs |
18| **deep** | Full lifecycle + per-segment routing (by ICP / region / size); scoring model; rejection-loop rules; SLA monitoring + escalation |
19
20## What This Does
21
22Defines the **lifecycle stages** a lead passes through from first touch to customer (or churn), plus the **handoff rules** at each transition. Without this, marketing-captured leads get dropped, double-worked, or never followed up. With this, you have an auditable definition of who owns what at each moment.
23
24This skill applies primarily to B2B and prosumer products with a human-touch sales motion (founder-led sales, BDR/SDR teams, customer-success-led expansion). Pure self-serve products use a simpler version: lifecycle = Anonymous → Trial → Paid, with no human handoff.
25
26## How It Works
27
281. **Pick the lifecycle shape** — Match the product:
29 - **Self-serve**: Anonymous → Signup → Activated → Paid → Expanded
30 - **Sales-assisted**: Anonymous → MQL → SQL → Opportunity → Customer
31 - **Hybrid (PLG + Sales)**: Anonymous → Signup → Activated → Paid → SQL → Opportunity → Expansion
322. **Define entry criteria per stage** — What event/behavior moves a lead into this stage? Examples:
33 - MQL: filled out a high-intent form, downloaded gated content, hit usage threshold
34 - SQL: explicit "talk to sales" or scoring threshold reached
35 - Opportunity: discovery call held, budget + authority confirmed
363. **Define exit criteria per stage** — Two paths out: progress (to next stage) and disqualify (back to nurture or out). Disqualification rules matter as much as progression.
374. **Map ownership** — Who owns the lead at each stage:
38 - Anonymous: marketing automation
39 - MQL: BDR/SDR
40 - SQL: AE / founder
41 - Opportunity: AE / founder
42 - Customer: CS / founder
435. **Define handoff payload** — When a lead moves between owners, what context goes with them? At minimum:
44 - Source (which GTM-* channel produced this lead)
45 - Touchpoint history (what they've engaged with)
46 - Best-fit signals (firmographic match, behavioral fit)
47 - Disqualifiers (anything that ruled out an earlier stage)
48 - Open questions (what the next owner should clarify)
496. **Set SLAs per stage** — How fast must the new owner respond after handoff? MQL → BDR typically <1 business hour for high-signal, <1 business day for low-signal. SQL → AE typically <30 minutes.
507. **Plan rejection routing** — When SQL → AE handoff is rejected ("not a fit"), where does the lead go? Back to nurture, disqualified, requeued? Without this rule, leads die in limbo.
51
52## Example
53
54B2B SaaS, $200/month entry price, sales-assisted motion.
55
56| Stage | Entry criteria | Exit criteria | Owner | SLA |
57|-------|----------------|---------------|-------|-----|
58| Anonymous | Any first touch | Filled form OR signed up | Marketing | n/a |
59| MQL | Filled high-intent form (demo request, pricing page) | BDR qualifies in OR disqualifies | BDR | 1 business hour |
60| SQL | BDR confirms fit + intent | AE accepts OR rejects | BDR → AE | 30 min |
61| Opportunity | AE held discovery, budget + authority confirmed | Closed-won OR closed-lost | AE | 24 hr per touch |
62| Customer | Closed-won contract signed | Churn OR expand | CS | Onboarding kickoff <1 business day |
63
64Handoff payload at MQL → SQL (BDR → AE):
65- Source: GTM-002 (Product Hunt) + retargeting
66- Touchpoints: 3 blog posts, demo video, pricing page (3×)
67- Best-fit signals: 50-person SaaS (matches PER-001), VP Eng signed up
68- Disqualifiers: none
69- Open questions: confirm budget owner; confirm timeline
70
71Rejection routing at SQL → AE rejection ("too small"): lead returns to MQL queue with "small-team" tag; BDR can re-engage in 90 days if size signal changes.
72
73## What You Get Back
74
75- **BR-MOPS-\* lifecycle rule entries** — One per stage with entry/exit/owner/SLA
76- **GTM-MOPS-\* handoff flow entries** — One per transition (MQL→SQL, SQL→OPP, etc.) with payload spec
77- **Rejection-routing rules** — Disqualifier-aware routing back to nurture
78- **SLA monitoring plan** — Hooks into MON-DRIFT-* for SLA drift watching
79
80## When to Use It
81
82| Trigger | Mode |
83|---------|------|
84| B2B / sales-assisted product, pre-launch | standard |
85| Hybrid PLG + Sales motion | deep |
86| Pure self-serve consumer product | **skip** — overkill |
87| Adding human sales to existing self-serve | standard |
88| Sales velocity issues (leads dying in queue) | deep (rebuild with SLAs) |
89| Pre-Series A audit (investor wants to see process) | deep |
90
91## Consumes
92
93- **PER-\* best-fit characteristics** (sharpened by v0.9 Positioning when available) — Defines what fit-signal scoring looks like
94- **GTM-\* channel mix** (from v0.9 Launch Channels ORB, when available) — Lead sources feed into Anonymous stage
95- **GTM-\* offer card** (from v0.9 Offer Construction) — Determines what "qualified" means (price tier sets bar)
96- **BR-PRICING-\*** (from v0.3 + v0.9) — Sets stage thresholds (above $X/year → SQL; below → self-serve)
97- **KPI-\* baseline targets** — Stage conversion targets feed into KPI- entries
98
99> When this skill runs before v0.9, channel and offer references use placeholders that get reconciled when v0.9 finalizes.
100
101## Produces
102
103- **BR-MOPS-\* entries** (lifecycle stage rules) in `SoT/SoT.BUSINESS_RULES.md`
104- **GTM-MOPS-\* entries** (handoff flow specs) — One per stage transition
105- **CFD-\* gaps surfaced** — When stage criteria can't be cleanly defined, log as research gap
106
107## Output Template
108
109```
110BR-MOPS-XXX: Lifecycle Stage — [Stage name]
111Type: Lifecycle-Stage
112Order: [#]
113Status: Active
114
115Stage: [Anonymous | Signup | Activated | MQL | SQL | Opportunity | Customer | Expansion]
116
117Entry criteria:
118 - [Criterion 1 — e.g., "Filled out demo request form"]
119 - [Criterion 2 — e.g., "Reached usage threshold X"]
120
121Exit criteria (progression):
122 - To [next stage]: [Criterion]
123
124Exit criteria (disqualification):
125 - [Criterion that routes back to earlier stage or out]
126
127Owner: [Marketing automation | BDR/SDR | AE | CS | Founder]
128
129SLA:
130 Response time after entering this stage: [duration]
131 Escalation: [What happens if SLA missed]
132
133Linked IDs: PER-XXX (fit signals), GTM-YYY (source channels), BR-PRICING-ZZZ (tier threshold), KPI-AAA (conversion rate)
134```
135
136```
137GTM-MOPS-XXX: Handoff — [Stage A] → [Stage B]
138Type: Handoff
139Status: Active
140
141From: [Stage A] (owner: ...)
142To: [Stage B] (owner: ...)
143
144Trigger: [Specific event — e.g., "BDR marks lead as Qualified in CRM"]
145
146Payload (what context transfers):
147 - Source: [GTM-* channel]
148 - Touchpoint history: [What they engaged with]
149 - Best-fit signals: [Firmographic + behavioral match]
150 - Disqualifiers: [Anything that ruled out earlier stages]
151 - Open questions: [What new owner should clarify]
152
153Rejection rule:
154 Condition: [When does the new owner reject this handoff?]
155 Routing: [Where does the rejected lead go? Nurture / disqualified / requeue]
156 Re-engagement: [Conditions under which this lead can return]
157
158SLA: [Response time required from new owner]
159
160Linked IDs: BR-MOPS-AAA (Stage A rule), BR-MOPS-BBB (Stage B rule)
161```
162
163## Anti-Patterns
164
165| Pattern | Signal | Fix |
166|---------|--------|-----|
167| **MQL = "anyone who filled a form"** | High-volume MQLs with 1% SQL conversion | Tighten MQL entry criteria; add fit-signal scoring |
168| **No rejection routing** | Leads die when SQL → AE rejects | Define where rejected leads go (nurture, disqualified, requeue) |
169| **SLA without escalation** | "Respond in 1 hour" with no consequence if missed | SLA must have an escalation path |
170| **Handoff without payload** | New owner asks "who is this?" | Mandatory payload fields at every handoff |
171| **Stages without owners** | "We'll figure out who handles SQLs later" | One owner per stage; named role minimum |
172| **Lifecycle for self-serve** | $20/month consumer product with MQL/SQL/OPP | Use Signup → Activated → Paid; no human handoff |
173| **No SLA monitoring** | SLAs exist on paper, missed in practice | Drift-monitor SLA via MON-DRIFT- |
174
175## Quality Gates
176
177Before activating handoff:
178
179- [ ] Lifecycle shape matches product motion (self-serve / sales-assisted / hybrid)
180- [ ] Every stage has entry, exit-progression, and exit-disqualification criteria
181- [ ] Every stage has a named owner (role minimum)
182- [ ] Every stage has an SLA with escalation path
183- [ ] Every transition has a handoff payload spec
184- [ ] Rejection routing defined for every owner-changing handoff
185- [ ] SLA drift monitoring set up via MON-DRIFT-
186
187## Downstream Connections
188
189| Consumer | What it uses | Example |
190|----------|--------------|---------|
191| **Launch Channels (ORB)** | Each channel's leads enter the lifecycle at Anonymous | GTM-002 (Product Hunt) → Anonymous → MQL routing |
192| **Cold Outreach (Tiered)** | Tier 1/2/3 sequences map to lifecycle stages | Tier 1 = SQL-tier ABM; Tier 3 = MQL nurture |
193| **Launch Metrics** | Stage conversion rates become KPI- entries | KPI-MQL-to-SQL-conversion |
194| **Feedback Loop Setup** | Rejected leads' "why we passed" reasons feed CFD- | Pattern: "too small" rejections → CFD- pricing signal |
195| **Drift Monitoring** | SLA drift catches process decay | MON-DRIFT-MQL-response-SLA |
196
197## Detailed References
198
199- alirezarezvani's `marketing-ops` and `revenue-operations` skills (claude-skills)
200- *Predictable Revenue* (Aaron Ross) — sales handoff structure
201- *From Impossible to Inevitable* (Aaron Ross + Jason Lemkin) — stage discipline
202- SiriusDecisions lead-lifecycle framework (the canonical B2B reference)
203- (No bundled `references/` — lifecycle shapes vary; this skill encodes the discipline, not a specific shape)