Search by keyword

Table of Contents
You are here:
Print

Export Data Formats

The following export data schemas are available via the Export Admin Screen or via our Automated Scheduled Exports, or automated sync with external databases like Phoenix.

Note

The formats below include changes which will be going into effect on Wednesday, December 1st, 2021. To see the export formats before then, check out the Export Admin screen article.

People

The “People” export is designed to help you get a big-picture view of all the people your campaign has reached and added. It includes one row per person you have reached. It will tell you all the basic info about the person (their name, address, Reach ID, external IDs), who was the last user to reach them, when they were added, when they were last reached, which auto-applied tag they have, which campaign tags they have, their contact info if you have it, and all their survey question responses. Survey questions will appear each in their own column, with the column header as the first 50 characters of your question’s name and then the question’s ID in brackets. These survey question columns will be sorted in the order you created them.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"Reach ID" : text --+ (i.e. '4928943115')
"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export"Added Timestamp" : datetime --+ will only be filled for Reach Adds (i.e. '2020-08-01 13:45:47')
"Added by User ID" : text --+ will only be filled for Reach Adds (i.e. 'R827JVDX')
"Last Reached Timestamp" : datetime
"Last Reached by User ID" : text 
"Last Reached by User Name" : text
"Source Tag" : text --+ indicates the source of the person based on the name. of your source tag (i.e. 'Voter', 'Reach Add', etc)
"Campaign Tags" : text --+ semicolon-separated list (i.e. 'Volunteer; Petition Signer; Union Member')
"Prefix" : text
"First Name" : text
"Preferred Name" : text
"Middle Name" : text
"Last Name" : text
"Suffix" : text
"Phone Country Code" : integer --+ For now, always '1'
"Phone" : text
"Email" : text
"Address Line 1" : text
"Address Line 2" : text
"City" : text
"State" : text
"Zip" : text
"Phone Source" : text --+ tells you which data source the phone number came from, or whether it was user-provided. 
"Email Source" : text --+ tells you which data source the email address came from, or whether it was user-provided. 
"Phone Opt-Out" : boolean --+ will be provided any time there is a phone number
"Email Opt-Out" : boolean --+ will be provided any time there is an email address
"{QuestionName1}" : text --+ dynamically-filled and named based on campaign's questions
"{QuestionName2}" : text
"{QuestionName3}" : text

Responses

The “Responses” Export type is designed for uploading responses into a VoteBuilder, EveryAction, NationBuilder, or any other third-party CRM and merging them with existing people records by a unique ID. The CSV file will contain one row per response gathered in Reach. The first column will be a unique ID of the person in Reach (based on whichever you have selected on the Campaign Details screen). Then you will always have columns for Person Reach ID, Canvass Date, Canvass Timestamp, User ID, User Name, and Response ID. Then, you’ll have an additional column for every survey question in your campaign. Survey questions will appear each in their own column, with the column header as the first 50 characters of your question’s name and then the question’s ID in brackets. These survey question columns will be sorted in the order you created them.

It is important to remember that in this type, if a Reach user gathers responses to four questions from the same voter and taps save, that will appear as four rows in this file.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export:

"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export"Reach ID" : text --+ (i.e. '4928943115')
"Canvass Date" : date --+ simple date without time for VAN upload (i.e. '2020-01-07')
"Canvass Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"User ID" : text --+ (i.e. 'R827JVDX')
"User Name" : text
"Response ID" : text --+ (i.e. 'R827JVDX')
"{QuestionName1}" : text --+ dynamically-filled and named based on campaign's questions
"{QuestionsName2}"
"{QuestionsName3}"

Response List

The “Response List” Export type has the same data as the “Responses” Export type, but with some key formatting differences and one more useful field. The “Responses” Export type is specifically designed for uploading responses into VAN, and therefore has a separate column for each Survey Question. The “Response List” Export has the Survey Questions in a list instead, so there is one column for “Question Name”, and one column for “Response Value”.

Like the “Response” Export type, if a Reach user gathers responses to four questions from the same voter and taps save, that will appear as four rows in this file type as well.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export"Reach ID" : text --+ (i.e. '4928943115')
"Canvass Date" : date --+ simple date without time for VAN upload (i.e. '2020-01-07')
"Canvass Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"User ID" : text --+ (i.e. 'R827JVDX')
"User Name" : text
"Response ID" : text --+ (i.e. 'R827JVDX')
"Question ID" : text --+ (i.e. 'R827JVDX')
"Question Name" : text
"Response Value" : text
"Choice ID" : text --+ uuid

