How do I import my email list into Prefinery?

Important: If testing imports, make sure to only test with valid email addresses that you own as to not unintentionally cause bounced emails due to invalid recipients as that can result in a high bounce rate affecting your email deliverability.

If you already have a list of email addresses, you can import them into Prefinery.

Importing Procedure

Prefinery allows you to collect from users standard data besides email address like name, address, phone number, employer and job title. 

When importing, you can include corresponding values/answers to these fields for each user. 

Here's how:

1

From your project dashboard, navigate to Users. In the Users page, click on the Import button. 

2

In the  Import Users page, you can click on the Download CSV Template button in the upper-right corner to have a template with preset headers you can use. You can then just delete the single row of dummy data in there and paste in your own. Alternatively, you can edit your original spreadsheet and make sure to include the correct header values before importing. 

As for the Status column. if you are moving to Prefinery from another system and want to preserve the original signup timestamp for users who have already joined your waitlist, then you can set all of your users' Status to applied then include an Applied At column header to your CSV file where their signup timestamps are at.

Note: If you have custom questions/fields in your signup form like text/paragraph boxes, multiple choice, dropdowns, etc. and would like to pre-fill those for each user as well, please see: Importing with Custom Questions/Fields

3

If you want to email users for when they get imported, you'll want to edit the default emails that gets sent to them. 

As describe here, when you import a new user into Prefinery that does not already exist, they will first pass through the imported status, even if you have specified that they be assigned a specific status. For example, if you import a user into the applied status, then they will be created with imported as the initial status and then be immediately moved to the applied status. This means that they will fire both the "is imported" and "applies" email triggers. 

Some of the emails sent may mention to the user their current position in the waitlist or provide them a link to the referral page where they can see that information. If you want to artificially inflate the numbers of your waitlist, you can navigate to Referral Page > Settings and set your Waitlist Starting Position to a big number instead of the default 1. 

This makes it so that the imported users will "add up" to the starting position instead of being ranked starting from the default 1st position. 

4

We recommend that you try importing using a test CSV file with only one sample user entry to make sure that everything works the way you want it to.  

Once your actual CSV is ready for importing, click on the Choose file button to select your CSV. You may also want to tick the checkboxes for not sending emails when importing as well as confirmation that the imported person has already given you consent to be included in the list. Click Import Users when ready. 

It usually just takes a few seconds for the importing process to finish (it runs in the background so you can do other things on your dashboard), up to a few minutes to very large data sets.

Importing with Custom Questions

If you've added custom questions in your signup form, you can also pre-fill values for them in your CSV import. 

Here's how: 

1

On the Signup Form editor, if you click on the little pencil (edit) icon next to a custom question a popup will appear and include the question's unique ID. Click on that ID to copy it. 

2

In the CSV file add a new column header in the format "Question {ID}" where {ID} is the unique question id. For example, a column header could be "Question 99044"

3

In the column cells enter the response to the question as follows: 

A. If the question is a sentence or paragraph type then the cell just includes the text.

B. If the question is multi-choice, scale, or agreement, then follow this guide for answering:

i. Answers to multiple choice and scale questions begin at a 0 index — meaning the first choice is 0, second choice is 1, etc.:

So in your CSV, if the user chose the first choice, you use 0 (zero).

ii. For multiple choice questions where more than one choice can be selected (checkbox style):

You should submit comma delimited string, such as "0,1" to choose more than one answer.

If the user would have only chosen one option, you need to add a comma before the value or after the value like as follows: 

i ii. Agreement questions can only be answered with either 0 (disagree / not checked) or 1 (agree / checked).

Frequently Asked Questions

Do I need permission to import and email people?

Yes! Prefinery requires that you only import and email people who have given direct permission to receive marketing emails from you, or have purchased an item from you within the past 12 months and consented to receive emails at the time of purchase. By importing users into Prefinery you confirm that you have legally obtained this permission and agree to abide by our Acceptable Use Policy and our Anti-spam Requirements for Email.

What is the file format of the import file?

Prefinery lets you import a spreadsheet file in the CSV (comma separated values) format. Most popular spreadsheet applications let you export your file as a .csv file.

What information can I import?

Your CSV file must include a header row, where you can use the following column header values:

