Import data into Attio via CSV

Import your data into Attio using a CSV file.

You can import data into your Attio objects or lists from other apps. All you need is a .csv file containing your data, which is a very common export option you'll find in most platforms.

Overview and checklist

Before importing data into Attio, it’s important to follow all steps to ensure a smooth import process and avoid errors, duplicates, or missing data. This checklist outlines the key stages you'll go through, with each step covered in more detail below.


1. Define what you’re importing.

Decide whether you're importing into an object or a list. If your data spans multiple objects, plan for separate imports as needed. For a deeper understanding of how objects, records, and attributes work together, check out our 101 guide to Attio’s data model.

2. Prepare your file format.

Make sure your file is a CSV, includes a header row, and meets all formatting requirements.

3. Include all required and unique attributes.

Confirm that your file contains all required attributes and at least one unique attribute for each object you’re importing to prevent duplicates.

4. Import file and map columns.

Match each column in your file to the correct Attio attribute. Create new attributes as needed.

5. Review and preview your import.

Use the Review values and Preview import steps to confirm data is mapped correctly, and fix any issues before proceeding.

6. Run the import.

Start the import, track progress in real time, and review any error messages.

See our Importing Attio Academy video for a visual walkthrough of the import process.

Step 1: Define what you’re importing

Single or multiple objects

Each type of record in Attio is called an object, and each object has its own set of attributes. Review the columns in your file and determine which belong to which object. The objects and attributes in your file will determine where and how it should be imported.

Here are some common attributes for Attio objects:

  • Companies: Company names, domains, descriptions, social media links (for company profiles), locations, team members, etc.

  • People: People’s names, email addresses, phone numbers, social media links (for individual profiles), job titles, locations, company, etc.

  • Deals: Deal name, deal owner, deal stage, deal value, deal type, projected close date, associated company, etc.

Importing companies and people with one file

If your file includes attributes for both companies and people, you'll need to import it into People or a list of people, with one spreadsheet row per person.

Make sure to include a unique attribute for both companies and people (e.g. Domains and Email addresses). Here is an example:

Note: Any time people records are created in Attio without companies, Attio will automatically create company records based on their email domains and link the people to those companies.

You could also choose to import into Companies, using one row per company and including a column with all email addresses of people connected to each company, each separated with a comma and a space.

However, this method only allows you to link people via their emails. You won’t be able to update any other attributes on the people (such as names or job titles) during this import. Those details can be added with a separate import into People. Learn more about importing attributes of linked objects.

Importing companies and deals with one file

If your file includes attributes for both companies and deals, the best approach is to import into Deals, using one row per deal.

Include a column with a unique attribute for the associated company (such as Domains) to link them correctly. Be sure to include all required Deal attributes as columns in your file.

Choose a destination: object or list

Next, decide whether your data should be imported into an object or a list:

  • Import into an object (e.g., Companies, People, or Deals) if the attributes you're importing should exist on all records of that object.

  • Import into a list if some attributes are specific to a particular workflow or segment rather than every record in the object. Lists can also be kept private or read-only. You can also create new records and update object attributes through a list import.

For a deeper comparison, check out list vs. object attributes.

Step 2: Prep your data

Before importing, ensure your file meets Attio’s requirements and is properly structured.

Each row in your CSV file represents a record, and each column represents an attribute.

  • For objects: Records will be created or updated.

  • For lists: Records and list entries will be created or updated based on your mapping settings.

Quick tips:

  • New attributes can be created during import.

  • Empty values are skipped and won’t overwrite existing data.

  • Only the attributes you map in your import will be updated while all others will remain unchanged.

  • Watch this CSV Import Guide video from our Attio Community for a walkthrough.

Formatting requirements

See our CSV imports formatting guide for accepted formats for each attribute type and specific attributes.

Attribute columns to include

To ensure a successful import, your file must include all required attributes (if applicable) and, ideally, unique ones:

  • Required attributes: Each record must have values for all required attributes. Include a column for each and ensure no empty rows.

  • Unique attributes: Unique attributes (e.g., email for people, domain for companies) help prevent duplicate records. Attio uses them to identify existing entries, so no two records can share the same value.

Note: Including email addresses (for people) and domains (for companies) enables automatic data enrichment (e.g., profile pictures, social media, descriptions).

Records without these can still be imported but won’t be enriched or checked for duplicates. Learn more about data enrichment.

Required and unique attributes to include for each object:

  • Companies: Domains (unique and used for data enrichment)

  • People: Email addresses (unique and used for data enrichment)

  • Deals: Deal name, Deal owner, and Deal stage (all are required)

  • Users: Primary email address and User ID (both are unique and required)

  • Workspaces: Include Workspace ID (unique and required)

  • Custom objects: Dependent on configuration; check the custom object’s Attributes tab in Workspace settings

When to use Record ID and Entry ID

Record ID is a unique attribute for all objects but should only be included when updating existing records. It’s automatically generated by Attio and cannot be customized.

Entry ID is a unique attribute for list entries, also generated by Attio, and can be used to update existing items.

You can get Record and Entry IDs by exporting a view. If an ID matches an existing record during import, it will be updated; if not, it will be skipped.

File requirements

To successfully import your data, your CSV file must meet the following requirements:

  • Only CSV file type is supported

  • A header row is required, with each column labeled by attribute name (e.g. Name, Email address, City)

  • Maximum of 100,000 rows

  • Maximum of 100 columns

  • Maximum file size of 100mb

