Step 1: Audit your last 30 closed-won deals
A pipeline is a model of how deals move through your business. The right model is the one that matches what actually happens, not what your old CRM said should happen, and not what a sales book recommended in 2014.
Pull your last 30 closed-won deals. For each, write down the sequence of milestones between first contact and signed contract. Strip the fluff. You will see a pattern emerge, usually 5 to 7 milestones that almost every won deal passed through.
# Example audit table
Deal | First | Replied | Qualified | Demo | Proposal | Closed
--------------|-------------|------------|------------|------------|------------|--------
Acme Corp | 2026-02-01 | 02-03 | 02-05 | 02-10 | 02-14 | 02-22
Beta SaaS | 2026-02-08 | 02-09 | 02-12 | 02-17 | 02-21 | 03-02
Gamma Ltd | 2026-02-15 | 02-15 | 02-19 | 02-25 | 03-01 | 03-12
...
# Median days between stages
First → Replied: 2 days
Replied → Qualified: 3 days
Qualified → Demo: 5 days
Demo → Proposal: 4 days
Proposal → Closed: 8 days
TOTAL CYCLE: 22 daysThat table is your pipeline raw material. The pattern is "First contact → Replied → Qualified → Demo Booked → Proposal Sent → Closed Won." Six stages, 22-day median cycle. Now you can design.
Step 2: Define each stage with entry and exit criteria
A stage without explicit criteria is a vibe. A stage with criteria is a checkpoint. The difference matters because checkpoints can be measured, optimized, and forecast against.
Here is the canonical 6-stage B2B outbound template, with entry and exit criteria for each. Adapt to your motion.
Stage 1: Lead
Entry: contact added to CRM with at least one channel (Telegram, X,
WhatsApp, email).
Exit: first outbound message sent.
Stage 2: Engaged
Entry: contact replied to first outbound message (any sentiment).
Exit: contact answered at least one qualifying question.
Stage 3: Qualified
Entry: contact has confirmed (need ✓) AND (budget signal ✓) AND
(timeline ✓ within 6 months).
Exit: demo or discovery call scheduled on calendar.
Stage 4: Demo Booked
Entry: calendar event created and accepted.
Exit: demo or discovery call completed AND next step set.
Stage 5: Proposal Sent
Entry: written proposal, quote, or pricing document sent.
Exit: contract signed OR explicit no.
Stage 6: Closed Won
Entry: contract signed, payment terms accepted.
Exit: (terminal stage)
Stage 6b: Closed Lost
Entry: explicit no, ghosted >14 days post-proposal, disqualified.
Exit: (terminal stage)The reason these criteria matter is they remove rep judgment from stage transitions. "I think this deal is qualified" is useless. "Need ✓ Budget ✓ Timeline ✓" is testable. The latter forecasts.
Step 3: Calculate real win probabilities
Every stage has a real-data win probability. Calculate it from your audit:
Stage Total entered Closed won P(win | in stage)
Lead 1,200 85 7.1%
Engaged 420 85 20.2%
Qualified 180 85 47.2%
Demo Booked 140 85 60.7%
Proposal Sent 105 85 81.0%
Closed Won 85 85 100.0%These percentages feed your weighted forecast. Notice the drop-off: every team has one or two stages where the conversion cliff lives. In the example, Engaged → Qualified is 43% conversion, the biggest leak. That is where coaching investment should focus.
If you have not run 30+ deals yet, use industry baselines: Lead 5%, Engaged 15%, Qualified 35%, Demo Booked 55%, Proposal Sent 75%, Closed Won 100%. Update with real data after your first 30 won deals.
Step 4: Build the pipeline in CRM Solid
In Pipeline > Edit stages, replace the default template:
- Delete the placeholder stages. Cleaner to start from blank.
- Add your 6 stages in order. For each, set:
- Name (e.g., "Qualified")
- Entry criteria (paste from Step 2)
- Exit criteria (paste from Step 2)
- Win probability % (from Step 3)
- Target days-in-stage (from your median audit data)
- Color (helps visual scanning)
- Save. The pipeline view updates immediately.
Existing deals get auto-migrated by best-match. Some may need manual stage assignment; do that in the next 24 hours so the forecast is accurate.
Step 5: Wire up automation triggers
CRM Solid's pipeline-stage triggers fire on every stage transition. Start with three high-value automations:
Trigger 1: Calendar link on entry to Qualified
Trigger: Deal moves into "Qualified"
Wait: 0 minutes
Action: Send template "qualifier-to-demo-invite" via primary channel
(Telegram / X / WhatsApp / email)
Notes: Personalize with calendar booking link {calendar_url}Trigger 2: Internal nudge on stalled demo
Trigger: Deal in "Demo Booked" for > 48 hours without status change
Wait: 0 minutes
Action: Slack DM to assigned rep:
"Deal {deal_name} at Demo Booked for 48h+ - what is the next
step?"
Notes: Re-send every 48h until status changesTrigger 3: Onboarding kickoff on Closed Won
Trigger: Deal moves into "Closed Won"
Wait: 5 minutes (let the rep update fields)
Action: 1. Notify workspace channel
2. Send template "welcome-onboarding-1" to contact
3. Queue 6-step onboarding sequence
4. Tag contact "customer"
5. Update workspace metricsResist the urge to wire up 20 triggers on day one. Three triggers running well beats twenty triggers running poorly. Add more only after measuring impact for 30 days.
Step 6: Set stuck-deal alerts
Deals slip silently. The single biggest source of missed revenue is deals that were going to close but stalled at a stage and nobody noticed until the quarter ended.
CRM Solid auto-flags stuck deals: any deal in a stage longer than 1.5× the median days-in-stage for that stage. Configure in Settings > Pipeline > Alerts:
- Daily digest to assigned rep: list of their stuck deals with one-click "re-engage" button.
- Weekly digest to sales manager: aggregate stuck-deal count by stage and by rep.
- Real-time alert when a deal value > $X becomes stuck: routed to manager Slack channel.
The standard 7-day stuck-deal playbook:
- Day 1 (stuck flagged): rep reviews last activity, sends a re-engagement message.
- Day 4 (no reply): rep tries a different channel (X DM if email; Telegram if X).
- Day 7 (still no reply): move to "Closed Lost - No Response," tag with reason, return to nurture sequence for 90-day re-engagement.
Step 7: Calculate your weighted forecast
The formula:
weighted_pipeline = Σ (deal_value × stage_probability)
# Example
Lead (10 deals × $10K × 0.07) = $7,000
Engaged (8 × $10K × 0.20) = $16,000
Qualified (5 × $10K × 0.47) = $23,500
Demo Booked (3 × $10K × 0.61) = $18,300
Proposal Sent (2 × $10K × 0.81) = $16,200
TOTAL WEIGHTED PIPELINE = $81,000
# Coverage ratio
weighted_pipeline / monthly_quota
$81,000 / $40,000 = 2.0× coverageThe coverage rule of thumb:
- > 3× coverage: healthy. Even with a bad month, you hit quota.
- 2-3× coverage: at quota with normal conversion. A small miss can drop you under.
- < 2× coverage: insufficient. You either need to generate more top-of-pipeline or improve conversion before missing quota.
CRM Solid's dashboard shows coverage in real time. If it drops below 2×, that is your earliest possible warning; three weeks before the actual revenue miss.
Step 8: Train the team and enforce daily updates
A pipeline is only useful if reps update it daily. Make that the easy path:
- Auto-stage-on-event: when a calendar event is created, move to Demo Booked automatically. When a proposal PDF is sent via the panel, move to Proposal Sent automatically. CRM Solid does both natively.
- Stage-promotion via reply keyword: when a contact replies with "yes" to a calendar-invite template, auto-progress to Demo Booked. Reduces rep clicks.
- Weekly 1:1 anchor: the weekly rep-manager 1:1 starts with the rep's pipeline open. No exceptions. Coaching follows the data, not vice versa.
- Forecasting accuracy as a metric: reps whose monthly forecasts beat by > 20% or miss by > 20% get attention. Accurate forecasters get autonomy; inaccurate ones get coaching.
The pipeline becomes the language. Decisions about coaching, hiring, marketing investment, and product roadmap all stem from it. Build it well, then trust it.