GTM plays/Play 24
Play 24 · Outbound · Inbound

CRM Hygiene

CRM Hygiene is a seven-step outbound and inbound play for your CRM, from “Audit, read-only” to “Keep it on”. It uses HubSpot, Salesforce, Clay, Explorium, Prospeo and five more tools.

Motion
Outbound, Inbound
Channel
CRM
Steps
7
Tools
10

The workflow

Play 24

CRM Hygiene

1Audit, read-only
Snapshot and fill rates0 records written
TitleLinkedInCountryEmail validityPhone validitySegment

Export first, measure every field, and trace which integration created each record.

Export
HubSpotSalesforce
2Detect the dirty sets
Dirty setFix
Duplicate person or company→Merge, survivor picked by rule
Contact not linked to its account→Link to the account
Job changer→New contact, old one marked gone
Bounced email or dead number→Replace and verify
Missing fields→Fill blanks only
Lead with no account→Match on domain
3Match duplicates carefully
Gate1
Same company domain

A name match only counts when the domain matches too.

× Different people
Gate2
Not a shared key

A switchboard number or a common firm name is never the key.

× Shared line
Gate3
Not a role inbox

A person's name stamped on info@ is a field to fix, not a merge.

× Fix the field
4Approve, back up, then write
Owner approves the exact listYes unlocks the write
Write unlocked

Every change is logged with its old value, so any field can be restored.

5Fill blanks, catch job changers
Enrichment waterfall

Only the misses move on. Fill blanks, never overwrite a value someone set on purpose.

Profile
Explorium
Email
ProspeoFindymail
Verify
BounceBan
Phone
Twiliolookup, dead numbers cleared
Job changers

Current-employer scan, customers first. The same company under another domain is not a move.

Scan
ClayLinkedIn
Create
New contact, history kept
6Keep it on
Same rules, every new record
New inboundRep-added recordsJob-change signalsWeekly sweep
Report
Slack
A CRM that stays clean, with every change undoable
The stackHubSpotSalesforceClayExploriumProspeoFindymailBounceBanTwilioLinkedInSlack
Oriel · GTM plays libraryOriel
Open full size
The diagram as text
  1. 1

    Audit, read-only

    Snapshot and fill rates (0 records written): Title, LinkedIn, Country, Email validity, Phone validity and Segment. Export first, measure every field, and trace which integration created each record. Export: HubSpot and Salesforce.

  2. 2

    Detect the dirty sets

    Dirty set → Fix

    • Duplicate person or company → Merge, survivor picked by rule
    • Contact not linked to its account → Link to the account
    • Job changer → New contact, old one marked gone
    • Bounced email or dead number → Replace and verify
    • Missing fields → Fill blanks only
    • Lead with no account → Match on domain
  3. 3

    Match duplicates carefully

    Gate 1: Same company domain. A name match only counts when the domain matches too. Rejected: Different people.

    Gate 2: Not a shared key. A switchboard number or a common firm name is never the key. Rejected: Shared line.

    Gate 3: Not a role inbox. A person's name stamped on info@ is a field to fix, not a merge. Rejected: Fix the field.

  4. 4

    Approve, back up, then write

    The change set: Saved as a list view or report the owner can open. Tool: Salesforce.

    Backup export: Every record in the change set, before anything moves. Tool: HubSpot.

    Labeled connection: Then.

    Owner approves the exact list (yes unlocks the write)

    Write unlocked: Every change is logged with its old value, so any field can be restored..

  5. 5

    Fill blanks, catch job changers

    Enrichment waterfall: Only the misses move on. Fill blanks, never overwrite a value someone set on purpose. Profile: Explorium. Email: Prospeo and Findymail. Verify: BounceBan. Phone: Twilio and lookup, dead numbers cleared. Tool: Clay.

    Job changers: Current-employer scan, customers first. The same company under another domain is not a move. Scan: Clay and LinkedIn. Create: New contact, history kept.

  6. 6

    Keep it on

    Same rules, every new record: New inbound, Rep-added records, Job-change signals and Weekly sweep. Report: Slack. Tool: Slack.

    Outcome: A CRM that stays clean, with every change undoable. Tools: HubSpot.

Feedback loop: The weekly sweep re-runs the audit and posts the fill rates.

