| name | prd-v08-marketing-ops-handoff |
| description | 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.
|
| context | fork |
| allowed-tools | ["Read","Write","Edit","Glob","Grep"] |
| execution_modes | {"default":"standard","supports":["quick","standard","deep"]} |
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)