Attio is a modern, data-driven CRM built for high-growth teams. Within Clay, you can pull your Attio records directly into a table as a source and push enriched data back by creating, updating, or upserting records across any Attio object. Common workflows include:
- Inbound enrichment: Connect lead sources to Clay, enrich across 150+ data providers, and push complete records to Attio with scoring and routing.
- Outbound prospecting: Build lists in Clay or import Attio records, enrich with company data and intent signals, and push back as qualified deals.
- CRM maintenance: Schedule automatic refreshes to keep records current with job changes, funding rounds, and company updates.
Creating a table with Attio
- In a workbook, click
+ Addat the bottom. - Search for
Attioand select from the results. - In the modal, you will be asked to
Select Attio account.- If you haven't already connected your Attio account, click
+ Add accountand authorize Clay to access your Attio workspace via OAuth.
- If you haven't already connected your Attio account, click
- Select a source and configure its inputs.
Source Import records
Imports records from an Attio object into your Clay table.
Inputs:
Object: The Attio object to import records from (e.g., People, Companies). Populated dynamically from your connected account.Filter (optional): A JSON filter query to narrow which records are imported. See Attio's filtering and sorting docs for syntax.Sort (optional): A JSON sort query to order the imported records. See Attio's filtering and sorting docs for syntax.Limit (optional): The maximum number of records to import. The maximum is 50,000 records.
Source Import records from list
Imports records from a specific Attio list into your Clay table.
Inputs:
List: The Attio list to import records from. Populated dynamically from your connected account.Filter (optional): A JSON filter query to narrow which records are imported from the list. See Attio's filtering and sorting docs for syntax.Sort (optional): A JSON sort query to order the imported records. See Attio's filtering and sorting docs for syntax.Limit (optional): The maximum number of records to import. The maximum is 50,000 records.
Enriching data with Attio
- While in a Clay table, click
Add enrichmentand search forAttio. - Under
Integrations, select one of the Attio actions. - In the modal, you will be asked to
Select Attio account.- If you haven't already connected your Attio account, click
+ Add accountand authorize Clay to access your Attio workspace via OAuth.
- If you haven't already connected your Attio account, click
Action Create record
Creates a new record in an Attio object. Costs 1 credit per run.
Inputs:
Object: The Attio object to create the record in (e.g., People, Companies). Populated dynamically from your connected account.Object Schema (optional): Attribute fields for the record, populated dynamically based on the selected object. Use these to set values on the new record.
Outputs:
Record: The newly created Attio record.
Action Lookup records
Looks up existing records in an Attio object. Returns up to 10 matching records.
Inputs:
Object: The Attio object to search for records in. Populated dynamically from your connected account.Record ID (optional): The UUID of the record to look up. (Required if no Object Schema attribute filters are provided.)Object Schema (optional): Attribute fields to filter records by, populated dynamically based on the selected object. (Required if Record ID is not provided.)Extract data by field paths (optional): JSON path filters to extract or remove specific fields from the response.
Outputs:
Records: An array of up to 10 matching Attio records.
Action Update record
Updates an existing record in an Attio object by its Record ID. Costs 1 credit per run.
Inputs:
Multiselect Behavior: How to handle multiselect attribute values when updating — eitherAppend multiselect values(adds to existing values) orOverwrite multiselect values(replaces existing values).Object: The Attio object containing the record to update. Populated dynamically from your connected account.Record ID: The UUID of the record to update.Object Schema (optional): Attribute fields to update, populated dynamically based on the selected object.
Outputs:
Record: The updated Attio record.
Action Upsert record
Creates a new record or updates an existing one in an Attio object, matched on a unique attribute. Costs 1 credit per run.
Inputs:
Object: The Attio object to upsert the record in. Populated dynamically from your connected account.Matching Attribute: The unique attribute to use when determining whether to create or update a record (e.g., email address, domain). Populated dynamically from the writable, unique attributes on the selected object.Object Schema (optional): Attribute fields for the record, populated dynamically based on the selected object.
Outputs:
Record: The created or updated Attio record.
Run settings
- Auto-update: Recommended when you want new rows added to your Clay table to automatically sync back to Attio.
- Only run if: The enrichment will only run when specified conditions are met. (Learn more about conditional formulas here!)
Best practices
- Start with lookup: Use the free
Lookup recordsaction first to check for duplicates before creating new records. - Use upsert when uncertain: If you're unsure whether a record already exists in Attio, use
Upsert recordinstead ofCreate recordto avoid duplicates. - Enable auto-update for syncing: Turn on auto-update when you want new rows added to your Clay table to automatically sync back to Attio.
- Use conditional runs: Apply conditional formulas to control when records sync back to Attio based on data quality, enrichment status, or other criteria.
FAQs
What Attio objects can I use with Clay?
Any standard or custom object in your Attio workspace is supported. The Object dropdown is populated dynamically from your connected Attio account, so all available objects will appear automatically.
What is the difference between Upsert record and Update record?
Update record requires a specific Record ID and always modifies an existing record. Upsert record matches on a unique attribute (e.g., email address or domain) and will update a record if a match is found, or create a new one if not. Use Upsert when you're unsure whether a record already exists in Attio.
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




