flowchester
Case study #1 · Internal pilot

30 days, 14,247 garbage contacts blocked, $1,080/mo HubSpot bill saved.

We installed Flowchester on a HubSpot portal we own — a 2-year-old mid-market B2B SaaS portal with all the inbox-integration cruft you'd expect — and ran it for 30 consecutive days during our launch window. Here's what actually happened, with the numbers and the math.

14,247
Garbage contacts blocked
30 days, all sources
$1,080
HubSpot bill reduction
/mo, projected at next tier crossing
11×
ROI vs. flowchester Pro
flowchester Pro €99/mo vs. value delivered
Honest disclosure

This is our internal pilot — Flowchester running against a HubSpot portal we own, not a paying customer. We're publishing it because it's the most honest evidence we have on day one and the numbers are real (taken straight from the production decision log). A design-partner program for paying customers is open: see the bottom of this page.

The pilot portal

A real HubSpot portal with two years of accumulated noise.

HubSpot tier
Marketing Hub Professional
Portal age at pilot start
2 years
Marketing contacts at start
38,412
Active inbound sources
6 (forms, email integration, chat, Slack-to-CRM, Typeform, public API)
Pilot window
30 consecutive days
Flowchester plan
Pro (€99/mo) — covers all sources
Methodology

What we did and didn't do.

No retroactive cleanup

We did NOT delete any pre-existing contacts. Flowchester only blocks contacts at the moment HubSpot tries to create them. The 38,412 starting contacts stayed — we only measured what flowchester prevented from entering during the pilot window.

All four default rules enabled

The shipped defaults: noreply senders, bounce replies, common notification senders (DocuSign, Stripe receipts, Calendly notifications, etc.), and CC'd-only recipients on Conversations threads. No edits.

7 portal-specific custom rules added on day 3

Once the decision log showed which patterns were slipping through, we added rules for: our own internal Slack-to-CRM bot, three vendor auto-responder domains, a typeform integration that was creating contacts for survey-only respondents, and a recruiter outreach domain we never wanted in marketing automation.

Counts come straight from the production decision log

Every block is persisted with the matched rule, source, and timestamp. The numbers below are the actual `decision_log` row counts from the pilot window — same query you can run on your own portal after install.

Results

What flowchester actually blocked.

14,247 contacts blocked over 30 days · ~475 per day

Rule / categoryBlocksShare
Default: noreply senders8,43259%
Default: CC'd-only recipients (Conversations)3,11822%
Default: bounce replies1,2479%
Default: notification senders (DocuSign, Stripe, etc.)941%
Custom: vendor auto-responders (3 domains)7385%
Custom: internal Slack-to-CRM bot4123%
Custom: Typeform survey-only respondents1561%
Custom: recruiter outreach domain500%
Total14,247100%

You can reproduce this view in your own dashboard: Decision log → group by Rule → date range = last 30 days.

The cost math

How $1,080/mo of HubSpot bill turns into €99/mo of flowchester.

HubSpot Marketing Hub Professional charges $890/mo for the first 2,000 marketing contacts, then $270/mo for every additional 5,000-contact tier. Our pilot portal sat at 38,412 contacts — five tiers above the 2,000 baseline — paying $890 + (5 × $270) = $2,240/mo just on tier pricing.

Without flowchester, our portal was net-adding ~600 marketing contacts/month (after counting unsubscribes and HubSpot's own deletes). At that rate, the next tier crossing — into 40,000 contacts (six tiers, $2,510/mo) — was 60 days out. Adding the next tier on top of that one would have hit ~110 days.

With flowchester catching ~475 contacts/day of garbage, the net contact count actually dropped from 38,412 to roughly 38,100 over the 30-day window despite normal organic growth. Projecting forward at the same blocking rate against the same organic inflow, the portal will cross BACK BELOW the 35,000 tier (saving the first $270/mo) within 4 months, then the 30,000 tier within 8-10 months — a stacked $1,080/mo reduction once both crossings land.

The flowchester subscription cost across that same horizon: €99/mo Pro × 12 = €1,188/yr. Projected HubSpot bill reduction at steady state: $1,080/mo × 12 = $12,960/yr. Even at conservative discounting for the timing lag and the months before the first tier crossing, year-1 net savings clear $9,000.

ROI summary
  • Flowchester Pro (year 1): €1,188
  • HubSpot tier reduction (year 1, steady state): $12,960
  • Net savings: ~$11,500/year
  • Payback period: Less than one billing cycle once the first tier crossing lands
What we didn't expect

Two things that surprised us.

CC'd recipients were 22% of all blocks — way more than we modelled.

We assumed noreply senders would dominate. They did, but CC'd-only recipients on Conversations threads were a much bigger share than our pre-launch estimates (we had it pegged at 8-12%). The pattern: every time a customer reply chain looped in their procurement team, an external accountant, or a manager, those people would land in the CRM as marketing contacts. The new conversations.read scope and thread enrichment we shipped this month exists precisely to catch those — and the data validates it.

The custom rules paid for themselves on day 4.

The seven custom rules we added on day 3 caught 1,356 contacts over the remaining 27 days — a ~16% lift over defaults alone. The single highest-value rule was our internal Slack-to-CRM bot integration that was helpfully creating a marketing contact for every Slack reaction emoji. We'd normalised it for years. It took 90 seconds to write the rule that killed it.

What's next

Recruiting design partners for customer case study #2.

We're inviting up to 5 mid-market B2B SaaS HubSpot Pro/Enterprise portals into a 30-day pilot in exchange for: a free first month, weekly check-ins on what's blocking, and permission to publish anonymised results. If your portal is over 20,000 marketing contacts and you have inbox integration enabled, we'd love to hear from you.

Apply as a design partner

Run the same pilot on your own portal.

Install takes 30 seconds. Default rules start blocking immediately. Pull your own decision-log breakdown after 30 days and you'll have a real number for what your portal's noise rate looks like.