Impactive can export your entire raw dataset to an export database - this export database can be queried, analyzed, and used to build data pipelines to do just about anything with all of your data from Impactive.
In this article, we'll share some helpful context and tips for how to make sense of your export database.
You can find a full guide to all tables and data fields in our data dictionary.
Export databases are available for Enterprise clients only. Looking to upgrade to an Enterprise plan with an export database? Reach out to [email protected].
Understanding Tables
Impactive's data is structured as a standard relational database using Postgres. Below, we'll cover the general purpose of these tables and some of the important values you'll see inside to help you better leverage your data.
Users
Users are your volunteers and administrators - anyone with an Impactive log-in. This table will have metadata about each user and some aggregate statistics, but keep in mind that since users can participate in more than one campaigns, this data won't be specific to a single campaign. Campaign-specific data can instead be found in the User Campaigns table.
Campaigns
Campaigns are the equivalent of licenses in Impactive. If you have multiple Impactive licenses - for instance, if you have one for your c3 and one for your 527 PAC, or if you have multiple affiliates or chapters - you'll see a campaign for each license.
User Campaigns
These represent a user's overall activity and permission information. `campaign_role` will indicate if the user is a Volunteer, Staff, Admin, or Owner, and additional columns detail individual permissions.
Activities
More commonly known as "actions," these represent individual user calls-to-action such as text banks, phone banks, relational organizing appeals, voter registration campaigns, broadcast message blasts, forms, and more. The `type` column will be important to filter actions to the specific type you might be analyzing. Here are the mappings for each type of action:
TextAListActivity = Peer to Peer Texting
TextAFriendActivity = Friend to Friend Texting
IdVotersActivity = Open Canvassing
TestimonialActivity = Submit a Testimonial
SocialShare = Share on Social Media
WebActivity = Open a Web Page
SurveyActivity = Form
DialerActivity = Phone Bank
User Activities
These represent a particular user's involvement in a specific activity (action). The table includes metadata about the user as well as some aggregate stats on their engagement.
Contacts
Contacts are the individuals that are imported/uploaded and reached/engaged via Impactive - via texting, calling, forms, etc. Because Impactive is primarily a texting and calling platform revolving around contacts' phone numbers, contacts are unique based on their `phone` attribute. This table includes any metadata that has been uploaded about each contact, and frequently includes ID attributes used for syncing to third-party integrations such as NGP VAN/EveryAction, PDI, etc.
For context, note that contacts can enter Impactive in several ways:
Via CSV import
Via integration with third-party tools like NGP VAN/EveryAction and PDI
Programmatically via API
When contacts fill out an Impactive form or voter registration check
Messages
This table stores texting and/or relational messaging interactions. It's important to understand the various `type` of messages you'll see in the database:
SmsMessage: represents a message from a user's personal phone number to one of their personal contacts (via Friends and Family Messaging) or from a user's personal phone number to an assigned contact (via Canvassing)
TwilioMessage: represents a message between a user and an uploaded contact, via Peer-to-Peer Texting
BroadcastMessage: represents a message sent by an administrator (user) to an uploaded contact, via Broadcast Texting
CanvasserMessage: represents the occurrence of a report being filled out; not an actual text message, but an informational message that will be displayed in the conversation on the Impactive platform so the user can see the contact's engagement history
InviteMessage: represents a user message sent to a personal contact inviting them to join Impactive
It is also important to understand the sender_type and receiver_type columns - "user" or "contact" - to know if the message was sent by a user or a contact. See above for description of the difference between users and contacts.
You will also see `selected_voterbase_id` in this table and others. This variable represents a unique voter ID and is used particularly for electoral campaigning on the Impactive platform to make voterfile-aligned analysis easier for campaigns.
Another helpful columns is the `script_type` column which indicates if the script send was an “initial” outbound message or a follow up “response” to a reply.
Reports
Reports represent a form submission by a user. The `reportable` columns indicate if the individual being reported on was a user, contact, or userContact (a personal contact, i.e. friend or family member, of the user).
Each report has many taggings and customizations that represent values of the tags and custom fields in the report.
Conclusion
Impactive export databases are constantly evolving, with new tables and metadata being added by popular demand, new feature launches, etc.
Feel free to reach out to [email protected] to request any additional data or request help in analyzing anything in your export database.