Audiences
Unify your CRM, data warehouse, and enrichment data into one persistent profile per contact and account.

Clay Audiences is the unified data layer for your workspace. It combines your CRM, data warehouse, and third-party enrichments into one persistent profile per contact and account, updated in real time.
Use it to build dynamic segments across millions of records, run automated enrichment and signal workflows at scale, and sync results back to your CRM without managing dozens of separate tables.
Setting up Audiences follows four steps:
- Import your data — connect Salesforce, HubSpot, Snowflake, BigQuery, or Databricks, or import from CSV or Clay's people and companies database.
- Create audiences — build dynamic segments using filters to target the right contacts and accounts.
- Enrich and monitor — run bulk enrichments and signals that write data permanently back to each record.
- Write back to your CRM — sync enriched data and segment membership back to Salesforce or HubSpot.
Navigating Audiences
Audiences has two main views for managing your data and segments.
The Audiences page is the home for all your segments. It replaces hunting through the sidebar list.
- Three tabs: segments you created, segments others in your workspace created, and Drafts.
- Each row shows record count, creator, and inline actions to add an enrichment or automation.
- Create new audiences directly from this page.
- Click into any audience to open the table view, where
EnrichandSendare available.
The Data hub is the control center for the data inside your audiences. A header row shows record, field, enrichment, and signal counts with quick-add shortcuts, above tabs for the data types below:
- Fields — a list of all fields with fill-rate indicators. Click any field for a side panel showing fill rate, total records covered, source (Salesforce vs. enriched in Clay), cost, type, field description, export status, and associated enrichments.
- Enrichments — a central list of every enrichment across your audiences, showing cost vs. budget, run status, and which audiences and fields each enrichment covers. From here you can point a single enrichment at multiple audiences at once.
- Signals — the same layout as Enrichments. Add a signal and assign it to multiple audiences from one place.
Importing your data
To add a data source, click Add data from any view in Audiences. This opens the Add data sidebar, where Add source lists everything you can import from.
Most sources open a guided wizard that takes the import one step at a time — CSV file, Clay table, Snowflake, Google BigQuery, and Databricks all work this way. Salesforce and HubSpot open their own source settings panel instead.
You can import data from:
- Salesforce
- HubSpot
- Snowflake
- BigQuery
- Databricks
- CSV
- Clay's people and companies database
Importing from Salesforce
- Click
Add data→Add Source→ select yourSalesforce integration.- If you don't see a Salesforce integration listed, contact your Growth Strategist.
- Click
Add recordsto open theAdd records from Salesforcewizard. - Choose the object you want to import:
Accounts,Contacts,Leads, orOpportunities. Opportunities build on your other Salesforce data, so import Accounts and Contacts first. - Under
Record selection, choose how much of that object to bring in.All recordsimports every record of the object. Each object takes one all-records import — if it already has one, Clay guides you toward a record subset instead.Record subsetimports only the records a SOQL query returns. Enter aSubset name, then write the query as described in Importing a subset of Salesforce records with SOQL below.
- Click
Continue. Clay saves the import as a draft and opens its settings. - Enable
Import syncto continuously import the matching records into Clay Audiences. Imports run incrementally on your plan's schedule, with a full re-import once a week — see CRM sync cadence below. - (Optional) For an Accounts import, enable
Import activitiesto also import tasks and events associated with those accounts. Activities are available on Accounts imports only.- Tasks and Events are automatically linked to the corresponding account records and appear in each account's detail view.
- Common use cases: track customer touchpoints, identify engaged accounts, filter audiences by recent activity.
- (Optional) Click
Editnext toImport record matchingto combine records from multiple sources. See Configuring import record matching for setup details. - Leave
Export syncandCreate new Salesforce recordsoff for now. - In the field mapping section, map your Audiences fields to the Salesforce fields for this object — Clay Companies fields to Account fields, Clay People fields to Contact and Lead fields.
- Use
Auto-mapto automatically match fields, or configure each mapping manually. - The
Scheduled export rulecolumn controls whether Clay writes each field back to Salesforce. The default isNever write— Clay enriches the field in your Audience but won't push it to Salesforce until you update the rule. - Click
Previewto review your mapping before saving.
- Use
- Click
Save and review, thenConfirmto start the initial import. - Repeat the wizard for each additional object you want in Audiences.
- Monitor progress under
Sync historyin Audiences settings, which lists each run and any failures. - If the record count hasn't updated yet, the initial import may still be processing — refresh the page after a few minutes.
- Which fields matter varies by object. On Leads,
Lead Status,Lead Source,Title, andCompanyare common; on Opportunities,Stage,Amount,Close Date, andOwner. - Here is how Clay resolves Salesforce Lead records:
- Automatic Lead-to-Contact merging: When a Salesforce Lead is converted into a Contact in Salesforce, Clay automatically merges the Lead and Contact records into a single person record in your Audiences. This happens under the hood and is not user-configurable — data from both the Lead and Contact is combined and preserved.
- Cross-source matching: Lead records are also deduplicated against Contact records from other sources using a professional profile URL and email. See Configuring import record matching for details.
- Duplicates across Salesforce Leads, Contacts, and other sources count as one person in your Audiences.
- Opportunity imports depend on your Accounts and Contacts imports staying enabled.
- One thing about Opportunity data is worth knowing:
- Opportunity data is associated with your Companies records and becomes available as a filter in your Companies audience.
Why the native connection matters: Standard Clay table imports run full API calls on every sync. The Audiences connection uses incremental syncs — only changed records are processed after the initial import — which means far fewer API calls. If your Salesforce admin has raised API limit concerns, this is the fix.
Importing a subset of Salesforce records with SOQL
A record subset imports only the Salesforce records a SOQL query returns, which is useful when you want part of an object rather than all of it — prospect accounts, contacts in one region, open leads from a recent event. Each object can have several subsets, and every subset keeps its own name, query, field mappings, and sync settings.
- In the
Add records from Salesforcewizard, choose the object, selectRecord subset, and enter aSubset name. Naming it for the filter it applies, like "Prospect accounts", makes it easier to recognize in your source settings later. - Write a raw
SELECTquery underWrite your SOQL query. The query has to select from the object you chose in the wizard, and it needs to includeId,SystemModstamp, andIsDeleted.- Click
Generateto describe the records you want in plain language and have Clay draft the query for you. - Select every field you want to map. Field mapping only offers fields the saved query selects, so adding a field later means editing the query.
- For Contacts, include
AccountIdto keep Contact-to-Account associations. For Leads, includeConvertedContactIdso converted Leads merge into their corresponding Contacts.
- Click
- Click
Test. Clay validates the query, previews the matching records, and loads the record count. Confirm the preview holds the records you expect, and resolve any recommended-field warnings. - Click
Continue, then work through the import settings the same way as any other Salesforce import.
Keep saved queries straightforward. Clay runs your query through Salesforce's sync engine, so a SELECT with a clear WHERE condition works best. Saved queries can't use LIMIT, OFFSET, GROUP BY, HAVING, aggregate or function projections, parent-to-child projections, or field aliases.
Editing a query later: open the subset from your Salesforce source settings and click Edit SOQL. Changing the query replaces the existing import and its field mappings with a new one — records supported only by the old import are removed, records supported by another source stay, and records from the new query that share a unique identifier with existing records are merged. Field mappings can be changed on their own at any time, and when you add a mapped field Clay backfills it across the records already imported from that source.
Subsets for Opportunities are on the way; the wizard shows that option as coming soon for now.
Importing from HubSpot
- Click
Add data→Add Source→ select yourHubSpot integration.- If you don't see a HubSpot integration listed, contact your Growth Strategist.
- Select
Peopleat the top of the sync panel. - Enable the
Importtoggle. - Add any HubSpot Contact fields you frequently use or want to segment by.
- Name the corresponding Clay fields.
- Select
Companiesat the top and repeat for accounts. - Select
Dealsat the top of the sync panel. - Enable the
Importtoggle. - Add any Deal fields you want to filter or segment by — common fields include
Deal Stage,Amount,Close Date,Deal Owner, andDeal Type.- Deal data is associated with your Companies records and becomes available as a filter in your Companies audience.
- Name the corresponding Clay fields.
- Click
Save and review, thenConfirm.
Scheduled export rule — each field in the field mapping has a Scheduled export rule that controls whether Clay writes that field's value back to HubSpot. The default is Never write, which means Clay enriches the field in your Audience but won't push it to HubSpot until you update the rule. We recommend leaving fields on Never write until you've validated Clay's data quality, to avoid overwriting actively maintained CRM data.
CRM sync cadence
Salesforce and HubSpot sources re-import on a schedule that depends on your plan.
- Enterprise — every 15 minutes.
- Growth and other paid plans — every 24 hours.
Each scheduled run is incremental, so only the records that are new or changed since the last run are imported. Every source also runs a full re-import once a week, on every plan.
Cadence is set per workspace. If you need CRM data to refresh on a different schedule, contact your Growth Strategist.
Importing from Snowflake
- Click
Add data→Import from Snowflake. - Pick a database → schema → warehouse, then write a SQL query directly. Click
Testto preview results before continuing. - Confirm the preview looks correct, then click
Continue. - Define the
Unique Identifier:- For People:
emailoruser_id. - For Companies:
company_idordomain.
- For People:
- (Optional) Configure a
Timestamp Fieldfor incremental syncing:- With a timestamp: Clay only imports new or changed records. Syncs run every 15 minutes on Enterprise plans, and once every 24 hours on other plans.
- Without a timestamp: Clay compares the full query result to detect changes. This reruns every 12 hours on Enterprise plans, and once every 24 hours on other plans.
- Map your Snowflake columns to Audience fields.
- Review and click
Confirm— Clay begins importing immediately. - Monitor the import. If records don't appear immediately, refresh the page to see the latest count.
Importing from BigQuery
BigQuery is available as a native Audiences import source. The setup follows the same pattern as Snowflake: select your database, schema, and warehouse, then query directly with SQL. Results appear as Audiences data you can map in.
Warehouse sync cadence
Snowflake, BigQuery, and Databricks sources all re-sync on the same schedule. How often depends on your plan and on whether you configured a timestamp field for the source.
- With a timestamp field — every 15 minutes on Enterprise plans, once every 24 hours on other plans. Only new and changed records are imported.
- Without a timestamp field — every 12 hours on Enterprise plans, once every 24 hours on other plans. Clay compares the full query result to detect what changed, which is why it runs less often.
Importing from CSV
A CSV import runs through a two-step wizard: upload the file, then map its columns to your Audience fields.
- Click
Add data→Add source→CSV file. - On
Upload a CSV file, enter aSource name, choose theAudience type—PeopleorCompanies— and upload your file. - Click
Nextto move toField mapping. - Under
Import settings, set theUnique identifier— the column that uniquely identifies each record in your file. Clay reads it to decide whether an incoming row updates an existing record or creates a new one.- On a companies import, a company ID works well here, since it also lets Clay link people to their company record.
- On a people import,
Company associationappears as an optional setting. Point it at the column holding each person's company ID to link them to their company records.
- Map your columns in the table below.
Clay PeopleorClay Companiesholds the Audience field, andCSV columnsthe column it reads from.- Click
Auto-mapto match fields automatically, orAdd mappingto add a row and choose both sides yourself. Nameis required on a people import, andCompany nameon a companies import.
- Click
- Click
Import. Clay checks for optional fields you left unmapped before the import starts.
Importing from people and companies search
- Click
Add data→Find peopleorFind companiesto open a search. - Narrow your search using parameters like
Job title,Experience, andTechnographics(for Find Companies). - Click
Continue→Save to People/Companies.- This sends your search results to a draft — it won't combine them with your existing Audience data until you commit.
- In your draft, click
Enrichto bulk enrich and refine your data, keeping only high-quality leads. - When your search data looks good, click
All Peopleto merge.
Sending data from Clay table
There are two ways to move records from an existing Clay table into your Audience. A column action keeps writing to your Audience as rows run, and a one-time import pulls a table's current rows in once.
With a column action. Reach for this when the table should keep feeding your Audience — after an outreach workflow, or to commit data an unsupported integration brought into the table.
- In the table, click
Add enrichmentand search forUpsert segment record. - Choose whether the rows are people or companies.
- Choose the fields Clay matches on to find an existing record. People match on email, phone, and a professional profile URL; companies match on domain and a professional profile URL.
- Choose the fields to write, mapping each one to the table column that holds its value.
- Save the column and run it. Clay updates the record when a match is found, and creates one when nothing matches.
Blank cells are skipped by default, so an empty column won't clear a value already on the record.
As a one-time import. Reach for this when you want a table's current rows in your Audience and nothing ongoing. It runs the same two-step wizard a CSV import does.
- Click
Add data→Add source→Clay table. - On
Select a Clay table, enter aSource nameand choose theAudience type, then pick thePeople tableorCompanies tableand theViewholding the records you want. - Click
Next, then map your columns onField mapping—Clay PeopleorClay CompaniesagainstTable columns. - Click
Import.
Records saved from tables are automatically deduplicated and merged with your existing audience data.
Configuring import record matching
When you import a new data source into Audiences — for example, a Snowflake table after already importing from Salesforce — import record matching lets Clay combine records from multiple sources when they represent the same person or company. It works by checking whether a shared alias field (such as email or domain) matches exactly across sources, and merging the records if it does.
Import record matching is optional and configured per object, directly within the import settings for each source.
Example: If you're importing from both Snowflake and Salesforce, setting domain as your alias field ensures that a single company row in your Audiences reflects data from both sources — rather than creating two separate records for the same company.
To configure import record matching:
- In the import settings panel for any object, find
Import record matchingand clickEdit. - Under
When, choose the alias field to match on — for example,Emailor a professional profile URL for people records, orDomainfor company records. - Under
In, map that alias to the corresponding field in each connected source. - Save your settings. Clay will merge records where the alias values match exactly, combining their data into a single record.
Import record matching vs. automatic deduplication
Clay does automatic deduplication in the background using a professional profile URL + email — no setup required.
Import record matching is the configurable layer: you choose the alias field Clay should use to join a new source’s records to your existing Audiences records.
Use it whenever you add a new source to prevent duplicates from accumulating.
Unique identifier vs. alias field (Snowflake + BigQuery)
When setting up a Snowflake or BigQuery import, you’ll define a Unique Identifier — a field that is unique and non-null within that source (e.g., email for people; domain / work_email_domain for companies). Clay uses it to decide whether an incoming row should create a new record or update an existing one for that source.
This is different from import record matching, which uses an alias field to join records across sources.
Creating an audience
After importing, create audiences to target the right contacts for each use case.
- Click
PeopleorCompaniesin the left sidebar. - Click the
+next toMy Audiences. - Select
Criteriaand then add aFilterorFilter group.
You can filter on three data types simultaneously using AND/OR logic:
- CRM fields (mapped on import) — owner, deal stage, lead status, account type, custom fields.
- Clay enrichment data — firmographics, work email, phone, tech stack.
- Clay signals — job changes, funding, hiring spikes.
New audience-building features:
- AI filters — type your filter condition in plain language (e.g., "employee count less than 500") and Clay builds the filter automatically. AI can create individual filter conditions but not filter groups.
- Filter groups — combine multiple filter conditions with independent AND/OR operators. Each group has its own set of conditions and its own AND/OR toggle, and groups can be layered for complex segmentation logic.
- Record detail view — click into any record to step through your audience one record at a time and see which fields are filled vs. empty. A cleaner alternative to reading the full grid.
- Archive records — move records out of your active audience without deleting them. Archived records can be browsed and restored at any time. Useful for cleaning up a segment without losing historical data.
Enriching and monitoring
Adding enrichments
Bulk enrichments add contact data, firmographics, technographics, and more to your audience records at scale. They run on an audience and write results permanently back to All People — not just the segment you ran them from. This means any enriched field is immediately available as a filter in any other segment.
To add an enrichment:
- Navigate to an audience and click
Enrich→Add bulk enrich. - Add enrichment columns as you normally would (e.g.,
Enrich Personfor a professional profile URL, title, phone). - Select which audiences this enrichment should apply to. You can assign one enrichment to multiple audiences at once.
- (Optional) Set a
credit budget— configure a table-level credit cap before running. You can increase the cap incrementally as you validate output. - Test on a small batch first — click
Run 10 rowsto verify output before running at scale. - Configure
Field mappingto determine what writes back to Audiences.- Field mapping is enabled by default. Configure it to persist enriched results to your audience records — you can create a new Audience field on the spot during mapping if one doesn't exist.
- You can disable field mapping if you want to use the enrichment to trigger an action (e.g., enroll in a sequencer) without writing data back to Audiences.
- (Optional) Enable the
Auto-enrich new recordstoggle so new records entering this segment are automatically enriched — typically within 15 minutes. - Click
Finish setup and run.
Editing an enrichment after creation: Click an enrichment in the Data Hub sidebar to open the read-only side panel, which shows its status and configuration summary. To change any settings, click Edit enrichment to open the full Bulk Enrich settings page.
Send to Table row cap: If your bulk enrichment's Send table data column targets a table with more than 50,000 rows, you'll see a warning. Enterprise customers can resolve this by enabling auto-deletion (see auto-delete docs) or adding an output column. Non-Enterprise customers should add an output column.
Additional enrichment options:
- Quality gates — set a threshold per audience that records must meet to proceed (e.g., "only continue if a valid work email was found"). Records that don't pass the threshold stay in the audience but don't trigger downstream actions.
- Scheduled runs — configure enrichments to run on a daily, monthly, or custom schedule for ongoing maintenance use cases.
- Archived runs — open any enrichment and click
Archived Runto view and export data from previous enrichment runs. Useful for audit trails and recovering past output.
Using Audiences from a Clay table:
Two Clay enrichments let you move data between a Clay table and your Audience directly.
- In any Clay table, click
Add enrichmentand search for: Upsert Audiences Record— pushes records from a table into your Audience, creating a new record or merging with an existing one. Use this to commit data from unsupported integrations, or to send a processed table's contacts into your Audience after an outreach workflow.Lookup Audiences Record— retrieves enrichment data stored in your Audience and pulls it into the table. Use it to reference enriched or signal data in a table workflow without making Salesforce API calls.
Signals
Signals monitor your audience for key changes and write results permanently to each matching record so you can segment on them.
To add a signal to a segment:
- Navigate to an audience and click
Enrich. - Click
Signals→ select a signal type (e.g.,Job Change). - Set the
look-back periodfor the initial run:3 months,6 months, or1 year. - Set the
recurrence frequency— how often it re-runs going forward. - Review the
cost preview per recordshown before the run begins. - Click
Save and Run.
After you add a signal:
- Results write to a dedicated signal column on each matching record — stored permanently and globally (not scoped to this segment).
- Clay automatically creates a companion segment combining your original filters plus a filter for the new signal result — this is expected, not an error.
- Multiple signals each get their own column; the
Signal Summarycolumn aggregates all results. Click any row to see per-signal detail. - Any other segment that filters on this signal type will also surface these results.
- Signals are also managed centrally in
Data Hub → Signals; a single signal can apply to multiple audiences at once.
Sending from Audiences
When you have a segment ready, click Send → Sync to ad platforms to push it to an ad platform.
Clay walks you through a short sequence of stages, shown at the top of the panel:
Setup— choose the ad platforms to sync to and confirm the segment you're sending.Review— check the records that will be sent before anything leaves Clay.Sync— clickCreate ad syncto create the sync and send the audience.
For people segments, an extra Map stage appears between Setup and Review, where you choose how hard Clay works to match your records to ad-platform identities. Standard looks across two providers to find the most likely identifiers, Premium adds the highest-quality provider on top of the Standard matches, and None skips matching entirely. Company segments don't have this stage. See Clay Ads for what each option costs and the match rates to expect per platform.
Account-based advertising: sync contact or company segments to supported ad platforms, including Meta and Google Ads. Contacts and accounts who no longer qualify are automatically removed from the synced ad audience. See Clay Ads for the full platform list, setup, and platform-specific guidance.
Legacy ad syncs: a segment that already has an ad sync from the earlier flow shows it under Legacy ad syncs in the Send panel. You can't create a new ad sync on a segment that still has a legacy one — remove the legacy sync first, or build the new sync from a different segment.
For outbound sequencer and other non-ad workflows: use Bulk Enrich with a sequencer action column, or use Upsert Audiences Record to commit qualifying contacts to a Clay table and then enroll them from there.
Writing back to your CRM
Audiences supports bidirectional sync with Salesforce and HubSpot. Enriched data and segment changes write back automatically.
Map any Clay data or segment membership to CRM fields using the field mapping panel under Settings → Destinations. Examples:
- Personal email → Salesforce
Personal Emailfield. - Segment membership → CRM status, campaign enrollment, lead score, or owner assignment.
Scheduled export rule — each mapped field has a Scheduled export rule that controls whether and how Clay writes that field's value back to your CRM. The default is Never write. Update the rule for any field you want Clay to write back automatically.
Create new Salesforce records — when enabled, Clay creates new records in Salesforce for contacts that don't already exist there. When off, Clay only updates existing records.
Export sync behavior:
- Exports run every 24 hours.
- The first export brings everything over; subsequent syncs are incremental — only changed records are processed.
Salesforce API usage
Audiences uses Salesforce's Bulk API 2.0 for both import and export operations. This is separate from your standard REST API limits.
- Import: Uses ~50,000 records per API call. For a 5M-record CRM, this translates to approximately 100 Bulk API calls.
- Export: Uses ~10,000 records per batch. Initial exports consume more API calls, but subsequent incremental syncs only process changed records.
Checking your API limits: Navigate to Setup → System Overview → API Usage in Salesforce to view your remaining Bulk API requests. Most Enterprise Salesforce orgs have limits around 150 million records per day, making API usage a non-issue for the majority of customers.
Seeing your API usage in Clay: Your Salesforce source settings in Audiences show an API usage card — a percentage of your daily quota, plus Calls used for the Last 24 hours. Clay reads these figures from Salesforce's Limits API.
Reading that endpoint takes a permission beyond the one that authenticates the connection. The Salesforce user Clay runs as needs View Setup and Configuration in addition to API Enabled; API Enabled alone is enough to connect and make ordinary API calls, but not to read your quota.
Reporting
The Reporting tab shows how Clay has contributed to your audience data, and what that data drove downstream. Switch between People and Companies to scope the whole tab to that record type.
Two cards at the top summarize your current data: the total record count for the record type, and the Sources connected to it. Below them, four sections break down Clay's impact.
Clay coverage— how many records ClaySourced,Enriched, andActioned, plusTotal recordsfor the unique records covered by any of the three. Set the window toLast 7 days,Last 30 days, orLast 90 days, and switch betweenCumulativeandDaily.Fields— the fill rate for every field on the record type, so you can see which fields still have missing data. Sort byFill ratesorFill lifts, then clickView all fieldsto open the Data hub.Signals— how many signals fired and how many records have at least one signal, with a trend chart over time and a per-signal breakdown you can sort byMost firedorMost results.Revenue impact—Active pipelineandClosed-won revenuefor deals linked to records Clay sourced, broken out byFrom companiesandFrom people. Click a revenue figure to drill into the underlying deals, each with its stage and close date.
Have questions about Audiences? See Audiences FAQs and best practices.
Explore other docs
Other popular resources
Join a cohort, learn Clay fast!
The faster way to master Clay. Sign in if you're enrolled in a cohort (current or past) or apply!
Hire GTME Talent
Find and connect with GTM talent who've demonstrated expertise in building advanced workflows



