Phoenix Documentation
Phoenix ProductionPhoenix PreviewContentful
Primary version
Primary version
  • 🔥Phoenix 🔥
  • Installation + Usage
    • Prerequisites
    • Installation
    • Usage
  • Development
    • Architecture
      • Heroku
    • Content Types
      • Action Stats Block
      • Campaign
      • Content Block
      • Cause Page
      • Company Page
      • Current Club Block
      • Current School Block
      • Embed
      • External Link
      • Landing Page
      • Link Action
      • Metadata
      • Page
      • Photo Submission Action
      • Selection Submission Action
      • Share Action
      • Signup Referrals Block
      • Social Drive Action
      • Voter Registration Action
      • Voter Registration Drive Action
      • Voter Registration Marketing Page
      • Voter Registration Referrals Block
    • Features
      • Affiliate Opt In
      • Affiliate Scholarship Block
      • Analytics Waypoint
      • Delayed Element
      • Dismissable Element
      • Stat Card
      • General Buttons
      • Groups
      • Paginated Campaign Gallery
      • Popover Dispatcher
      • Refer A Friend
      • Referrals Gallery
      • Sitewide Banner
      • Sixpack A/B Testing
        • Code Tests
        • Contentful Tests
        • Testing Tips
      • Tooltip
      • Traffic Distribution
      • Volunteer Credits
      • Voter Registration
      • Zendesk Form
    • Contentful
      • Workflow
      • Content Management API Scripts
    • Helpers
  • Phoenix API
    • v2
      • Campaigns Resource
      • Posts Resource
      • Zendesk Endpoint
  • Data + Performance
    • Monitoring
    • Analytics
    • Logging
  • Contributing Instructions
    • Edit This Documentation
    • Glossary
Powered by GitBook
On this page
  • Overview
  • Import
  • Tracking Source
  • Voting Portal
  • Influencers / Marketing Partners
  • Content types
  • Utilities
  • CivicEngine Voter Widget
  • Start Voter Registration Form
  • Online Drives
  • Voter Registration Drive Page
  • Quiz
  • Voting Quiz Campaign
  • Appendix
  1. Development
  2. Features

Voter Registration

PreviousVolunteer CreditsNextZendesk Form

Last updated 4 years ago

Overview

We partner with to register young people to vote on behalf of DoSomething.org, by redirecting to them to the Rock The Vote (RTV) registration website and appending our partner ID:

register.rockthevote.com/registrants/new?partner=37187

We can pre-populate the voter registration email address and zip via email_address and home_zip_code query parameters, which we often include when redirecting an authenticated user on the web:

rockthevote.com/registrants/new?partner=37187&source=user:58e68d5da0bfad4c3b4cd722,source:web,source_details:onlinedrivereferral,referral=true&email_address=puppet.sloth@dosomething.org&home_zip_code=94116

Import

Our importer app, downloads all voter registrations created with our partner ID, and imports them as voter-reg posts by posting to the Rogue API. See for details.

Tracking Source

When we redirect to the RTV registration form, we include a source query parameter. Per the , a source parameter is used to:

track the success of various campaigns, affiliates, social media posts, and more using just one tool.

When we download the RTV reports, each registration contains the source query parameter that was present when the user began their registration. The expected values to pass for the source are comma-separated key:value substrings:

user:5547be89469c64ec7d8b518d,source:web,source_details:VoterRegQuiz_completed_notsure

This tracking source value is saved within the serialized details field of the voter-reg post, and is utilized by both the Chompy import and Looker:

  • user - This is the Northstar user ID of either the authenticated user registering to vote, or the referring alpha user for a beta registration, when the referral key is present.

  • group_id - This is the stored on the campaign signup, if user is sharing their link from a .

  • source - This is similar to a utm_source.

    • Examples: web, sms, email

  • source_detail - This is similar to a utm_campaign.

    • Examples: , broadcastID_4YOiqwTVOOVklZFARAFd4h, VoterRegQuiz_completed_votebymail, onlinedrivereferral

  • referral - If this is set, the user parameter should be used as the referrer_user_id on the voter-reg post.

Notes

Voting Portal

When constructing a URL for the voting portal, we include the tracking source via a r query parameter, which is then added as a source parameter when redirecting the user to the RTV registration site after they enter their email and zip (handled via JS on Instapage).

Example:

vote.dosomething.org/covid19?r=campaignID:8017,campaignRunID:8022,source:web,source_details:VoterRegQuiz_completed_notsure

We've started the process of transitioning to a new voting portal hosted directly on our site at /us/vote. The Tracking Source used for the voter registration form on this page functions as described above in [Tracking Source]('#tracking-source'). In the event that an r query parameter is present in the URL we'll include that value as the tracking source instead.

Influencers / Marketing Partners

source:influencer,source_details:noor_aldayeh

We've started porting over our influencer & marketing-pertner Instapages over to our own website.

The pages are powered by the Voter Registration Marketing Page Contentful content-type.

Content types

Utilities

CivicEngine Voter Widget

The Voter Widget is hosted on BallotReady - for 2020 we subscribed to maintain our own instance of the widget, instead of using the shared TMC instance (switch was made on October 13, 2020 from shared to white-labelled)

Start Voter Registration Form

A clicked_voter_registration_action analytics event is fired when the user submits the form to continue their voter registration on the RTV registration site.

Online Drives

Voter Registration Drive Page

