B2B SaaS Sales Pipeline Template
Seven stages - Lead, Qualified, Demo, Proposal, Negotiation, Won, Lost - each with an exit criterion you can verify, benchmark conversion rates between stages, and a copy-paste JSON artifact that creates the whole pipeline in one API call.
Who this is for
This template fits a demo-led B2B SaaS motion: ACV roughly $3k-$100k, sales cycle two weeks to three months, a human or an AI agent working deals one at a time. That covers founder-led sales, a first AE hire, and RevOps standing up a CRM that agents will operate. It is not for pure self-serve PLG (no pipeline needed until a sales-assist motion appears); six-figure enterprise deals earn one or two extra stages plus a qualification framework like MEDDPICC on top.
Use it when creating a pipeline from scratch, or when your current one has grown to ten stages nobody updates and you want a reset a team - or an agent - will keep accurate.
The 7 stages, with exit criteria
One rule governs everything below: a stage is a buyer state, and an exit criterion is a verifiable fact about the buyer. Not "sent a follow-up", not "feels warm". If two people audit the same deal and could disagree about its stage, the criterion is written wrong.
| Stage | The deal is here when... | Advance when (exit criteria) |
|---|---|---|
| Lead | A named person at a company that plausibly fits your ICP exists in the CRM with a source. | They responded to outreach or showed explicit inbound intent, AND the company passes your ICP filter. |
| Qualified | A real conversation happened. The buyer acknowledged the problem you solve. | Problem confirmed in their words, a budget owner identified, and a demo booked with someone who can influence the decision. |
| Demo | The demo is scheduled or delivered. | Demo held with the buying side present, buyer confirmed fit, and they asked for pricing or a proposal. |
| Proposal | A written proposal with scope, pricing and a start date is in the buyer's hands. | Buyer engaged with the terms - redlines, a procurement or security questionnaire, a negotiation call. Silence is not engagement. |
| Negotiation | There is a verbal yes; commercial and legal terms are being finalized. | Signature. Nothing else counts. |
| Won | Contract signed. Terminal stage. | Hand off to onboarding; the deal never moves again. |
| Lost | The buyer said no, went dark past your dead-deal threshold, or chose a competitor. Terminal stage. | Record a loss reason before closing. "No reason" should be an invalid move. |
The Qualified bar is where most pipelines rot. If "had one call" counts as qualified, your win rate becomes uninterpretable. Hold the line: problem confirmed, budget owner named, demo booked - all three or it stays in Lead.
Conversion benchmarks between stages
Directional ranges for a mid-market, demo-led SaaS motion. Your numbers will shift with ACV (higher ACV converts lower per stage but is worth it) and channel mix (inbound converts roughly 2x outbound at the top). Treat these as instruments for spotting outliers, not targets to manage reps against.
| Transition | Healthy range | How to read an outlier |
|---|---|---|
| Lead → Qualified | 25-40% | Below 15%: top-of-funnel is junk. Above 60%: your qualification bar is too soft. |
| Qualified → Demo | 50-70% | Low means qualification is happening without real intent - the demo should be booked at qualification. |
| Demo → Proposal | 40-60% | Low is a demo problem or an audience problem (wrong people in the room). |
| Proposal → Negotiation | 60-80% | Low means proposals are going out too early, before the buyer asked for one. |
| Negotiation → Won | 70-85% | Deals dying here are usually pricing surprises or a hidden decision-maker. |
| Qualified → Won (win rate) | 20-30% | The single number worth tracking weekly. Compute from terminal stages, not from feelings. |
Anti-patterns that kill pipelines
- Too many stages. An eleven-stage pipeline is a process diagram, not a pipeline. Every stage past seven cuts update discipline; deals get parked wherever the rep last remembered. If a stage does not change your forecast probability, it is not a stage.
- Stage = activity confusion. "Sent follow-up email" and "Left voicemail" are things the seller did, not states the buyer is in. Activities belong on the timeline (in Relm,
POST /v1/activities, backdatable viaoccurred_at); stages record buyer commitment. - Parking-lot stages. "Nurture", "On hold" and "Future" inside the pipeline are where deals go to die uncounted. Close them Lost with reason
timingand let a re-engagement sequence bring them back as new deals. - No mandatory loss reason. A Lost column without reasons is a graveyard without headstones. Five reasons are enough: price, competitor, timing, no budget, went dark.
Once stages mean something, moves become triggers worth automating - Relm fires a deal.stage_changed event on every move, which is what the stage-change playbooks build on.
The artifact: pipeline JSON
This payload is valid against Relm's POST /v1/pipelines as-is - key, name, is_default, and an ordered stages array of {key, label} objects (plain stage-key strings also work). The response is a pl_-prefixed pipeline object with stage IDs and ordinals. The same structure maps cleanly onto any CRM API with named stages.
{
"key": "saas_sales",
"name": "SaaS Sales",
"is_default": true,
"stages": [
{ "key": "lead", "label": "Lead" },
{ "key": "qualified", "label": "Qualified" },
{ "key": "demo", "label": "Demo" },
{ "key": "proposal", "label": "Proposal" },
{ "key": "negotiation", "label": "Negotiation" },
{ "key": "won", "label": "Won" },
{ "key": "lost", "label": "Lost" }
]
}
One-line agent prompt: "Create this pipeline in Relm via POST /v1/pipelines, make it the default, and list my existing pipelines so I can migrate open deals into the closest matching stage."
Apply it with your agent
If your agent speaks MCP (Claude, or anything MCP-capable), point it at https://api.relmcrm.com/mcp with a bearer key and paste:
Connect to the Relm MCP server. Then:
1. Call relm_describe_schema and list my current pipelines.
2. Create a pipeline with create_pipeline using exactly this spec:
key "saas_sales", name "SaaS Sales", is_default true, stages in order:
lead, qualified, demo, proposal, negotiation, won, lost
(labels: Lead, Qualified, Demo, Proposal, Negotiation, Won, Lost).
3. Read back the created pipeline and confirm the stage order matches.
Use my test key first; only repeat on live after I confirm.
Over REST it is a single call. Rehearse with a relm_test_ key - test mode is free, unlimited, and invisible to live data - then re-run with relm_live_:
curl https://api.relmcrm.com/v1/pipelines \
-H "Authorization: Bearer relm_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: saas-pipeline-v1" \
-d '{"key":"saas_sales","name":"SaaS Sales","is_default":true,"stages":[{"key":"lead","label":"Lead"},{"key":"qualified","label":"Qualified"},{"key":"demo","label":"Demo"},{"key":"proposal","label":"Proposal"},{"key":"negotiation","label":"Negotiation"},{"key":"won","label":"Won"},{"key":"lost","label":"Lost"}]}'
The Idempotency-Key header makes the call safe to retry. From there, deals default into this pipeline's first stage, and stage moves are validated against these seven keys - an invalid stage returns the valid options in the error body. Full reference in the docs; if the agent itself is new to CRM work, start with how to give your AI agent a CRM. To add SaaS-specific fields (MRR, plan, renewal date) on top of the pipeline, use the SaaS CRM data model.
FAQ
How many stages should a B2B SaaS sales pipeline have?
Five to seven, including the two terminal stages Won and Lost. This template uses seven: Lead, Qualified, Demo, Proposal, Negotiation, Won, Lost. Fewer than five and you lose forecast resolution; more than eight and reps stop updating stages, which is worse than having no pipeline at all.
What is an exit criterion in a sales pipeline?
A verifiable fact about the buyer that must be true before a deal advances to the next stage - for example "proposal delivered and buyer confirmed the evaluation timeline". Exit criteria describe buyer state, never seller activity, so two people (or an agent) auditing the same deal reach the same stage.
Should Won and Lost be pipeline stages?
Yes. Keeping Won and Lost as terminal stages in the same pipeline means every deal that ever entered has a final state, so stage-to-stage conversion and win rate are computable from the pipeline itself. Require a loss reason on every move to Lost or the Lost column teaches you nothing.
What are typical stage-to-stage conversion rates in B2B SaaS?
For a demo-led motion at mid-market ACV, roughly: Lead to Qualified 25-40%, Qualified to Demo 50-70%, Demo to Proposal 40-60%, Proposal to Negotiation 60-80%, Negotiation to Won 70-85%, and an overall Qualified-to-Won win rate of 20-30%. These are directional ranges that shift with ACV and channel - use them to spot outliers in your own funnel, not to grade reps.
Can I use this pipeline template without Relm?
Yes. The stages, exit criteria and benchmarks are CRM-agnostic - recreate them in HubSpot, Pipedrive or a spreadsheet. The JSON artifact maps to any CRM API that supports named stages. Relm is simply the fastest way to apply it: one POST /v1/pipelines call or one sentence to an MCP-connected agent, free on 1,000 requests a month.
Ship this pipeline in one call
1,000 requests a month on the Free plan, no card. See pricing.
Start free →