A CSM called me last week. One of her happiest customers had just received a cold outbound email from her own company’s SDR pitching the product the customer was already paying for. The email referenced the customer’s visit to the pricing page. The customer had been on pricing to check their own plan, not to evaluate.
The customer forwarded the email to the CSM. Then to the account executive who had closed the deal a year ago. Then to the AE’s manager. Three levels of internal awkwardness before the workday ended.
This is the exclusion problem. The moment you turn on visitor identification, every existing customer, every former customer, every competitor, every partner, and every job applicant starts generating alerts. Without exclusions, your sales team will contact all of them. Your credibility does not survive that, and neither does the trust with your CSM team.
This post is the full exclusion and suppression playbook. I will call out specifically where Leadpipe’s native feature differs from alternatives like RB2B, where suppression simply is not supported at the tool level.
The answer up front
Exclusion is not an afterthought. It is the first thing you configure, before the first webhook is wired up, before the first Slack alert is routed.
The exclusion layer has four lists:
| List | What it blocks | Owner |
|---|---|---|
| Existing customers | Active paying accounts | CS / RevOps |
| Former customers / churned | Known churn, re-engage through CS only | CS / RevOps |
| Competitors | Known competitor domains | Marketing / Sales |
| Partners, agencies, job seekers | Domains and free-mail patterns | Sales Ops |
Every one of these lists should filter identified visitors before they reach any outbound sales workflow. Not after. Not alongside. Before.
Why this is a Leadpipe differentiator
Leadpipe supports suppression and exclusion natively. You upload a domain list inside the dashboard, and those domains are removed from your identified-visitor stream before the data ever reaches your CRM or Slack alert.
This is a documented gap versus several popular alternatives. RB2B, as one example, does not offer a built-in suppression feature at the tool level. You identify everyone, including your own customers, and then you are responsible for filtering downstream. That means every new integration, every new alert workflow, every new sequence, has to re-implement the exclusion logic from scratch, and any gap anywhere in the stack produces the exact kind of incident I described at the top of this post.
With Leadpipe, exclusions live in one place and apply uniformly. See the RB2B alternatives post for the broader comparison and leadpipe vs RB2B for the head-to-head.
The playbook
Step 1: Pull the “existing customers” list from your CRM (15 minutes)
Open your CRM. Pull every account with a status of “paying customer,” “active subscriber,” “live contract,” or whatever your flag is. Export to a CSV of email domains.
For a typical B2B SaaS company with 200 to 2,000 customers, this is a 5,000 to 20,000 domain list (most accounts have multiple email domains).
The list must include:
- The customer’s primary corporate domain (acorntech.com)
- Subdomains and subsidiary brands where they matter (eu.acorntech.com)
- Parent companies where a relationship rolls up (if Acorn is owned by MegaCo, consider MegaCo)
One decision to make: do you exclude the entire parent company of a customer? If you sell into a division, you might still want to prospect into another division. Default to excluding the whole parent, and add divisional exceptions only deliberately.
Step 2: Pull the churned / inactive list (10 minutes)
Former customers deserve a different treatment than active ones. You want to know when they visit (signal), but you do not want a cold SDR to re-approach them. The right flow is:
- Churned < 12 months: route visit to the CSM or AE who last owned the account
- Churned > 12 months and cold: eligible for re-engagement, but through a win-back sequence, not the standard outbound
Upload the churned list with a tag like churned_within_12mo and apply different downstream routing.
Step 3: Pull the competitor list (5 minutes)
Every vendor in your competitive set, plus analyst firms that cover your space, plus agencies that resell or partner with your competitors.
You are not blocking the identification (you still want to know when a competitor product manager reads your case studies, that is actionable intel for your marketing team). You are blocking the sales outreach. Route competitor visits to a separate “competitive intel” Slack channel read by product / marketing, not sales.
See orbit competitive intelligence for the broader playbook on competitive signal.
Step 4: Pull the partner, agency, and job-seeker patterns (10 minutes)
A less obvious list.
- Partner and agency domains: firms you work with, firms who resell for you, consulting shops that have reached out
- Staffing firm patterns: domains ending in
.recruiting, or known recruiter firms - Known personal-email patterns:
@gmail.com,@yahoo.com,@icloud.com,@outlook.com, etc.
Personal email patterns are noisy. You probably don’t want to exclude them outright, but you definitely don’t want them in Tier 1 outreach. Route them to a Tier 3 or Tier 4 nurture at most.
Step 5: Upload to Leadpipe (2 minutes)
In the Leadpipe dashboard, under Suppression Lists, upload each list with a tag. The exclusion applies to every downstream destination, including webhooks, Slack, native CRM integrations, and Zapier.
Suppression lists in Leadpipe:
customers_active (5,400 domains) - block all
customers_churned_recent (820 domains) - tag, route to CSM
competitors (42 domains) - tag, route to intel
partners_agencies (115 domains) - tag, skip sales
jobseeker_patterns (11 patterns) - tag, low priority
Every identified visitor runs through these lists first. What the rest of your stack sees is pre-filtered.
Step 6: Build the refresh cadence (recurring)
Customer lists change weekly. The exclusion file needs to change with them.
- Every Monday, pull a fresh export from the CRM
- Diff against last week’s file
- Re-upload to Leadpipe
A simple script or Zapier workflow automates this. If nothing is automated, a weekly manual re-upload is acceptable. Monthly is not.
Step 7: Audit downstream for leaks (quarterly)
Even with native exclusion at the Leadpipe layer, audit your downstream systems. Check that:
- Your CRM does not have a separate unfiltered import from another source
- Your Zapier workflows do not bypass the suppression list
- Your outbound sequences do not enroll contacts tagged as
customer
The audit takes an hour. Do it every quarter. I have seen companies where the exclusion was clean in Leadpipe but a parallel Apollo import was dumping customer contacts into the same outbound sequence.
Sample exclusion rule syntax
In Leadpipe’s dashboard, suppression lists accept domains and patterns. In a webhook-processing layer (Zapier, n8n, custom code), your filter looks like this pseudo-logic:
def should_enroll_in_outbound(visitor):
if visitor.email_domain in CUSTOMER_DOMAINS:
route_to("csm_alerts")
return False
if visitor.email_domain in CHURNED_DOMAINS:
route_to("winback_queue")
return False
if visitor.email_domain in COMPETITOR_DOMAINS:
route_to("competitive_intel")
return False
if visitor.email_domain in PARTNER_DOMAINS:
route_to("partnership_team")
return False
if matches_personal_email_pattern(visitor.email):
route_to("tier_3_nurture")
return False
return True
If Leadpipe’s native suppression has already filtered out the first four buckets, this function becomes simpler: you are only catching the personal-email pattern and handling Tier routing.
Common failure modes
Exclusions maintained in two places. Once in Leadpipe, once in Outreach, once in HubSpot. They drift. Centralize at the Leadpipe layer.
Forgetting subsidiaries. You excluded acorntech.com but not eu.acorntech.com. Their EU team visits and gets emailed. Include subsidiaries and regional domains.
Never refreshing. You uploaded the list 6 months ago. 40 new customers have signed since. They are all being treated as prospects. Weekly refresh is the minimum cadence.
Over-exclusion. You excluded your parent company’s entire corporate group, and you are missing prospect divisions. Review list scope quarterly.
No churned handling. Churned customers are either ignored (bad) or re-prospected as if they are fresh (worse). Route them to CS for a deliberate win-back motion.
Relying on a tool without native suppression. If your visitor-ID tool does not support native exclusions, you must implement the filter in every downstream workflow. The operational tax is real. See leadpipe vs competitors.
Competitor list staleness. New competitors appear. Funding announcements, product pivots. Review the competitor list quarterly.
Not logging suppressed visits. Even if you are not emailing a suppressed contact, log the visit. Customer visits are CSM signal. Competitor visits are intel. Partner visits might be a co-sell opportunity. Log all of it, just do not send sales email.
Measurement: how to know it is working
Three things to track:
-
Zero sales emails to active customers. Audit outbound-sent logs against the customer list monthly. The target is zero. One incident is a failure.
-
Suppression hit rate. The percentage of identified visitors that match a suppression list. For a mature SaaS company this is often 15 to 30% of identified traffic. If it is under 5%, your exclusion lists are incomplete.
-
CSM-surfaced customer visits. Every week, your CSM team should be receiving visit signal on their accounts from the customer-suppression routing. If they are not, the routing is broken.
Weekly RevOps audit:
| Check | Target |
|---|---|
| Customer-suppression hit count | Tracked week-over-week |
| Sales emails sent to customer-tagged domains | 0 |
| Competitor visits logged to intel channel | Tracked |
| CSM alerts from customer-visit routing | Tracked |
| Exclusion list last refresh | < 7 days |
Why this matters more for intent-led than lead-led motions
A traditional inbound motion is gated by the form-fill. A customer who fills a demo form gets caught by CRM duplication logic before it lands on an SDR’s desk.
Identification is different. There is no form-fill. There is no manual hand-off moment. The signal flows from pixel to alert to rep in seconds, and the only place to apply exclusion is at the source or immediately downstream.
If you run intent-led outbound without suppression, you will contact your own customers. Not maybe. You will. The only question is whether it is week one or week six. Build the lists first.
Leadpipe identifies 30-40%+ of your US B2B visitors with full contact data on the Pro plan at $147/mo. Native suppression / exclusion lists are included on every plan. No credit card to start the 500-lead trial. Start identifying visitors →