The VoterRegistrationDrivePage is a hardcoded component, displayed on path /us/my-voter-registration-drive?referrer_user_id=58e68d5da0bfad4c3b4cd722 (where the referrer_user_id is our alpha's user ID).

This beta page shares some components with the OVRD campaign pages, like its CoverImage and scholarship information. The OVRD campaign's contentful ID, 3pwxnRZxociqMaQCMcGOyc, is the same in all of our dev, qa and production spaces. Usually this isn't the case -- our Contentful ID's don't match between our dev and production spaces -- but this entry was created before we introduced different Contentful environments to our Phoenix space. Because of this, we're able to hardcode this Contentful ID to use in both dev and production environments.

We hardcode specific configuration ContentBlock ID's:

Production:

Dev:

Notes:

vote.dosomething.org/member-drive?userId=${referrerUserId}&r=user:${referrerUserId},source:web,source_details:onlinedrivereferral,referral=true

This page had inline JS that would query Northstar to find a user's first name based on the userId query parameter passed.

Quiz

The Quiz content type is only used for voter registration campaigns.

Users are redirected to /us/quiz-results/:id to see their quiz result on a Quiz Result Page.

The QuizResultPage component expects the :id route parameter to be the ID of one of the Link Action entries referenced by the Quiz's Result Blocks multi-value reference field.

To display the Start Voter Registration Form on a quiz result, add a sourceDetails property to the Additional Content field on the quiz result's Link Action entry. This value will be set to the source_details of the voter registration tracking source if a user submits the form.

A header image can be added by selecting an asset in the Affiliate Logo field.

A static Gallery Block entry is displayed all for all Quiz result ID's:

  • Production: 78WaGsvDEzAxnreEvNx3Za

  • Dev: 2VGFq3XBcqCfKOA8mC5mP4

Voting Quiz Campaign

  • Gated: /us/campaigns/ready-vote - user must signup to take the quiz from the action page

  • Ungated: /us/campaigns/ready-vote/quiz/ready - user can take quiz but must signup to see their result

Production Quiz Results:

Dev Quiz Results:

Related links:

Notes:

Appendix

Voter registration features built in 2020.

OVRD

An OVRD alpha page is a campaign action page, which displays VoterRegistrationDriveAction and VoterRegistrationReferralsBlock entries in its blocks field.

The OVRD beta page is hardcoded to render a VoterRegistrationDrivePage component at path /us/my-voter-registration-drive.

Misc

Some older voter registration URLs may contain campaignID and campaignRunID keys within their tracking source. These have long been deprecated by the import: when we first started on voter registration, we used multiple campaigns. The import would update the campaignID and campaignRunID values on the voter-reg post if present within the tracking source. See for details.

We host our voting portal, on Instapage. It displays a form that prompts for email and zip, and redirects them to the Rock The Vote registration URL with our partner ID, pre-populating the email and zip submitted from the form.

We host customized voter registration drives for influencers on our Instapage, by creating pages like on Instapage and passing a relevant tracking source when redirecting to the RTV registration site:

- Links to a voting portal page. A clicked_voter_registration_action analytics event is fired when the user clicks on the CTA to visit the voter registration portal.

- Used in

- Used in

A can be embedded in the footer of a .

Note: For the 2018 election, we used a PollLocator component which linked to the Voting Information Project. In 2020, we'll instead be using the CivicEngine Voter Widget as a polling locator, so the PollLocator component was removed in .

The StartVoterRegistrationForm component displays form fields for email and zip, and redirects a user directly to the RTV registration site upon submitting. It's currently hardcoded on the and the components, and displayed on .

The call to action in the asks a member (the alpha) to get their friends to register to vote, by providing them with a (the betas).

- 2d2i2M3yn4RB9pZYVzQxGm

- 4yP8BdIdiGU0qwZaFyzmsm

- 30rCn63G1rnpzojCXC9PmF

- bt0jUBYJaKoi1oab25Wmx

- 3cXc0RPMVNeE4surEqFujL

- 3p2qz2JPCvgVitgRVBoMFz

The initial version of OVRD beta page was hosted on Instapage - . Example URL:

- Vote By Mail

- In-Person Voting

- Unsure of Voting

- Ineligible to Vote

- This was removed in when we moved editorial guides into the .

Please avoid editing the Quiz entries if possible, as (deleting one of the LinkAction entries referenced by the resultBlocks field would not be pretty).

-- Note, you must join a group from the campaign landing page to avoid action page errors.

Rock The Vote
Chompy
import docs
RTV docs
Rogue group ID
groups OVRD campaign
hellobar
#171090116
vote.dosomething.org
https://vote.dosomething.org/NoorAldayeh
VoterRegistrationAction
CivicEngine Voter Widget
ContentBlock
#2373
Online Voter Registration Drive (OVRD) campaign
custom OVRD page URL to share with their friends
Register To Vote ContentBlock
FAQ ContentBlock
OVRD Campaign Link ContentBlock
Register To Vote ContentBlock
FAQ ContentBlock
OVRD Campaign Link ContentBlock
https://vote.dosomething.org/member-drives
p7hqjSP4Y1U6ad0UDz4iS
1giTEF3B2hO2CyccmhlVDm
21PDBge2bKCTWMe5f9eo1H
14KfeAs265httjNMf1jwTw
347iYsbykgQe6KqeGceMUk
1lvJHhlJqQSgKgwIwUymQ8
2KfkCOTi7u4CqAyyCuGyci
Quiz documentation
#1369
Campaign Playbook
they are delicately configured
Individual
Group
Individual
Group
Quiz Result (QuizResultPage)
Leaderboard (ActionStatsBlock)
GOTV Block (GetOutTheVoteBlock)
CivicEngine Voter Widget (CivicEngineVoterWidget)
VoterRegistrationDriveAction
OVRD campaigns
VoterRegistrationReferralsBlock
OVRD campaigns
Voter Registration Marketing Pages
Voter Registration Drive Page
Quiz Result Page
Content Block - CivicEngineVoterWidget footerType