The moat — 23 enrichment stacks shipped

Clay + Attio enrichment, wired the way it should be.

Waterfalls that don't burn credits. Bidirectional sync that doesn't race. Documentation your team actually keeps. Built for RevOps teams who want the stack to work, not another vendor relationship.

Sources
Web form
HubSpot import
LinkedIn list
Apollo / 6sense
Clay table
Waterfall
Tier 1 → Tier 2 → Tier 3
Datagma · Lusha · Apollo · Hunter
Attio
People
Companies
Lists / segments
Score attributes

← Bidirectional sync (Stage / Owner / Custom field updates flow back) ←
The position

Why Clay + Attio is the combination that works

Most RevOps teams pick their CRM first, then shoehorn enrichment around it. You get rigid pipelines, lossy data imports, and a house of cards that collapses the moment your lead model changes. Clay + Attio flips this: you start with a data structure that actually matches your business, then fill it with enrichment that stays clean.

Clay's waterfall logic and provider stacking — pulling from 8+ data sources per row — means your enrichment data arrives in one shape, not fragmented across vendor APIs. Attio's API-first design and custom-attribute fidelity mean that data doesn't get truncated or remapped on arrival. Your formula attributes can compute ICP scores, territory assignments, or buying-stage signals directly from Clay outputs, all inside Attio. No ETL glue. No data gravity pulling toward a third system.

Compare this to the alternatives: Apollo + HubSpot forces you into canned lifecycle stages and loses nuance in every sync. Cognism + Salesforce means paying enterprise weight for RevOps workflows. ZoomInfo prices for outbound blitzes, not teams iterating on their model. We've run 23 implementations on Clay + Attio stacks. In every case the cost-per-decision and time-to-activation beat the orthodoxy. Your data flows in clean, lives in clean, stays clean.

Architecture

How the integration actually works

You pick how data flows between Clay and Attio. Each path has different tradeoffs. Your choice depends on whether you need transformation logic or just a fast, direct pipe.

Clay publishes raw enrichment data — company size, funding, tech stack, decision-maker emails — into Attio. Attio reports back changes: stage updates, owner assignments, close dates. The two systems sync those changes bidirectionally.

Native Clay-Attio integration

The fastest path. Clay launched native Attio support in March 2026. You authorize once in Clay settings, map your enrichment fields to Attio columns, and data flows immediately. Bidirectional sync out of the box. No code. Setup takes 15 minutes. The limit: you can't transform data mid-flight. Best fit for teams enriching contacts into Attio without heavy custom logic.

HTTP API webhook

You point Clay at Attio's HTTP API directly. Each enrichment result triggers a POST to Attio's /people or /companies endpoint. You control the payload — add transformation logic in between, split one Clay record into multiple Attio records, or fan enrichments out to multiple destinations. Full control, no monthly fees beyond Attio. You maintain it; Attio rate limits apply (300 req/min per API key). Best fit: teams with 50+ enrichments/month or custom transformation needs.

Zapier middle layer

Visual, non-technical-friendly. Each action costs a Zapier task; bills add up fast. Attio supports bidirectional sync natively, so Zapier adds latency without benefit. We avoid this for any volume above ~50 records/month.

For most teams, the native integration is the right call. Teams transforming data mid-flight should use the HTTP API webhook.

The moat

The enrichment waterfall — credit math, not magic

A waterfall is a fallback chain. Cheap providers run first; expensive ones only fire if cheap ones return null. Your entire cost structure hinges on hit rate and provider order.

Here's the canonical B2B person enrichment stack. Tier 1starts with Clay's native Find Email by Name + Domain — 0.25 credits per row, 60–70% hit rate. You hit this first on every record. Tier 2 fills the gaps: Datagma, ContactOut, or Dropcontact run next at 1–2 credits each, pushing combined hit rate to 85–90%. Tier 3 is the premium fallback — Lusha, Apollo, Hunter — at 3–5 credits per row. These only execute if tier 2 returned null. Tier 4, the last resort, is manual research or a Claygent agent at 5–15 credits.

The math moves fast. A typical 1,000-row enrichment across email, phone, and company runs $8–15 if your waterfall is built right. The same workflow without a waterfall — calling premium APIs on every row — costs $60–120. A waterfall built wrong burns 10x the credits a waterfall built right does. Same result, same hit rate. Just different cost.

The principle is deterministic. You're not guessing. You know exactly which provider will run for each record based on what tier 1 and tier 2 returned. You can predict cost before you run enrichment. Teams that build waterfalls right ship 10x faster and 10x cheaper than teams that treat enrichment as a black box.