Step 3: Upload file

  1. In the left-hand sidebar, select the object under Records or the list under Lists.

  2. Click Import / Export in the top right, then choose Import CSV.

Note: Any workspace member can import into objects. Only admins and list members with full access or read and write access can import into a list.

3. Either drag and drop a file, or click Choose a .CSV file to browse your computer and select the CSV file you want to import.

4. After uploading your file, you’ll see a preview showing the number of columns and rows detected. The number of columns will be number of attributes you can map to, and rows will be the number of records/list entries.

5. When you're ready, click Next.

Step 4: Map columns

When you click Next, Attio will begin uploading your full file. Upload progress appears in the lower-left corner. You can start mapping columns while the file uploads, but you must wait for it to finish before reviewing values.

In the Map columns step, your file’s columns appear on the left under File column, and Attio attributes on the right under Attributes.

Attio will auto-map columns where possible. To adjust or map manually, select the appropriate attribute on the right. If an attribute doesn’t exist, click + Create new attribute.

Note: When creating new attributes within the importer, the type of attribute created depends on where you’re importing:

  • When importing into an object, new attributes are created on the primary object.

  • When importing into a list, new attributes are created as list attributes.

To create a different type of attribute, create them in settings instead.

To skip a column, don’t select an attribute, or click the x to remove an auto-mapped one. The column will be ignored during import.

You can preview data from your file (up to 100 rows) under Data preview by hovering over each attribute.

If you're importing into a list, choose how to handle records already in the list under For records already in the list:

  • Add again adds duplicates of existing records.

  • Update existing updates current list entries without creating duplicates.


When you're done mapping attributes, click Continue.

Note: For multi-select and multi-value attributes, imported values will be added, not replaced, when updating existing records.

For example, if you already have a company attio.com with the category SaaS, and your import file has attio.com with the category Technology, after the import, attio.com will show both SaaS and Technology.

Importing attributes of linked objects

Objects in Attio can be connected through relationship attributes (e.g. Team on Companies, Company on People). To learn more, see our guide to creating relationship attributes, or our Attio Academy video on relationships.

You can use imports to update both relationship attributes and the attributes of linked records.

To avoid duplicates, include a unique attribute for the linked object, like domain (for companies), email (for people), or record ID (for any object). Without one, Attio will create a new record instead of updating an existing one.

Example:

If you're importing people and include their company's domain and description, Attio will:

  • Update the existing company if the domain matches

  • Create a new company if no match is found

In both cases, the company will be linked as the person’s Company.

To import attributes from a linked object, first select the relationship (e.g. Company or Team), then choose the specific attribute from that object.

Importing relationships with multiple values

For relationships that support multiple values, you can only map unique attributes.

For example, if you are importing into Companies and you want to include their team members, you can only map their email addresses or Record IDs, but no other attributes on people.


With emails mapped (Team > Email addresses), people would be created or updated and connected to the companies in your import. To update any other attributes on the people, you would need to do a separate import into People.

Example:

Imagine you have a file with these columns:

  • Company name

  • Team emails (holding many)

  • Team job titles (holding many)


Attio won’t know which job title belongs to which email, so this setup isn’t supported. You can import the emails to create or update people and link them to companies, but you’ll need a separate import into People to add job titles or other attributes.

Step 5: Review values

Now you’ll check how Attio has interpreted your attribute values and fix any issues.

Under Columns on the left, you’ll see all columns and attributes you're importing. Click each one to view the Raw data from your file and the Mapped value, which is how it will appear in Attio.

All unique values are listed with a count of how many rows contain each one. Any changes you make will apply to all matching rows.

Click any mapped value or the fix icon to edit it. To skip a value (without skipping the full record), click the cancel icon, and no value will be imported for that attribute. To revert a removed or edited value, click the arrow next to it.

If a raw value doesn't match the required format, you'll see an Invalid format error. You can correct it by clicking into the mapped value cell. If you don’t fix it, the import will skip that value. If all attributes for a record are invalid or blank, the record won’t be imported.

Use Sorted by to switch between sorting by Raw value (usually alphabetical or numeric) or Row count (the number of times the unique value appears in the CSV column), in Ascending or Descending order.

For date, number, and timestamp attributes, click the gear icon in the upper-right to choose the format your data uses. The format must match your file's values for the import to work correctly.

If you're importing select or multi-select attributes and your file includes values not yet added in Attio, select Create missing select options in the upper-right to add them during import.

When you’re done reviewing, click Continue.

Step 6: Preview import

This step shows a summary of the changes your import will attempt to make to records and attribute values.

If you're importing into multiple objects, you'll see tabs in the upper-left for each object being updated or created. Click between tabs to view the records for each.

If you're importing into a list, tabs will include the main object, any linked objects updated through relationship attributes, and an Entries tab showing which records will be added or updated in the list. Records will be updated (not duplicated) if you’ve included and mapped a unique attribute. List entries will be created or updated based on the setting you chose in the Map columns step.

To make changes, click Back. When you're ready, click Start import.

Step 7: Run import

After starting the import, you’ll be taken to the import progress page. A progress bar at the top shows how many records have been imported, and a table lists all records in the import.

Each record will show a green checkmark if successful or a red error icon if it failed. Hover over an error icon to see a description of the issue. Use Filter to view records by status: Failed, Planned, or Completed.

You can close the page at any time, and the import will keep running in the background. Admins can return to it later via Workspace settings. Learn more about managing imports.

If your import did not complete as expected, reference Troubleshooting CSV imports.

Frequently asked questions.

Did this article answer your question?