CRM
BlockProA sales pipeline: open value by stage, the deals in it with filtering and sorting, the win rate and cycle length, and the last few touches.
- SaaS
- 12 components
- 1 file
Pipeline
What is open, what closed, and what moved.
Open pipeline
Open pipeline: $590,000, up +15.2% vs last period
Closed won
Closed won: $186,000, up +13.4% vs last period
Win rate
Win rate: 34%, up +17.2% vs last period
Sales cycle
Sales cycle: 31 days, down -13.9% vs last period
By stage
Where the open value sits.
- Lead$84,000
- Qualified$142,000
- Proposal$236,000
- Negotiation$128,000
- Lead6 deals · $84,000
- Qualified4 deals · $142,000
- Proposal3 deals · $236,000
- Negotiation2 deals · $128,000
Deals
8 open deals.
8 deals match the filter.
| Open | |||||
|---|---|---|---|---|---|
Acme Corp Dana Whitfield | Proposal | $120,000 | PNPriya Nair | ||
Northwind Traders Miguel Santos | Negotiation | $88,000 | SOSam Okafor | ||
Globex Lee Tanaka | Proposal | $76,000 | PNPriya Nair | ||
Initech | Qualified | $54,000 | SOSam Okafor | ||
Umbrella Health Rosa Diaz | Negotiation | $40,000 | ABAisha Bello | ||
Stark Logistics | Qualified | $38,000 | ABAisha Bello | — | |
Wayne Foods Terry Osei | Lead | $24,000 | PNPriya Nair | — | |
Hooli | Lead | $12,000 | SOSam Okafor | — |
Recent activity
The last few touches, newest first.
Called Dana Whitfield at Acmecall
Pricing questions on the enterprise tier. Sending a revised proposal today.Demo with Northwind Tradersmeeting
Security review scheduled for next week.Emailed Globexemail
Sent the SOC 2 report.Note on Initechnote
Champion moved teams; need a new sponsor.
A still, rendered at build time from the same story the tests run. The block itself is interactive; the copy that runs is the one the CLI installs.
pnpm dlx @dowel-ui/cli add crmThis is a Pro block.
The preview is the real block, rendered from its own story — a still of it, not a copy of it. The source is installed by the CLI once this machine is signed in with a licence key — dowel login checks the key against the registry before storing it — and lands in your project as a file you own, exactly like a free block.
Registry name: crm
<CrmBlock>
| Prop | Type | Default |
|---|---|---|
deals (required) | CrmDeal[] | — |
pipelineValue (required)Open pipeline, as a number. Formatted by | number | — |
stages (required) | CrmStage[] | — |
wonValue (required)Closed-won in the period. | number | — |
actions | ReactNode | — |
activity | CrmActivity[] | [] |
comparisonLabel | string | "vs last period" |
cycleDaysAverage days from open to close. Lower is better. | number | — |
description | string | "What is open, what closed, and what moved." |
formatMoneyFormats every amount. The currency is a presentation choice, so it is yours. | (value: number) => string | (value) => defaultMoney.format(value) |
onNewDeal | () => void | — |
onOpenDealOpens a deal. When omitted, a deal with an | (deal: CrmDeal) => void | — |
previousCycleDays | number | — |
previousPipelineValue | number | — |
previousWinRate | number | — |
previousWonValue | number | — |
title | string | "Pipeline" |
winRateShare of closed deals that were won, 0–1. | number | — |
className | string | — |