> ## Documentation Index
> Fetch the complete documentation index at: https://studio.assembly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Advanced import

> Bulk import and update contacts or companies from a .csv file.

## Overview

You can bulk import contacts or companies using a .csv file. Both support custom fields and updating existing records.

**For contacts**, the required fields are **First name**, **Last name**, and **Email**. You can also use a **Full name** field instead of separate first and last name fields.

**For companies**, the only required field is **Company Name**.

### Exporting your data

You can export your existing contacts or companies from the **CRM** page by clicking **Export** in the top-right corner. You can also export from external tools like Google Sheets, Hubspot, or Airtable: just locate the download or export button and select the .csv format.

### Importing your data

Once you have your .csv file with the required fields, you're ready to import. Note that there is currently a limit of 200 rows per CSV file.

**Import steps**

1. Navigate to the **CRM** page.
2. Select **Import** and choose the **Contacts** or **Companies** tab.
3. Upload your CSV file by clicking on **Choose file** or dragging and dropping.
4. You'll be automatically taken to the **Match** step.

### Match

The match step will show a preview of each field in your .csv. You will want to match each field to the relevant property in Assembly.

**Automatic matching on required fields**

If your .csv field titles match the required fields, they will automatically map correctly and be shown as **Mapped successfully**. For contacts, this includes **First Name**, **Last Name**, and **Email**. For companies, this includes **Company Name**.

**Automatic matching on custom fields**

If you have additional fields in your .csv file and have set up corresponding custom fields in Assembly with the same titles, the rows that contain values for these fields should automatically match as well. For example, you might have a custom field set up in Assembly called **Address** and your .csv file might also have a field called **Address**. The values will map automatically to the **Address** custom field in Assembly. This works the same way for both contact and company custom fields.

**Manual matching on required fields**

If your .csv fields have different names, you'll need to manually match them using the dropdown menu. For example, if your .csv uses **Name** and **Surname**, you should match **Name** to **First Name** and **Surname** to **Last Name**.

**Manual matching on custom fields**

If you have additional fields in your .csv file and do not have related custom fields set up in Assembly, you can choose to ignore mapping, select a field you want to map to from the dropdown, or create a new field from the dropdown.

### Preview

After confirming field mappings, click **Next** in the top-right to go to the Preview page. Check that all fields are matched correctly.

For contact imports, the preview shows tabs for **New Contacts**, **Updated Contacts**, and **Skipped Rows**. For company imports, the tabs are **New Companies**, **Existing Companies**, and **Skipped Rows**.

If everything looks correct, choose either **Import only** or **Import and invite** in the top-right. If you choose **Import and invite**, invite emails will automatically be sent to all new imported contacts. (The invite option is only available for contact imports.)

Once you click either import option, you'll be taken back to your **CRM** page and should see an alert in the bottom-right letting you know the import job has started successfully.

### Updating existing records

You can use the import feature to update existing contacts or companies in bulk. The process is the same for both: export your current data, edit the fields you want to update, and re-import the file.

**Export your data**

Export your list of contacts or companies to a .csv by clicking **Export** in the top-right corner of the **CRM** page. This will download a file with all of your current data and custom fields.

If you only want to update some records, you can use the **Search** button at the top to filter your list first: the **Export** button will export only the filtered results.

**Edit your fields**

Open the exported file in Google Sheets, Numbers, Excel, or another spreadsheet editor. Then make changes and/or add values to the fields you want to update.

<Note>
  Each record type uses a unique identifier to match existing records. For contacts, the identifier is **email**: if you change a contact's email, a new contact will be created instead. For companies, the identifier is **company name**: if you change a company's name, a new company will be created instead.
</Note>

Once you've made your changes, export or download the updated document in .csv format.

**Import your changes**

To apply the updates in Assembly, go to the **CRM** page and click **Import**. Choose the appropriate tab (**Contacts** or **Companies**), then upload your file.

In the **Match** step, all of the fields should be matched, except for **Status** and **Creation date**. Click **Ignore column** for both of these fields, and then click **Next** in the top right.

In the **Preview** step, you should not see any new records (unless you have added new rows to the spreadsheet). Click on the **Updated** tab to preview the updates.

If everything looks correct, click **Import only** in the top-right.

You will be taken back to your **CRM** page and a message should appear at the bottom that your changes were imported successfully. Refresh the page to see the updated fields.
