$ man clay-wiki/crm-lookup-first

Integrationsbeginner

CRM Lookup First (Never Skip This)

The trust-killing mistake most GTM engineers make on day one

Clay tool avatar

The Cardinal Rule

Before you build anything — before enrichment, before scoring, before personalization, before campaign routing — look up your CRM. Check if the contact already exists. Check if the company already has an open opportunity. Check if someone on the sales team is already working that account. This is not optional. This is the first step. Every time. No exceptions. Sending leads that are already in the pipeline is the single fastest way to lose trust with a partner or sales team. I've seen it destroy relationships. Someone's working a deal with Microsoft for 6 months, and you send an automated cold email to their champion. Game over.
PATTERN

The Lookup Pattern

The pattern is simple but non-negotiable: (1) In your Clay table, add a HubSpot (or Salesforce) lookup column. (2) Look up by email first. If no match, look up by domain. (3) Check the response: does a contact record exist? Does a company record exist? Is there an open deal or opportunity? (4) Add a formula column: if CRM_match = true, flag as "Already in CRM — DO NOT ENRICH." (5) Filter your enrichment columns to only run on rows where CRM_match = false. This means your enrichment credits only get spent on net-new contacts. Your campaign only targets people who aren't already being worked. Your partner's sales team never gets an angry email from a prospect saying "I just got a cold email from your company when we're literally in contract negotiations."
PATTERN

What to Check in the CRM

A basic "does this email exist?" check isn't enough. Check these fields: (1) Contact exists — someone has this person in the CRM. (2) Company exists — the domain is already a known account. (3) Deal/Opportunity status — is there an open deal? A closed-won deal? A closed-lost from this quarter? (4) Owner — who owns this account? If it's the partner's top rep, absolutely do not touch it. (5) Last activity date — if someone contacted this person in the last 90 days, back off. Each of these changes your routing logic. Contact exists + no open deal = maybe re-engage through a different channel. Open deal = hard exclude. Closed-won = upsell campaign, not cold outreach. Closed-lost recently = wait 6 months.
PATTERN

The Domain-Level Check

Email-level lookup catches individual contacts. Domain-level lookup catches entire accounts. You need both. Here's why: your list might have sarah@acme.com, but the CRM has john@acme.com with an open $500K deal. Email lookup misses it because Sarah isn't in the CRM. Domain lookup catches it because acme.com has an active opportunity. Always run both: (1) Lookup by email for exact contact match. (2) Lookup by domain for account-level match. (3) If either returns a match, investigate before routing. The domain-level check is especially critical for enterprise accounts. One wrong email to a Fortune 500 account that's in active negotiations can blow up a deal worth more than your entire campaign.
ANTI-PATTERN

Anti-Pattern: CRM Lookup After Enrichment

I've seen people build the entire enrichment pipeline — email waterfall, persona qualification, scoring, personalization — and THEN add a CRM lookup as the final filter. This is backwards. You've already spent credits enriching contacts you're going to exclude. You've already burned Claygent tokens on personalization for people you can't email. CRM lookup is step one. Not step ten. Run it first. Exclude matches. Then enrich only the net-new contacts. This saves credits, saves time, and most importantly saves relationships.
PRO TIP

When the CRM Data Is Bad

Sometimes the CRM itself is a mess. Duplicate records, outdated contacts, no deal attribution, missing domains. This is still not an excuse to skip the lookup. If the CRM data is bad, your first job is to flag it — "Hey, your CRM has 3 duplicate records for Acme with conflicting deal statuses." That's a service. That's value. Your partner will thank you for surfacing it. What they won't thank you for is ignoring their CRM and sending cold emails to their pipeline. Clean CRM data is a prerequisite for clean campaigns. If the CRM isn't ready, the campaign isn't ready. Full stop.

related entries
Clay to Instantly, HeyReach, and BeyondThe HTTP Column (MX Records, Time APIs, Custom Endpoints)Building Scoring Systems in ClayHubSpot Create, Update, and Lookup Patterns
← clay wikicontent wiki →
ShawnOS.ai|theGTMOS.ai|theContentOS.ai