The stack: HubSpot, Salesforce, Clay, Explorium, Prospeo, Findymail, BounceBan, Twilio, LinkedIn and Slack.

Open the diagram full size (1180 px wide)

The play in seven steps

  1. 01

    Step 1: Audit, read-only

    The first pass never writes. It measures how dirty the CRM really is, so every later fix has a number behind it.

    • Export a snapshot of HubSpot or Salesforce: contacts, companies, leads, owners and the fields that matter.
    • Measure fill rates on title, LinkedIn, country, email validity, phone validity and segment.
    • Find which integration or import created each record. Duplicates come back unless the source is fixed.
    • Treat default picklist values such as 'pending' as blank.
    • Prove nothing was written: count records last modified by your own user.
  2. 02

    Step 2: Detect the dirty sets

    Messy CRMs break in the same handful of ways, and each one needs its own rule and its own fix.

    • Duplicates: two records for the same person or company.
    • Contacts at a company that has an account but are not linked to it.
    • Job changers: LinkedIn shows a different current employer.
    • Bounced or invalid emails, and phone numbers that no longer connect.
    • Missing fields, and leads with no account.
    • Never size a duplicate problem from a tool's suggestion count. Re-count it per matching rule.
  3. 03

    Step 3: Match duplicates carefully

    Most records that look like duplicates are different people sharing a name, a phone line or a company name.

    • A name match only counts when the company domain matches too.
    • Never key on a shared phone or a company name. Colleagues share a switchboard, and many firms share a name.
    • Blank directory and link-in-bio domains before any domain rule, or unrelated companies merge.
    • A role inbox with a person's name on it is a field to fix, not a merge.
    • Pick the survivor by rule: furthest through the funnel, then has an email, then most recently active.
  4. 04

    Step 4: Approve and back up before anything writes

    Nothing touches the CRM without a human yes and a way back.

    • Take a backup export of every record in the change set.
    • The CRM owner approves the exact list, as a saved list view or report.
    • Check the workflows, validation rules and two-way syncs that will fire on the write.
    • Estimate enrichment credits before the run.
    • Log every change with its previous value before it is written, so any field can be restored.
  5. 05

    Step 5: Fill the blanks with a waterfall

    Enrichment fills what is missing and leaves alone what someone entered on purpose.

    • Clay runs the providers in order: Explorium for title, LinkedIn and country, then Prospeo and Findymail for email.
    • Only the misses move to the next provider.
    • BounceBan verifies every email before it lands. A Twilio Lookup clears phone numbers that are disconnected or invalid.
    • Fill blanks only. The exceptions: bad emails and dead numbers get replaced, and job changers get a new contact.
  6. 06

    Step 6: Catch the job changers

    A contact who left is still worth something: the history stays, and the person becomes a lead at the new company.

    • Scan current employers for the records that matter, customers first, through Clay and LinkedIn.
    • Check the new company is not the same company under another domain or another account record before moving anyone.
    • Create a new contact at the new company and mark the old one as gone. Never overwrite the old record.
  7. 07

    Step 7: Keep it on

    A cleanup decays the day it ends. A pipeline every new record runs through does not.

    • New inbound leads, records reps add by hand and job-change signals all run through the same rules.
    • A weekly sweep re-checks fill rates, bounces and dead numbers.
    • Post the weekly numbers and anything held for review to Slack.

Tools used

The ten tools this play names. Each links to the other plays that use it.

Related plays

Play 12

Contact Data Refresh Before Every Send

1Pull everyone about to be contacted
Contacts queued for next week's sendsLists and sequences
What can have gone stale
JobCompanyWork emailMobileLinkedIn URLTitle
2Check each field against a live source
Still at the company?Job change

Compare the current LinkedIn role with the CRM record.

Check
LinkedInApify
Email still delivers?Verify

Re-verify on send week, not on the day it was found.

Verify
BounceBanZeroBounce
Number still live?Line type

Look up carrier and line type, drop disconnected numbers.

Check
Twilio
3Decide what each record needs
FindingAction
Left the company→Find the replacement, follow the person
Email risky or invalid→Find a new email, else LinkedIn only
Title changed→Re-score, maybe a new angle
Number dead→Remove it from call lists
All still true→Send as planned
4Fill the gaps
Replacement at the account