We publish every waterfall we configure as Loom walkthroughs. Your team iterates after we leave. No proprietary voodoo. Just transparent credit math.

TierProviderField returnedCredits / rowHit rate
1Clay nativeEmail, name0.2565%
1Clay company lookupDomain, size, industry0.592%
2DatagmaEmail, LinkedIn1.070% of misses
2DropcontactEmail, phone1.560% of misses
2ContactOutEmail, LinkedIn1.565% of misses
3LushaDirect phone, email3.055% of misses
3ApolloEmail, sequenceable status3.560% of misses
3HunterEmail pattern fallback2.540% of misses
4Claygent agentAnything not above5–15Variable
Workflows

Use cases we ship most often

Your team runs inbound, outbound, and account operations together. Clay plugs into all three. Here are the integrations we build most.

Inbound lead enrichment

Form submission hits your website. Clay catches it, enriches across LinkedIn, company databases, and intent platforms, then lands a 12-field Person record directly into Attio — within 90 seconds. Your SDRs see email, company size, job title, and buying signals before they pick up the phone.

TAM sourcing for outbound

Define your territory once: industry, employee count, geography. Clay queries data providers against those filters and builds a table of 500–5,000 Companies matching your ICP. Push the list into Attio as a fresh campaign. Start dialing the same day.

Intent routing

Clay polls intent platforms — 6sense, Bombora, G2 — for accounts showing buying behavior. Signals land on existing Attio Company records with a score. SDRs get instant Slack alerts when an account hits hot intent. Inbound routing becomes data-driven, not guesswork.

Account scoring

Every Company in Attio gets enriched with 12–15 signals: firmographics (headcount, revenue, industry), technographics (tools they use), and behavioral data (website visits, content engagement). Attio formula attributes compute the score inside the CRM. No external scoring tool tax.

CRM hygiene

A weekly Clay sweep over every Person in Attio. Fill missing emails, titles, and LinkedIn URLs. Detect and flag duplicates. Mark records inactive when they've gone dark for 180+ days. Your database stays clean without hiring a data ops person.

How each one is wired:

Use caseTriggerSourceDestinationCost / 1K rows
Inbound enrichmentForm submission webhookWeb form / TypeformAttio People + Slack alert$8–12
TAM sourcingManual run / monthly cronClay providers + filtersAttio Companies (campaign list)$10–15
Intent routingDaily 6sense / Bombora pollIntent providersAttio Companies + Slack$15–25
Account scoringWeekly cron over Attio CompaniesFirmographic + behavioral providersAttio formula attribute$10–15
CRM hygieneWeekly cron, null-field filterTier 1–3 waterfallAttio People (update only)$5–8
Sales sequence handoffAttio Stage = Working triggerApollo / Lemlist enrichmentLemlist sequence + Attio note$3–6
LinkedIn URL fillDaily cron on Attio PeopleDatagma + Hunter fallbackAttio People (update only)$2–4
Duplicate detectionWeekly cronClay dedup logic on email + domainAttio merge queue$1–2
Reference

The HTTP API write, in one block

What Clay POSTs to Attio when a tier-3 fallback hits. Every record carries a Clay run ID and a source so you can audit the lineage.

# Clay → Attio HTTP API (POST /v2/objects/people/records)
Authorization: Bearer $ATTIO_API_KEY
Content-Type: application/json

{
  "data": {
    "values": {
      "name":          [{ "first_name": "Alex", "last_name": "Reyes" }],
      "email_addresses": [{ "email_address": "alex@northwind.io" }],
      "linkedin":      [{ "value": "https://linkedin.com/in/alexreyes" }],
      "title":         [{ "value": "Head of GTM" }],
      "company":       [{ "target_object": "companies",
                          "target_record_id": "rec_8f2..." }],
      "lead_score":    [{ "value": 84 }],
      "source":        [{ "option": "clay-waterfall-tier-3-lusha" }],
      "clay_run_id":   [{ "value": "run_2026-04-28T11:42:08Z_a7c" }]
    }
  }
}
Edge cases

Common gotchas (and how to dodge them)

We've shipped 23 of these. Here's what reliably breaks if you don't watch for it.

