Import data into Attio via CSV

Easily import your data into Attio using a CSV file.

You can easily import data into your Attio list from other apps. All you need is a .csv file containing your data - a super common export option you'll find in most platforms.

CSV imports into objects

Step 1: Prep your data

The first step is to prepare your file, and ensure it meets Attio’s file requirements.

In your CSV file, each row represents a record, and each column represents an attribute. If you’re importing into an object, the records in your file will be created or updated. If you’re importing into a list, the records will be created or updated, and list entries will be created or updated depending on the setting chosen in the mapping step.

You don’t have to create all attributes before starting the import process. You can create them within the importer.

Attribute columns to include

You must include all required attributes for a successful import. Unique attributes are strongly encouraged wherever possible to prevent duplicate records.

  • Required attributes: Records must have a value for required attributes in order to be created successfully. Include a column in your file for each required attribute (if applicable to the objects you’re importing), and give all rows a value for each required attribute column.

  • Unique attributes: Attio can only prevent duplication of records if you include a unique attribute in your file for each object you’re importing. When an attribute is unique, it means the content of the attribute can only appear once, so no two records can have the same value for the attribute.

Also, email addresses for people and domains for companies are needed for Attio to automatically enrich your person and company records with useful data like logos or profile pictures, social media handles, and descriptions. If you don’t have emails or domains for some records, you can still import them, but Attio won’t be able to provide any enrichment or prevent duplicates from being created. Learn more about data enrichment.

Required and unique attributes to include for each object:

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

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

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

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

  • Workspaces: Include Workspace ID (unique and required)

  • Custom objects: Dependent on configuration. Find any required or unique attributes by navigating to the custom object’s Attributes tab in Workspace settings

Note: Record ID is also a unique attribute on all objects, but should only be included when you are using an import to update existing records. Record IDs are automatically generated by Attio when records are created, and cannot be changed or created with custom values.

Entry ID is a unique attribute also generated by Attio that can be used when you are using an import to update existing list entries.

Values for Record and List IDs can be attained by exporting a view. In the import process, if the ID is found, the record/list entry will be updated. If a provided ID has no match, it will be skipped.

Data not yet supported

It’s not yet possible to import Tasks or Notes. Stay tuned - these are coming in the future!

File requirements

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

  • Only the CSV file type is supported.

  • A header row is required. Each column header should contain the name of the attribute the column holds (e.g. Name, Email address, City).

  • Your file can have a maximum of 100,000 rows.

  • Your file can have a maximum of 100 columns.

  • Your file size can be a maximum of 100mb.

Formatting requirements

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

Step 2: Choose a destination - object or list

Next, consider whether it makes sense for you to import your data into an object or a list:

  • Import into an object (for example Companies, People, or Deals) where the attributes you’re importing should exist on all records of the relevant object.

  • Import into a list when some attributes are specific to a particular workflow or segment of records, not relevant to all records of that object in your workspace. List attributes can also be kept private via customizing list access, whereas object attributes cannot. You can also update object attributes from a list import.

Learn more about the differences between list and object attributes here.

Step 3: Upload file

For a video walkthrough of the CSV import process, see Attio Academy.

Select the object you are importing under Records in the left-hand sidebar, or the list under Lists. Click Import / Export at the top right corner, then Import CSV. Note that you don’t have to be a workspace admin to import records into objects. You do have to be an admin, have full access, or have read and write access to import into a list.

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

Once you’ve uploaded a file, you’ll see a preview of the number of columns and rows Attio recognized in your file. The number of columns will be number of attributes you can map to, and rows will be the number of records/list entries. If you’re ready to proceed, click Next.

Step 4: Map columns

When you click next to progress to this step, Attio will upload your whole file. You can see the progress percentage in the lower-left corner of your screen. You can work on mapping columns while the file uploads, but you won’t be able to progress to reviewing values until the file upload is completed.

On the Map columns step, you will see the columns from your file on the left under File column, and the attributes in Attio that you want to map them to on the right under Attributes.

Attio will automatically try to map attributes based on the column name and content. On the right side under Attributes, select the attributes in Attio you want to map the data to from the corresponding column, or click + Create new attribute if it doesn't exist yet. If you are importing into an object, this will create an attribute on the primary object you’re importing. If you’re importing into a list, this will create a list attribute. To create other types of attributes, you’ll need to create them in settings rather than within the importer. Learn more about attributes.

If you decide not to import a particular column, simply don’t select an attribute for it, or click the x to remove an attribute if it was mapped automatically, and the column will be skipped.

You can also see a preview of the data from your file on the right (up to the first 100 rows) under Data preview when you hover over each attribute.

If you are importing into a list, decide how you want to handle records in your file that are already in the list. Where it says For records already in the list choose from these options:

  • Add again will add all existing records to the list again (creating duplicate list entries).

  • Update existing will update existing list entires for records in your file that are already in the list, but will not add the records to the list again (not creating duplicate list entries).

When you’ve finished mapping attributes, click Continue.

Note: For multi-select attributes and attributes that allow for multiple values (like Email addresses or Domains), if you are updating existing records, values imported will be added to any existing values on those records. Existing values will not be replaced.

Importing attributes of linked objects

Objects in Attio can be connected by relationship attributes. For example, on Companies in Attio there is a relationship attribute for Team. Likewise, on People in Attio, there is a relationship attribute for Company. Learn more about relationship attributes.

