How do I import my custom voter file?

A:

NationBuilder provides political campaign subscribers in most U.S. states free access to national voter records through a partnership with PoliticalFORCE (for more than 2 million records, contact us for VIP setup pricing). However, many campaigns also want to import their local voter files or international voter information. Often, Excel and similar programs will want to automatically re-format your data, so here are some tips for normalizing your CSV files for clean imports.

Because of the dizzying array of voter data formats around the world, our voter file importer (available with the campaign edition and accessed under People>Imports) supports a large number of fields. (Here is the complete list of supported fields for standard imports, all of which are included in the voter file import.)

.CSV imports are limited to 20mb per file - if your list is larger than that, you will need to divide it into multiple files.

Here's a cheat sheet to some of the frequently used and important data headers that aren't as obvious:

  • state_file_id = this is going to be your generic voter ID from the state elections authority
  • county_file_id = this is the voter ID as reported by the county (you should have either the state or county fields set)
  • registered_at = the date a person first registered to vote
  • email = this field is very important because it's one of the primary ways NationBuilder deduplicates records
  • email_opt_in = a yes/no, 1/0 or true/false field - all of those formats are supported
  • name = for records where a full name is in one column
  • born_at = This should be the voter's birthdate
  • mobile_opt_in = primarily for text blasting (U.S.-only through NationBuilder). It is a yes/no, 1/0, true/false field
  • created_at = date the original record was created
  • support_level = a number from 1 to 5, with 1 being support, 5 being oppose, and 3 being swing
  • is_volunteer = another yes/no, 1/0, true/false field
  • note = you can import text notes attached to people in your database
  • demo = demographic codes (U.S. codes here)
  • tag_list = import a list of tags for your voters, separated by commas
  • assistant_id = this would be the NationBuilder ID of another person in you database
  • recruiter_id = the NationBuilder ID of a person who recruited a new voter or supporter
  • point_person_id = assign a point person for new people using this field and the NationBuilder ID
  • nationbuilder_id = a unique number assigned for each person in your nation. It is not connected to NationBuilder.com or any other nation
  • facebook_uid = the unique Facebook ID for each of that platform's users
  • twitter_login = the username for a Twitter member
  • twitter_id = a unique number assigned to each Twitter member in some Twitter data sources
  • meetup_id = the user ID for Meetup.com members. NationBuilder's social media integration is tightest with Twitter, Facebook and Meetup
  • civicrm_id = a database ID used by many Drupal projects
  • external_id = a generic ID for use when you may be commonly uploading, modifying and merging files that need a unique identifier not already supported by NationBuilder; it might be something like a national ID or passport number
  • registered_address1 = generally a voter's primary address. You can include things like street number, street name and things like "NW" and "Blvd" and NationBuilder will parse them. NationBuilder supporters multiple addresses and address types, but you do not want to use this field if your data is already divided into seperate columns for street number, street name, etc.
  • registered_fips = a geographic code that may be attached to some voter data
  • registered_precinct_name = the primary name for a precinct, it could be a number or a word
  • registered_precinct_code = some voting districts have a secondard princinct ID, such as "Lincoln 001, Lincoln 002 and Lincoln 003." This column supports such districts
  • registered_country_code = a country abbreviation, like US or CA
  • registered_sort_sequence = if you're uploading and working on files for later mail merge use, you'll want to include this and other mailing data headers for later export and use

When you add a new name to the database through something like "assistant_name_or_email," or through an import of donor records, NationBuilder will automatically create a new person based on that information.

It's important to note that while these fields will all become part of your database, they are not all editable after an import. Putting the cleanest, most complete data possible into your nation will help your advances searches, social media integration, turft cutting and more.

If you have any questions or need help, drop us an email. We can also do imports for you for a fee of $500 per file.

Was this helpful?

Showing 11 reactions


sasha ca commented 2012-05-11 22:17:54 -0700
turft = transurethral radiofrequency thermotherapy?
Jim Gilliam commented 2012-04-13 19:08:01 -0700
K.C. – you probably want to use city_district, and you’ll only see it in the importable fields if you are using the campaign addon.
K.C. Gleaton commented 2012-04-13 18:42:50 -0700
When performing an import, I was unable to find a variable for the city ward. Did I miss it, or is it named something else in your system?
Steven Williams commented 2012-03-04 15:57:30 -0800
ok, thanks. I will delete and reimport.
adriel hampton commented 2012-03-04 12:28:53 -0800
Steven, your file has repetitive external IDs (possibly related to households and not individuals), which are a deduplicating factor. Your entire import is likely scrambled because of this. http://nationbuilder.com/how_can_i_avoid_duplicates_when_i_import_people
Steven Williams commented 2012-03-04 12:20:14 -0800
I imported a voter file of 72,xxx voters. The results say that 44,xxx were added and 27,xxx were updated but only the 44,xxx are now in the database. What happened to the 27,xxx that were updated? I had only 300 people in the database before I imported the 72,xxx. So, there is no way the 27,xxx already existed.
adriel hampton commented 2011-11-24 12:22:11 -0800
No, it does not. Your CSV file just needs to be properly mapped by column.
Donald Darnell commented 2011-11-24 12:13:03 -0800
Does NB get confused on a data import if one “column” of data is a list a tags separated by commas? Does it somehow differentiate between the commas separating variables in a CSV, and the commas separating tags in the single varaiable tags?
Jim Gilliam commented 2011-11-23 09:46:56 -0800
Oh, and one other thing, as long as your sequence number is an integer (an actual number), then civicrm_id will work.. if it’s not, then you should use external_id
Jim Gilliam commented 2011-11-23 09:41:54 -0800
Yes, those seem like good mappings. There are a variety of features in NB related to your precinct name, and having your poll number maps to that well. The sort_sequence is for mailings like you see. normally it’s only used on mailing_sort_sequence as it’s meant for mailings, but using it for door to door activities makes sense. NB does not do any sorting on that field in its walk lists however, that is still based on the actual address.
Donald Darnell commented 2011-11-23 08:48:17 -0800
We are about to import into our Nation a voter file provided by the Province of Alberta, and would like to preserve some identification numbers. We are thinking about mapping them to NB variables in this fashion:

State_file_id Voter dentification number (ELECTORID).
registered_precinct_name Poll (PSD) number 1-66.
registered_sort_sequence Geo sort sequence to facilitate sorting for door-to-door activities (DK, flyer drops).
civicrm_id Sequence number (SEQ) from voter file (for easy alignment of exported data).

Do you see any problem with this approach? Would you recommend anything different? Which (if any) of these variables will NB sort on?
Join our team
We're hiring great software developers and organizers. Learn more →