IssueCauseFix
Credit blowout on weekly re-runsClay re-enriches every record on every sync, even ones already enriched. Monthly bill doubles or triples.Add a "only if X is null" filter at the table top. Skip records already enriched within the last N days.
Bulk write-back fails silentlyAttio caps at 5 req/sec per API key. A 200-record write dumps 50 records on the floor with no error.Batch in chunks of 50 with a 10-second pause between. Add a retry loop on 429 responses.
Type mismatch on custom attributesClay returns "Technology" as raw text; Attio expects a single-select option that doesn't exist yet.Pre-create dropdown options in Attio. Map Clay values to exact strings. Add an "Other" fallback for unknowns.
Owner-by-email match failsSarah's Attio email is sarah@company.com; the form returns sarah.smith@company.com. The match fails silently, owner stays unassigned.Add a secondary email lookup at the Clay step. Or fall back to domain matching for owner assignment.
Bidirectional sync race conditionsAttio Stage updates while Clay table is mid-enrichment. Writeback overwrites the fresh Stage with cached data.Use Clay's "Skip if Updated < 1h" filter on writeback. Or push Attio updates as a separate webhook.
Duplicate records on inboundSame person fills out two forms in a week. Clay creates two Attio People records, breaking your ownership.Match on email at the Clay step. If duplicate, update existing record instead of creating new.
Engagement

What we ship, end to end

You get a mapped Clay table structure aligned to your Attio data model, a three-tier provider stack budgeted to your monthly credit pool, bidirectional sync via HTTP API or native connector with rate-limiting and retry logic, three to five enrichment workflows wired to your stack (inbound lead scoring, TAM expansion, data hygiene, intent signals, account scoring — you pick), a written runbook with Loom walkthroughs for every workflow, and 30 days of support to tune and troubleshoot.

We don't manage your Clay credits month over month — you keep full account ownership. We also don't ghost-write outbound sequences in Lemlist or Instantly; that's your team's voice, not ours. What we do is architect the plumbing so your sales and marketing tools talk cleanly, data stays fresh, and your team can focus on conversations instead of data ops.

This ships as part of our Migration + Wire tier ($7,500) when paired with an Attio migration — or as a standalone Clay+Attio engagement starting at $4,500. Already migrating from HubSpot? See the HubSpot to Attio migration page. Starting fresh with Attio? Check Attio implementation.

FAQ

Clay + Attio questions we get on every call.

Don't see yours? Get a fixed quote and ask in the notes.

Does Clay natively integrate with Attio?+
Yes — Clay launched a native Attio integration in March 2026. For most teams that's the right path: bidirectional sync, no glue code, 15-minute setup. We use the HTTP API webhook approach instead when you need to transform data mid-flight or fan an enrichment out to multiple destinations. We pick the right one for your stack on the discovery call.
What does a Clay + Attio implementation cost?+
Standalone Clay+Attio engagements start at $4,500. Bundled with an Attio migration as part of our Migration + Wire tier, the total is $7,500. Both are fixed-price after a scope form. Clay credits are separate — typical B2B SaaS workspace burns $200–600/month depending on volume. We size the waterfall to your monthly credit pool.
Do we actually need an agency, or can we DIY this?+
DIY works if you have an engineer who can own the integration and someone who knows Clay waterfall logic well enough to avoid credit blowouts. Most teams discover the cost isn't dollars — it's the 3–4 weeks of debugging, then six months of "why is this enrichment burning credits?" We've shipped 23 of these. We compress setup to 1–2 weeks and hand you a runbook so you stay independent after.
How long does a full Clay + Attio setup take?+
1–2 weeks for a standard implementation: architecture (2–3 days), waterfall + sync wiring (3–5 days), QA and team handoff (3–5 days). Inbound-only setups can compress to 3–5 days. Cutover is non-blocking — we wire Clay alongside your existing stack, then switch traffic when you're ready.
How much do Clay credits actually cost, and what should we budget?+
A typical 1,000-row B2B person enrichment runs $8–15 if the waterfall is built right, $60–120 if it isn't. For a B2B SaaS refreshing 50K prospects monthly, expect $200–300/month. Inbound-only volume (5K/month) is closer to $50–75. We size the tables to your actual workflow on the discovery call.
Isn't Clay basically the same as Apollo?+
No. Clay is an enrichment and workflow platform — you build custom data pipelines that pull from many providers, then route the output anywhere. Apollo is a contact database plus sequencing engine. They're complementary, not competitive. Plenty of teams use both: Apollo as the outbound delivery layer, Clay as the data and routing layer feeding Attio.
Who owns the Clay tables after launch?+
You do. Full ownership transfers at handoff — Clay account, table structure, runbook, Loom walkthroughs of every workflow. We don't gatekeep. The 30-day support window covers tuning and edge cases at no extra cost. If you want us back later for new workflows, that's a separate fixed-price engagement.

Stop burning credits. Wire it right.

Twenty minutes on a screen-share. We'll scope your Clay + Attio stack and send a fixed quote within 24 hours. No deck, no pitch.