If you’ve already collected leads, you can import them into your Typeform Contacts from a CSV file. This is a simple way to bring contact data into Typeform from tools like Google Sheets, HubSpot, or Salesforce.
Importing Contacts is available on all Typeform plans. If you’re on an Enterprise plan, only users with Owner or Admin permissions can view Contacts and access contact data. Contact your CSM if you’d like to give all team members access to Contacts.
When you upload a CSV file, Typeform looks at your column names and the data in each column to match it to an existing contact property or create a new custom property when needed. If you don’t need a custom property that was created automatically during import, you can delete it from your contact properties.
Before getting started
- Go into the source tool you’re using (for example, Google Sheets), and export your customer data into a CSV file.
- If your data is stored in a different file format, convert it to CSV.
- When you upload your CSV file, Typeform checks your column headers and sample values to match each column to an existing contact property or create a new custom property when needed.
- For the best results, use clear column names and keep the values in each column consistent.
- If Typeform can’t confidently identify a more specific property type, it creates the property as Text.
Import the CSV file into your Typeform Contacts following the instructions below.
✨ You’ll find the manual steps for importing a contact list from a CSV file below. To speed things up, you can also upload the CSV file to Typeform AI and ask it to do it for you.
To import a contact list from a CSV file
- Click Actions and select the Import from CSV option.
- Now you’ll see a pop-up to import your contacts. Click Upload CSV file.
3. Once you’ve uploaded a CSV file, you’ll see the name of the file you’ve uploaded next to the Upload CSV file button. Click Import contacts.
4. You’ll receive an email from Typeform about the status of your contact updates. If no contacts have been added or updated, like in the example below, check the Import rules and logic section of this article to troubleshoot formatting issues with your CSV file.
Once you’ve successfully imported your contacts from a CSV file, you’ll see CSV import in the Last update source column next to contacts that have been imported from a CSV file.
Tip: Click to refresh your browser to see the most recent Contacts imported from a CSV file.
If the CSV file you’re importing doesn’t have a Subscription status column header, the Subscription status of Contacts imported from a CSV file will be Never subscribed, as seen in the screenshot below.
To populate the Subscription status property for CSV uploads, you can do the following:
- Create a Subscription status column in your CSV file.
- Manually enter the subscription status you want to assign to the Contact. The value can be the following:
- subscribed,
- unsubscribed,
- never subscribed,
- suppressed.
- The values must be added in all lower case for the subscription status of the Contact to be updated when importing from the CSV file.
Import rules and logic
- For each row, a new contact will be created if the email address does not already exist in contacts. Otherwise, if there is a matching email address with some additional information, it’ll be added to that Contact. For example, if you have an email address in the 4th row with new location information, and the same email address in the 5th row with new company information, both will be added to the same Contact profile.
- If multiple rows have the same email address, the data will be combined into one Contact profile, preferring later rows. In this case, earlier rows will be overwritten by later ones. For example, if the same email address has Utah as their location in row 5, but Colorado as their location in row 200, then their Contact profile will be updated to Colorado.
- If Typeform can match a CSV column to an existing contact property, the data in that column will be added to that property.
- If Typeform can’t find a suitable match, it creates a new custom property before the import starts and stores the data there.
- Property types are inferred from the column name and sample values. If Typeform can’t confidently assign a more specific property type, the property will be created as Text.
- Blank values in the CSV file do not overwrite contact properties. An exception to this is the Subscription status property, which will default to Never subscribed when the corresponding field is left blank in the CSV file.
- In the CSV file, the separators used must be , instead of ;. If ; are used as separators, the whole header row will be considered one column header, and no contact information will be added or updated.