prd-v08-marketing-ops-handoff

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 cri

SKILL.md

GitHub

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

  1. 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
  2. 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
  3. 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.
  4. Map ownership — Who owns the lead at each stage:
    • Anonymous: marketing automation
    • MQL: BDR/SDR
    • SQL: AE / founder
    • Opportunity: AE / founder
    • Customer: CS / founder
  5. 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)
  6. 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.
  7. 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:

  • Lifecycle shape matches product motion (self-serve / sales-assisted / hybrid)
  • Every stage has entry, exit-progression, and exit-disqualification criteria
  • Every stage has a named owner (role minimum)
  • Every stage has an SLA with escalation path
  • Every transition has a handoff payload spec
  • Rejection routing defined for every owner-changing handoff
  • SLA drift monitoring set up via MON-DRIFT-

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)