The new person in the same seat inherits the account context.

Find
ApolloClay
Email
FindymailProspeo
The mover at the new company

A past champion who moved is often the warmest lead you have.

Track
LinkedIn
Mobile
FullEnrich
Gate1
Only verified records go out

Anything still unverified is held for the next cycle.

× Unverifiedheld, rechecked next week
Every send goes to a real person in the right seat
The stackHubSpotLinkedInApifyBounceBanZeroBounceTwilioClayApolloFindymailProspeoFullEnrichSmartlead
Oriel · GTM plays libraryOriel
Play 12Outbound · ABM

Contact Data Refresh Before Every Send

4 steps · Email, LinkedIn, Call, CRM

+6 more
Play 22

Signals in the CRM, with Decay

1Catch signals, each with a date
Signals on your target accountsDated or dropped
Job postsFundingTech stackExec movesSite visitsPost engagement

Every signal carries a date, a one-line summary and the source URL.

Detect
ClayClaude CodeTrigify
2One CRM record per signal
Signals custom objectLinked to the company
TypeDateSummarySource URLWeight
In
HubSpotSalesforce
Rollup
Count, last signal date, priority score
3Score it, then let it fade
Priority score

Each signal adds its weight, then decays on its own curve. A new signal lifts the score again.

Config
Weight and decay rate per type, kept in a table
Each signal hasIt controls
Decay window→Ranking and queue order
Copy window, shorter→Whether copy may name it
Hard hide, about 6 months→Whether it shows at all
Intent topics→The subject chosen, never stated
4Thresholds move accounts both ways
Warm

Watched, no outreach yet.

HotNow

The owner works it today.

Cold

Decayed out on its own.

5Hot account: committee, brief, alert
Buying committee

Every buyer at the account, checked and pushed to the CRM.

Source
AI Ark
Email
ProspeoFindymail
Job change
LinkedIn
Verify
BounceBan
Brief and alert

Why it is hot, written only from copy-safe signals, plus a task for the owner.

Brief
Claude
Task
HubSpot
Alert
Slack
A target list that re-ranks itself every morning
The stackClayClaude CodeTrigifyHubSpotSalesforceAI ArkProspeoFindymailLinkedInBounceBanSlackClaude
Oriel · GTM plays libraryOriel
Play 22ABM · Outbound

Signals in the CRM, with Decay

6 steps · CRM, Email, LinkedIn

+6 more
Play 11

Closed-Lost Revival

1Pull closed-lost deals
Closed-lost dealsWhy they said no
Loss reasonClose dateChampionBlocker

Accounts that became customers since, or have another open deal, are left out.

From
HubSpotSalesforce
2Wait a window set by the loss reason
Lost becauseCheck again
Timing→Next quarter
Budget→Next budget cycle
Went with a competitor→Ahead of their renewal
Missing feature→When it ships
3Check what changed, and who is still there
What changed?
New decision makerFundingTech stack changeLoss reason resolved
Find
ClayExplorium
Why now
Claude
Still there?Freshness check

Every contact from the old deal. A champion who left goes to champion tracking at the new company.

Check
LinkedIn
New
ProspeoFindymail
Verify
BounceBanon send day
4Re-score the account
Gate1
Something real changed

More changes and a resolved loss reason score highest. Nothing new means no outreach.

× No changeBack to the window
5Re-engage on what changed
“What changed since we spoke”
Deal reopened, linked to the old one
The stackHubSpotSalesforceClayExploriumClaudeLinkedInProspeoFindymailBounceBanHeyReachNooksWhatsAppTwilioSmartleadSlack
Oriel · GTM plays libraryOriel
Play 11Outbound

Closed-Lost Revival

7 steps · Email, LinkedIn, Call, WhatsApp, SMS, CRM

+9 more

All GTM plays

Work with us

Have us run this play

Tell us what you are trying to hit this quarter, and we will suggest where to start.

Oriel

Oriel runs the go-to-market work behind growing B2B tech teams.

Talk with an operator

Find your next pipeline opportunity.

Explore
Resources
Services
Get in touch
Founder of Oriel
Ashwanth SFounder
Book a call
Explore AI summary