Tag History

This export will give you one row per tag-to-person pair. So, if your users have assigned five tags to the same person, that will be represented as five different rows. This allows us to show you what date and time each tag was applied, and by which user. We also include the persons’ name and most recent contact info for good measure. If you need street addresses, we suggest the “People” export type.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export"Reach ID" : text --+ (i.e. '4928943115')
"Person First Name" : text
"Person Last Name" : text
"Phone Country Code" : integer --+ at this time, always '1'
"Person Phone Number" : text
"Person Email Address" : text
"User ID" : text --+ (i.e. 'R827JVDX')
"User Name" : text
"Tag ID" : text --+ (i.e. 'R827JVDX')
"Tag Name" : text
"Tag Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"Tag Date" : date --+ simple date without time for VAN upload (i.e. '2020-01-07')
"Tag Action" : text --+ 'Added' or 'Removed'

Relationships

The “Relationships” export is designed to give you insight into how your volunteers are using the Network feature. You can see who your volunteers are adding to/removing from their Network, as well as when they’re making these changes. You’ll see the person’s name, the User that added them to their Network, the Relationship Status (whether it’s Active, or Archived for relationships a user has removed), when the relationship was created, as well as when the relationship was modified.

There is a separate row for each individual User that adds a person to their Network. For example, if three different users added Jon Snow to their Network, there would be 3 rows for Jon Snow, with a separate row for each of these relationships.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export"Reach ID" : text --+ (i.e. '4928943115')
"Source Tag" : text --+ indicates the source of the person based on the name. ofyour source tag (i.e. 'Voter)
"Campaign Tags" : text --+ semicolon-separated list (i.e. 'Volunteer; Petition Signer; Union Member')
"Person First Name" : text
"Person Last Name" : text
"Email Address" : text
"Phone Country Code" : integer --+ For now, always '1'
"Phone Number" : text
"User Name" : text
"User ID" : text --+ (i.e. 'R827JVDX')
"Relationship ID" : text --+ uuid
"Relationship Status" : text --+ 'Active' or 'Archived'
"Relationship Type" : text
"Relationship Type ID" : text --+ uuid
"Relationship Created Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"Relationship Created Date" : date --+ simple date without time for VAN upload (i.e. '2020-01-07')
"Relationship Modified Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"Relationship Modified Date" : date --+ simple date without time for VAN upload (i.e. '2020-01-07')

Contact Actions

Every time your users tap the Message, Email, or Call button on a person’s profile screen, or tap “Mark as Contacted” from the person’s action menu, we are keeping track of those button taps. This export details all those button tap events triggering contact actions. We give you information about the person, the user, the action, and the Contact Script selected for Message or Email actions (to learn more about setting up Contact Scripts, check out our Knowledge Base article here).

Note that depending on the user’s device, we may have more or less information in this export. For users on iOS, we only record the action if the user actually *sends* the message or email. For external messages, we are also able to include a column with iOS’s app identifier string. On Android and Web, we cannot tell when they’ve actually sent the message, so the action is recorded as soon as the user taps a button indicating that they at least intended to send a message or an email to that person.

These exports also include actions for any time a user updated an added persons’s name or address. Note that users can only update the name or address of a person who they themselves added to Reach, but we want to make sure you know when this happens, so the Contact Actions export is the place to look.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"Reach ID" : text --+ (i.e. '4928943115')
"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export"Person Prefix" : text
"Person Prefix" : text
"Person Preferred Name" : text
"Person First Name" : text
"Person Middle Name" : text
"Person Last Name" : text
"Person Suffix" : text
"Person Address Line 1" : text
"Person Address Line 2" : text
"Person City" : text
"Person State" : text
"Person Zip Code" : text
"User ID" : text --+ (i.e. 'R827JVDX')
"User First Name" : text
"User Last Name" : text
"Action ID" : text --+ uuid
"Action Date" : date --+ simple date without time for VAN upload (i.e. '2020-01-07')
"Action Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"Action Type" : text --+ (i.e 'Marked as Contacted', 'External Message', 'SMS', 'Phone Call, ''Updated Address', 'Updated Name', 'Email', 'Opt Out', 'Up Vote', 'Mark as Wrong')
"Action Source" : text --+ Usually 'Reach'
"Contact Script ID" : text --+ uuid
"Contact Script Name" : text
"External App" : text --+ Only for actions triggered on iOS devices. iOS extension ID (i.e. 'com.facebook.Messenger.ShareExtension')
"Action Card ID" : text --+ uuid of an Action Card. Only filled for contact actions which originated from 'Network Share` Action Cards
"Contact Info ID" : text --+ uuid
"Contact Info Category" : text --+ 'phone' or 'email'
"Contact Info Label" : text --+ user-provided string like 'Home' or 'Mobile'
"Phone Country Code" : integer --+ at this time, always '1'
"Contact Info Value" : text --+ the actual phone number or email address, like '[email protected]' or '9178675309'

Action Card Interactions

Your home screen is full of action cards and those cards have become more and more interactive over time. Users can tap on a customizable Call to Action button to “act” on a card and they can check off a check box on a Task=type card to “complete” that card. More interactions will be coming soon too.

This export will give you all the data about how your users are interacting with your action cards. It includes a row for each interaction event that provides the user, the card, and when/how they interacted with it. Note that the columns about “Points” are not supported yet but are there in preparation for soon-to-come features!

To learn more about setting up Action Cards for your home screen, check out our Knowledge Base article here.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"Interaction ID" : text --+ uuid
"User ID" : text --+ (i.e. 'R827JVDX')
"User Name" : text
"Action Card ID" : text --+ uuid
"Action Card Title" : text
"Action Card Type" : text --+ 'post', 'task'
"Action Card Points" : int --+ total points available via action card
"Interaction Type" : text --+ 'act', 'complete'
"Interaction Timestamp" : datetime --+ (i.e. '2020-01-07 21:34:35')
"Interaction Points Earned" : int

Users

The users export is your route to understanding your Reach users. It includes everything from the Users admin table: our unique User ID, the user’s name, the date they were added to your campaign, their email address, their phone country code, their phone number, their zip code, their state, the user groups they are a part of, their Role (permissions) on the campaign, and all their top-line Reach stats.

The first column of the user export is the unique User ID in Reach which will let you match users to their rows in the other export types. User IDs are consistent across campaigns.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"User ID" : text --+ (i.e. 'R827JVDX')
"First Name" : text
"Last Name" : text
"Email Address" : text
"Zip Code": integer
"State": text --+ 2-char US State Code like'NY'
"Phone Number" : text
"Role" : text --+ 'User', 'Verified User', 'Admin', 'Owner'
"Date Joined" : text
"Added Method" : text --+ 'Direct' or 'Invite Code'
"Invite Code" : text --+ '7J5VM2J8'
"Invite Code Name" : text
"Added by User ID" : text --+ Only for 'Direct' Added Method (i.e. 'R827JVDX')
"User Group IDs" :  text --+ array of UUIDs (i.e. ['e5422f32-4269-45a8-acc7-d84c14b008fc', 'e59a9ade-5c96-4a67-b58c-a02db72075ff'])
"User Groups" :  test --+ array of Group Names (i.e. ["Sunnyside Crew", 'Staff']
"People Surveyed" :  integer
"Relationships" :  integer
"People Contacted" :  integer
"Contacted - SMS" :  integer
"Contacted - Email" :  integer
"Contacted - Phone" :  integer
"Contacted - Another App" :  integer
"Contacted - Marked as Contacted" :  integer

Contact Info

The contact info export will give you all the phone numbers and email addresses which your users have added to people in Reach and chosen to share with you. This export will contain one row per piece of contact info, with the same people often appearing more than once.

Check out a sample CSV file here or the detailed data schema here (each row below represents a column in the CSV export):

"{Export Unique ID}" : text --+ dynamically-filled and named based on External ID selected for this export
"Reach ID" : text --+ (i.e. '4928943115')
"Created Timestamp" : datetime
"Updated Timestamp" : datetime
"Added by User ID" : text --+ (i.e. 'R827JVDX')
"Added by User Name" : text
"Person First Name" : text
"Person Last Name" : text
"Contact Info ID" : text --+ uuid
"Category" : text --+ 'phone' or 'email'
"Label" : text --+ user-provided string like 'Home' or 'Mobile'
"Phone Country Code" : integer --+ at this time, always '1'
"Value" : text --+ the actual phone number or email address, like '[email protected]' or '9178675309'
"Opt-Out" : boolean --+ will be 'true' if the user has specifically opted-out this piece of contact info from your campaign after sharing it with you

Was this article helpful?
How can we improve this article?
Please submit the reason for your vote so that we can improve the article.
Need help?