All docs
/
Enrich
/
Attio integration

Attio integration

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.

Overview

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

  1. In a workbook, click + Add at the bottom.
  2. Search for Attio and select from the results.
  3. In the modal, you will be asked to Select Attio account.
    • If you haven't already connected your Attio account, click + Add account and authorize Clay to access your Attio workspace via OAuth.
  4. 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

  1. While in a Clay table, click Add enrichment and search for Attio.
  2. Under Integrations, select one of the Attio actions.
  3. In the modal, you will be asked to Select Attio account.
    • If you haven't already connected your Attio account, click + Add account and authorize Clay to access your Attio workspace via OAuth.

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 — either Append multiselect values (adds to existing values) or Overwrite 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 records action 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 record instead of Create record to 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

Find

Work Email waterfall

Find and validate work emails faster — the Work Email waterfall cascades across multiple providers in sequence, stopping as soon as a valid result is found.

View article
Settings & admin

Buying email accounts in Clay (Beta)

Protect your domain reputation while scaling cold outreach — buy alternative domains and email accounts directly in Clay using Clay credits.

View article

Audiences (Beta)

View article
Settings & admin

User groups

User groups let you share Clay workbooks and connected accounts with multiple members at once.

View article
Settings & admin

Access settings for connections

Determine who in the workspace is allowed to build with certain connections or MCP servers.

View article
Settings & admin

Legacy plans

Comparing legacy plans to our new plans

View article

Beauhurst integration

View article

Other popular resources

Experts

Find a Clay Expert

Explore our network of Clay experts and agencies.

View experts
Community

Join our slack community

Find help in our slack community, and support channels.

Go to slack
Cohorts

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!

Learn more about cohorts
Talents

Hire GTME Talent

Find and connect with GTM talent who've demonstrated expertise in building advanced workflows

Explore GTME talents