Header Description
email (required) The user's email address.
first name The user's first name.
last name The user's last name.
status The user's status, which can be one of imported, unconfirmed, applied, invited, rejected, active, or suspended.
gender The tester's gender — can be Male or Female.
age The user's age.
employer Where the user works.
job title What the user does.
address line 1 Address line 1 (e.g., street, PO Box, or company name).
address line 2 Address line 2 (e.g., apartment, suite, unit, or building).
city City, district, suburb, town, or village.
state State, county, province, or region.
postal code ZIP or postal code.
country Two-letter country code ( ISO 3166-1 alpha-2 code).
telephone The user's telephone number.
locale The user's locale in RFC 5646 language-REGION format (e.g. "en-US").
custom variable 1 A custom string which will be present on the user's profile and made available to email messages, webhooks and API requests.
custom variable 2 A custom string which will be present on the user's profile and made available to email messages, webhooks and API requests.
custom variable 3 A custom string which will be present on the user's profile and made available to email messages, webhooks and API requests.
http referrer The address of the webpage the user was on prior to landing on your site.
utm source UTM Source string; Identifies which site sent the traffic.
utm medium UTM Medium string; Identifies what type of link was used, such as cost per click or email.
utm campaign UTM Campaign string; Identifies a specific product promotion or strategic campaign.
utm term UTM Term string; Identifies search terms.
utm content UTM Content string; Identifies what specifically was clicked to bring the user to the site, such as a banner ad or a text link.
tags A comma-separated list of tags to assign this user with.
applied at The timestamp representing when the user signed up for your campaign, in ISO 8601 combined date and time representation format, such as 2020-11-17T20:48:13Z.
invited at For prelaunch campaigns, the timestamp representing when the user was invited, in ISO 8601 combined date and time representation format, such as 2020-11-17T20:48:13Z.
joined at For prelaunch campaigns, the timestamp representing when the user was activated, in ISO 8601 combined date and time representation format, such as 2020-11-17T20:48:13Z.

Note: If you have custom questions/fields in your signup form like text/paragraph boxes, multiple choice, dropdowns, etc. and would like to pre-fill those for each user as well, please see the Importing with Custom Questions/Fields section, above.

What status are imported given?

The default status, if one is not provided, is  imported . You can read more about Prefinery statuses, here.

The following are acceptable values for the status cells: imported , unconfirmed , applied , invited , rejected , active , and suspended .

Are emails and webhooks triggered?

Yes. All emails and webhooks associated with the user's status will fire. You can skip triggering emails by checking the Do not send emails box when performing the import.

If you import a new user into the imported status, then any emails associated with the "is imported" trigger will be sent and the tester_created and tester_imported webhooks will be sent.

If you import a new user into any other status then they will first pass through the imported status. For example, if you import a new user into the  applied status, then any emails associated with the "is imported" and "applies" triggers will be sent and the tester_created , tester_imported , and tester_applied  webhooks will be sent.

What happens if an imported user already exists?

Imports are performed as a merge and can be used to update existing users. You can either update their profile information, or change their status. If changing status, then the corresponding emails and webhooks will be sent.

For example, if you want to invite users in bulk, you could export your existing list, edit the csv export file to only include the email and status columns, change all the status columns to invited, and then import the file. The result is that each user would be moved the the invited status.

What is the format for timestamp columns?

Values for the applied at , invited at and joined at cells should be specified in the ISO 8601 combined date and time representation format, such as 2020-11-17T20:48:13Z .

If you are moving to Prefinery from another system and want to preserve the original signup timestamp for users who have already joined your waitlist, then you can add the applied at column to your CSV file.

How many users can I import at once?

The maximum number of users you can import at a time is 10,000. Also, the imported csv file must be less than 4MB. 

Why is importing is not working for me? Why am I'm getting zero (0) users imported?

Your CSV file might be incorrectly formatted. Possible cases include: 

  • Column headers are not in the top-most row (row 1) and/or incorrectly spelled.
  • The spreadsheet app you're using to create/edit the CSV may have added extra, unneeded rows/columns that's preventing the import to work properly during saving, or may have saved the file in an incorrect format.
  • Column values don't match the column headers (mixed up).

We recommend using Google Sheets to create/edit a CSV file, so you can just download it in the correctly supported .csv format as shown below. 

If you're using Excel, while this may differ between versions generally you'll want to use "Save As" (as a new file): 

Then choose CSV (Comma delimited) (*.csv) as "Save as type" option:

Still need help? How can we help? How can we help?