Case study · SaaS
An outbound engine built from zero: 31 meetings a month, no SDR
31meetings booked a month by month three, up from 6 to 8, without hiring an SDR
- 31 meetings booked a month, up from 6 to 8
- 9.4% reply rate, with a 1.1% bounce rate
- 24 days from kickoff to the first sequence live
- USD 30 of tooling per booked meeting
- Client
- B2B SaaS · about 40 people · USD 18k ACV · 45-day sales cycle
- Industry
- SaaS
- Capabilities
- GTM Strategy, Sales, RevOps & Technology
- Published
- October 15, 2026
The starting point
The company sold only through inbound and referrals, and it needed pipeline it could predict. It had two account executives, no SDR, and a CEO who still closed the largest accounts.
HubSpot ran the sales pipeline, with incomplete data. Salesforce was the system of record for contracts, billing and customer success, and someone fed it by hand after every close. The team's tasks lived in ClickUp, with no link to the pipeline: nothing that happened in the CRM became a task for anyone. Prospecting lists lived in spreadsheets, and each AE prospected their own way, in whatever hours were left.
The mandate was to build an outbound engine from zero that booked qualified meetings predictably, without hiring an SDR, and to leave the sales process documented well enough to run without us in the loop. The agreed deadline: pipeline running within five weeks.
Where the funnel stood, and where it was at month three
| Indicator | Before | Month three |
|---|---|---|
| New meetings a month | 6 to 8, almost all referral and inbound | 31 booked, 25 held |
| Leads that never got a second touch | 60% | Under 5% |
| Open deals without a stage or a next step | 40% | 0%: the CRM blocks it |
| AE hours spent prospecting | 10 to 12 a week each, with no method | None: the time moved to diagnostics and proposals |
| Revenue attribution | None | Every deal carries its source, sequence and segment |
| Ramp of a new AE | 90 days | 30 days, with the playbook and the runbook |
How we ran it
We built in the order the risk demanded: diagnosis before any tool, deliverability before copy, playbook before volume.
- Weeks 1 and 2DiagnoseThe full funnel rebuilt in SQL, the ICP rebuilt from the best customers, and the sales process mapped as it really ran.
- Week 3Deliverability and dataThree secondary domains warming up, the ICP universe sourced and a scoring table that verifies, enriches and ranks every contact.
- Week 4Copy, booking and pipelineSequences written from won calls, a single booking page as the only call to action and a seven-stage pipeline with exit criteria.
- Week 5Automation and go-liveAutomations, the system of record and the weekly dashboard. The first sequence went live on day 24; the first meeting was booked on day 27.
Diagnosis first: the funnel, the ICP and the process
We spent the first two weeks on the whole funnel before opening any tool. The system was designed from three findings, not from the stack.
The bottleneck was the top of the funnel, not closing. We pulled 18 months of HubSpot and Salesforce data into Postgres and rebuilt every stage with SQL, from lead created to closed. Meeting to opportunity converted at 62% and proposal to close at 31%: closing was healthy. The problem was too few meetings coming in and half the leads stalling at first contact. Deals also sat 23 days on average in "Proposal sent", with no follow-up logged in 70% of cases.
The ICP became a score, not a paragraph. We cut the top 20% of customers, by revenue and retention, by segment, size, buyer role, stack and the event that triggered the purchase. Three profiles stood out: scaling companies of 50 to 200 people with a new operations team, bought by the Head of Ops; companies of 200 to 500 people replacing a legacy tool, bought by the RevOps or Finance director; and smaller companies with acute pain and short cycles, bought by the founder. The third closed fast but churned, so it became the lowest priority. Each profile turned into a 0 to 100 score built from firmographics, buyer role and intent signals: open roles in the function, a new funding round, a tool switch, headcount growth.
The process had no stages anyone agreed on. Interviews with both AEs and the CEO, and a week of calls and email, showed no stage definitions, no exit criteria, no owner for follow-up after a proposal and nothing in the CRM that created a task. The buyer pains from won calls became the three copy angles: time lost to manual work, no visibility for leadership, and the cost of a legacy tool.
The diagnosis delivered a funnel baseline (the SQL was reused for the dashboard), an ICP document with scoring and exclusion rules, five bottlenecks ranked by impact on meetings and revenue, and a process map with entry and exit criteria, an owner and an SLA for every stage.
One system, one job per tool
One design rule held everything together: each tool does one thing and hands its result to the next without a human in the middle. The team works in the CRM and in meetings, never in a spreadsheet.
- 01ApolloSources the ICP lists and sends the sequences
- 02ClayVerifies, enriches and scores every contact
- 03SequencesFour touches, one call to action
- 04CalendlyBooks straight into the right AE's calendar
- 05HubSpotRuns a seven-stage pipeline with exit criteria
- 06ClickUpCreates the playbook task at every stage change
- 07SalesforceRecords the account and the contract at close
- Python · webhooks and scheduled jobs move, dedupe and route the data
- Postgres · a daily consolidated copy of every tool: the source of truth for reporting
What each tool owns, and what it deliberately does not do
| Tool | Job | Data it owns | What it deliberately does not do |
|---|---|---|---|
| Apollo | Sourcing and sending | Raw lists, send and reply history | Not a CRM: no deal lives there |
| Clay | Enrichment, scoring and account research | Verified email, score, tier, a one-line account context | Never sends email |
| Calendly | Booking and routing | Meeting, qualification answers, no-shows | Does not hold the deal |
| HubSpot | Sales pipeline and follow-up | Deal, stage, next step, AE activity | Not the source of truth for contracts |
| ClickUp | Playbook task execution | Task, owner, due date, checklist | Holds no customer data |
| Salesforce | Account and contract record | Account, contract, value, dates, renewal | Never used for prospecting |
| Python | Orchestration and rules | Run logs | Holds no business state |
| Postgres | Reporting and analysis | A daily consolidated copy of everything | Never edited by hand |
Four decisions shaped the design:
- HubSpot and Salesforce side by side was the company's reality, not a choice. Each got a single job, sales pipeline versus system of record, and they sync only at closed-won instead of a migration in the middle of the project.
- Apollo both sources and sends. That removed one integration while the channel was being proven, with a dedicated sending tool kept as plan B if deliverability demanded it.
- Clay runs before sending, not after. Poor enrichment means bounces, and bounces burn domains. We treated deliverability as infrastructure, not fine-tuning.
- ClickUp gets a task only when a stage changes. Too many tasks become noise, and noise kills a playbook.
Build and go-live in 24 days
Week 3 went to deliverability and data. Three secondary domains with SPF, DKIM and DMARC, two inboxes each, and 14 days of warm-up before the first send; at most 30 emails per inbox a day, 180 in total, with rotation. The ICP universe in Apollo came to 9,400 accounts. The first cut was 600 accounts a month with three contacts each, the buyer and two influencers. In Clay, a three-provider email waterfall, cascading validation, firmographics, intent signals and a research agent that writes one line on what each account is doing now: 86% of the first batch came out with a verified email. The top 30% by score went into the full sequence with deep personalization, the next tier got segment-level personalization, and the rest waited.
Week 4 went to copy, booking and the pipeline. The copy came from won calls, in the customer's words: three angles, one per profile, with A/B variants of subject and opener, and four touches in twelve days. Every email carried one call to action, a booking page on the company's site with three qualification questions (size, current tool, urgency) and routing to the AE who owns the segment. The HubSpot pipeline was redesigned into seven stages, each with an exit criterion and required fields.
Week 5 went to automation, the record and the dashboard. Python jobs, triggered by webhooks and schedules: a positive reply creates the deal with its source, score and context; a booking moves the stage and creates the ClickUp task; a no-show triggers the rebooking flow; a closed-won deal writes account, contract and value to Salesforce; a nightly job dedupes and fixes the data. Every tool loads into Postgres daily, and one dashboard shows reply rate, positive replies, meetings booked and held, pipeline by stage and revenue by source, all by segment and by sequence.
The engine went live on day 24 with the top tier of the first batch. The first meeting was booked on day 27. At go-live the team had a playbook for every stage, the scoring and exclusion rules, a runbook for the automations and a data dictionary for the database.
Operating it: the playbook the CRM enforces
An engine is worth something only if what it books turns into revenue, so the first three months went to the middle of the funnel. ClickUp creates each stage's task automatically, and HubSpot will not let a deal move until the stage's fields are filled.
The pipeline playbook: exit criterion, follow-up and owner for every stage
| Stage | Exit criterion | Follow-up and SLA | Owner |
|---|---|---|---|
| Meeting booked | Meeting held, or a no-show logged | Reminders 24 hours and 1 hour before; a no-show gets three rebooking touches in five days | System, then the AE |
| Meeting held | Qualification filled in: size, pain, budget, timing, decision-maker | Call summary in the CRM within 2 hours and a recap email the same day | AE |
| Qualified | Diagnostic booked | Booked within 48 hours; two touches in seven days if there is no answer | AE |
| Diagnostic done | Proposal sent | Proposal within 48 hours, with the problem in the client's own words | AE |
| Proposal sent | Negotiation started, or a loss with its reason | Five touches in 14 days: value, social proof, direct question, deadline, close | AE, with an automatic reminder |
| Negotiation | Contract signed, or a loss with its reason | The next step is always dated; an alert after five idle days | AE, with the CEO on large accounts |
| Closed won | Account and contract recorded in Salesforce | Hand-off to customer success within 24 hours, with the full history | System, then customer success |
A weekly cadence keeps it honest. On Monday, a 30-minute pipeline review on the dashboard, with stalled deals and last week's no-shows. On Wednesday, the week's replies get read: negative reasons adjust the list or the copy, and positive replies from outside the ICP become exclusion rules. On Friday, one experiment gets logged with its result, one at a time. Every month, a new batch of 600 accounts, a re-score, inbox rotation and a domain reputation check.
Institutionalizing meant three things in practice. Nothing depends on someone remembering, because the system creates the task or the CRM blocks the next stage. No data is typed twice. And a new AE can run the process from the playbook and the runbook, which took ramp time from 90 days to 30.
The result at month three
By month three the engine booked 31 meetings a month without an SDR, with a 9.4% reply rate and a 1.1% bounce rate. Every figure below comes from the system that owns it: Apollo for sends and replies, Calendly for bookings and no-shows, HubSpot for stages, and Salesforce for revenue.
- 01Contacts sourced1,800 · 600 accounts
- 02Verified email1,548 · 86% coverage
- 03Contacts sequenced1,080 · top two tiers, about 3,560 emails
- 04Replies102 · 9.4%
- 05Positive replies39 · 3.6%
- 06Meetings booked31 · 2.9%
- 07Meetings held25 · 81% show rate
- 08Qualified opportunities18 · 72% of meetings held
- 09Closed won5 a month · 28% win rate, from month four
- USD 324k qualified pipeline a month, 18 opportunities at a USD 18k ACV
- USD 90k new ARR a month from month four
- 96% inbox placement, with 0.08% spam complaints
- 30 days to ramp a new AE, down from 90
The engine is also cheap to run. Tooling costs USD 920 a month, which comes to USD 30 per booked meeting and USD 37 per meeting held. With a quarter of a GTM engineer's time for maintenance, USD 2,500 a month, the fully loaded cost is USD 110 per booked meeting and USD 137 per meeting held.
- Clay (Growth plan)USD 495
- Apollo (two seats)USD 198
- Deliverability warm-up and monitoringUSD 97
- Secondary domains and inboxes (three domains, six inboxes)USD 90
- CalendlyUSD 20
- Hosting for the Python jobs (Railway)USD 20
- TotalUSD 920
- USD 30 of tooling per booked meeting
- USD 110 per booked meeting, with engineering time included
What made the difference
- The order. Diagnosis before tools, deliverability before copy, playbook before volume.
- Deliverability is infrastructure. The 14 days of warm-up felt slow in week three, and they are what kept bounce at 1.1%. Next time we would start warming domains on day one of the diagnosis.
- A smaller, better list won. The top tier, 30% of the list with deep personalization, produced more than half of the meetings.
- Automatic tasks have to be scarce. The first version created a ClickUp task for every activity and the AEs stopped looking. The final one creates tasks only on a stage change and on a no-show.
- Copy written with the AEs, in the customer's words, beat every "creative" variant we tested.
- The process held only when the CRM enforced it. Training did not keep the playbook alive; required fields and exit criteria did.
- One hour a week reading the "no" replies was worth more than any tool tweak.
Capabilities involved
- MotionGTM StrategySales motion design (PLG, SLG or hybrid), ideal customer profile, pricing and packaging, and positioning for digital companies, designed and implemented.
- ConvertSalesSales process, playbooks and enablement for digital companies, designed with your reps, implemented in your CRM and coached in your deal reviews until it holds.
- OperateRevOps & TechnologyRevenue operations, processes, stack, data, automation and applied AI for digital companies: one operating system for marketing, sales and customer success.