How to import Users from Google Sheets?Updated 12/08/2020

This guide will show you how to import data from Google Spreadsheet as Hull Users in order to create new Users or update existing profiles.

Make sure your Google Sheets Imported is installed and authorized by following the connector documentation.

In order to perform an import go to a spreadsheet which contains data you are interested in. Then open the add-on sidebar by going to top menu Add-ons > Hull Importer > Open Importer.

open addon sidebar

Right after opening, import button is inactive signaling that not all required settings are provided. Now let's go through them.


First we need to select the import type, since this sheet contains Users data and we want to capture columns information as User Attributes we select users.

users import type

Next we need to tell how to identify those users. Hull supports three different identifiers, so this section allows to define 3 columns where email, external_id and anonymous_id is stored. At least one identifier mapping must be done and every row in the sheet need to have at least one value present in order to be imported. Non-identifiable entities are not allowed in Hull.

In our case we have emails and product IDs coming from product database. We will map email to email and product_id to external_id which is meant for unique, leading identifier used across your all services.

users claims

We are almost there. Before we go to the last step we need to decide how we want to store attributes imported from this sheet. We enourage you to store all you different attributes grouped in relation to their source. Then building unified profiles is easier as it's clearer where certain attribute is coming from.

That said we will store all of our attributes in group called manual_import. In future it can be used in processor in order to build unified profile.

users import group

Import group can be left blank in order to store attributes at top level, but we only suggest doing it in specific cases where existing attributes need to be updated.

The last section allows to map columns to attributes. By default we populate the name of attribute by transforming column name into lower underscore case. Name can be freely adjusted here, but we recommend using lower underscore case. In case of dates you need to add _at or _date at the end of the name. Please refer to platform documentation for details.

Let's map all relevant columns here:

users columns mapping


Once all the required settings are present and valid the import button becomes active. Before hitting the button you need to select all rows you would like to import. Don't select the first row which contain column names though.

What is important it does not matter which columns are selected exactly. Once something on a row is selected the whole row will be taken into consideration during import.

Here is our selection:

users selection

Now we can hit import and see progress visible below:

users import1

After every row is processed then the text below will be changed into done, showing number of rows imported.

users import2

You may notice that depending on your data number of imported rows is smaller than number of selected rows. This may be coming from the fact that some of the rows don't have any identifier present.

This screenshot shows an attempt to import 3 rows, but actually just one is imported:

users ignored

That's it, now you can use the same way to update or create users and attributes. In case of problems or questions feel free to reach out to us at