You can update relationship attributes and update the attributes of records linked via relationships with imports. Whenever possible, you should include a unique attribute (such as domain for companies, email for people, or record ID for any object) in your import for the linked object so that Attio can check whether the record already exists, and update the existing record if it does rather than creating a duplicate. If you do not include a unique attribute, Attio has no way to check whether the record already exists, so a new record will be created with the attribute values specified in your import.

For example, if you are importing people, you can import their company’s domain and description. In the import process, Attio will check if a company with the domain already exists, and if so, update its description and set it as the person’s Company. If a company record with that domain does not already exist, the company will be created with the domain and description, and it will be set as the person’s Company.

To find attributes of linked objects when searching for an attribute, first choose CompanyTeam, or the relationship attribute, then search for and click the name of the linked object's attribute that you want to import.

Note that for record or relationship type attributes that allow for multiple values (such as Team on companies), you can update the attribute and connect other records by selecting one unique attribute to map in your import (such as email or record ID). However, you won't be able to update other attributes on the connected records, as there is not a way to map multiple attributes to multiple connected records. If you need to, for example, update many attributes on team members, it's best to initiate the import from the People object instead, and then you can also set Company attributes as needed.

You can update attributes of linked objects two levels removed from the primary object you're importing into in some cases, but you must provide at least one attribute mapping for each level. For example, if you're importing on People, you can update the company's CEO's attributes if the CEO is linked to the company by a relationship attribute. However, you must also map an attribute (preferably a unique one) for the company in order to map to the CEO.

Step 5: Review values

Now it’s time to check how Attio has interpreted your attribute values, and to fix any invalid values.

Under Columns on the left, you’ll see all the columns (and attributes) you’re importing. Click through them to see the Raw data from your file in one column, and the Mapped value, which is the attribute value as it will show in Attio, in the other column.

All unique values will be shown, with a number indicating how many rows had each value. Updates to the mapping will be applied to all rows that had the same value, where applicable.

Click into any mapped value or click the fix icon to edit it. Click the cancel icon to skip the value, meaning no value will be imported for that attribute for that record. (This does not skip the record entirely.) If you removed or edited a value the importer mapped and want to restore it, click the arrow to the right of it to revert the value.

When the format of the raw value is not recognized by Attio or does not match the formatting required for the attribute selected, you will see an Invalid format error. Click into the mapped value cell and correct the value. You can also proceed without correcting errors, and the import will simply not write any values for those instances. If all attributes for a record were invalid or blank, the record will not be imported at all.

Empty values will be automatically skipped. Importing with an empty value will not erase existing data.

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

For date, number, and timestamp attributes, you can select the gear icon in the upper-right to choose the format your data is in. The selected format must match the values from your file for the import to be successful.

If you are importing select or multi-select attributes and have values in your file that haven't yet been added as options for the attributes in Attio, select Create missing select options in the upper-right so that they can be imported.

When you’re finished reviewing, click Continue.

Step 6: Preview import

At this step, you will see a list of updates the import will attempt to make to records and attribute values.

If you are importing into multiple objects, in the upper-left there will be tabs for each object that has records that will be created or updated by the import. Click between the tabs to see the records for each.

If you are importing into a list, you’ll see the objects tabs for the object you’re importing and any linked objects you’re updating via relationship attributes, as well as a tab for Entries showing the instances of the records that will be updated or added to the list. Keep in mind, the records themselves will be updated rather than duplicated as long as you’ve included and mapped a unique attribute in your import, but list entries (instances of the record in the list) will be updated or created, depending on the setting chosen on the Map columns step.

If you need to fix anything, click Back to revert to previous steps. Once you’re ready, click Start import.

Step 7: Run import

Once you’ve started the import, you’re taken to an import progress page. You can see the progress bar across the top showing how many records have been imported, along with a table containing all the records being imported.

Each record will show a green checkmark once imported successfully, or a red error icon if the record was not imported. Hover over the error icon to see an error description. You can also select Filter, then Failed, Planned, or Completed to show only records/entries in a certain status.

You can close the import progress page at any time, and it will continue to run in the background. If you’re an admin, you can navigate back to it later from Workspace settings.

Manage imports

Workspace admins can access all import drafts and completed imports in Workspace settings. To navigate there:

  • Click your workspace name at the top of the left-hand sidebar

  • Choose Workspace settings from the dropdown

  • Navigate to Objects or Lists in the left-hand menu

  • Select an object or list

  • Click the Import history tab on the right

Non-admins can also access all import drafts and completed imports they have initiated in Account settings. To navigate there:

  • Click your workspace name at the top of the left-hand sidebar

  • Choose Account settings from the dropdown

  • Click Import history in the left-hand menu

Here you will see all past and present imports, as well as drafts. The import states include:

  • Draft: The import setup can be continued, and progress is saved so users can resume the process

  • In progress: A user has clicked Start import and it is in process of creating and updating records

  • Canceled: A user has canceled an import that was in progress

  • Failed: An import was in progress but failed

From here, you can select an import draft to continue it (even if it was started by someone else) or view another import. Click the ⋮ icon on an import in progress to cancel it, or on a draft to delete it (deleting its setup and the uploaded file).

Share an import

You can share a link to a draft import with a team member for them to review or continue setup, complete the import, view the progress, or view the results.

Frequently asked questions.

  • If you have duplicate list entries within your list, you can simply remove the ones you don’t want to keep. Check the box of the record you want to remove, and from the window that appears at the bottom of your screen, select More ▾ followed by Remove from List. ⁠ ⁠

    If you’ve created duplicate records in your workspace with an import, these can be deleted manually. Learn more about deleting records.

Couldn’t find something? Contact us at [email protected]