Embed Page Transport URLs allow users to directly access any TurboVote experience from the page embedding TurboVote on your website. They make it easier for voters to take action using TurboVote and eliminate the need to embed different TurboVote features across multiple site pages. Instead, you can maintain a single page hosting the TurboVote home page embed and use Embed Page Transport URLs to quickly direct users towards a specific TurboVote experience within the embedded hub.
This video provides a brief introduction to Embed Page Transport URLs and walks through the steps to create them. You can also read full details below.
Why are Embed Page Transport URLs helpful?
Embed Page Transport URLs help voters complete the tasks your campaign wants them to, such as checking their registration status or viewing an Election Guide.
When you embed TurboVote on your organization’s website, users can access the full functionality of the platform from a single page. Every TurboVote embed code sets a TurboVote page to show by default (e.g., your TurboVote home page). However, during your voter outreach efforts, you may want to direct users to view a specific TurboVote experience.
Although you can create separate pages on your site dedicated to hosting specific TurboVote experiences (such as this example page embedding an Election Guide: https://planmyvote.org/election-state), it can be overwhelming for voters to navigate and requires a lot of effort to manage separate pages for different TurboVote tools.
Using an Embed Page Transport URL, users can click a link or scan a QR code to navigate directly to a specific experience within your TurboVote embed. You can even append a user’s personalization ID to a link to have the embed show them personalized content based on the information on their account. This allows your audience to access TurboVote from a centralized location on your site, while giving you the flexibility to easily promote timely TurboVote tools.
How can you create an Embed Page Transport URL?
Your TurboVote embed code sets a specific TurboVote page to display by default. The embed code’s iFrame src URL specifies the content to be embedded on your site page. Embed Page Transport URLs change this embedded content by overriding both the page path and query parameters of the default src URL.
By appending new transport parameters to the URL hosting your site’s TurboVote embed, you can share links that direct users towards specific TurboVote experiences without changing your embed’s default settings.
Follow these steps to create an Embed Page Transport URL:
-
Step One: Go to the embedded TurboVote landing page on your organization’s website. Follow these guidelines to seamlessly embed TurboVote on your site.
Example:
www.YOURWEBSITE.com/vote -
Step Two: Choose the TurboVote experience you want your audience to be directed to.
What action do you want to help voters take?
Such as:
-
Step Three: Choose the page path applicable to the TurboVote experience you selected. A full list of TurboVote page paths is available here. Copy the relevant page path from the “Landing Page” column.
What is a page path? A page path is the part of a TurboVote URL that defines which landing page, tool, or guide you want to embed on your website.
For example:
- Upcoming elections for an address:
/search/address - Sign-up forms, such as Election Reminders:
/reminders/voter-info -
Election Guides:
/elections/ny/2026-11-03
- Upcoming elections for an address:
-
Step Four: Prefix your page path with
?tv-p=and add it to the landing page link.Example:
www.YOURWEBSITE.com/vote?tv-p=/reminders/voter-infoThis example directs voters to sign up for TurboVote Election Reminders. The page path for Election Reminders is
/reminders/voter-info. -
Step Five: Determine your query parameters.
What are query parameters? Query parameters define how users experience the embedded content and what data is passed along.
For example:
- Override language default to show content in English:
/&tv-lang=enOR Spanish:/&tv-lang=es - Associate users who sign up with a referral code:
&tv-r=springcampaign - Customize a TurboVote experience for a user’s account info by appending a Personalization ID:
&tv-user={personalizationId}
Query parameters for Embed Page Transport URLs are prefixed with
?tv-if you are not updating the page path. If you are updating the path and/or appending multiple parameters, use?tv-for the first parameter and&tv-for subsequent parameters.Example:
www.YOURWEBSITE.com/vote?tv-p=/reminders&tv-r=maynewsletter2026This example associates users who sign up for Election Reminders using this link with the “
maynewsletter2026” referral code. The&tv-prefix is used because the page path was also updated.You can also use UTM parameters with Embed Page Transport URLs. There is no need to include the
tv-prefix used for Embed Page Transport URLs on UTMs. You can combine UTMs with other parameters that require thetv-prefix. For example, the following link overrides the default referral code and adds a UTM parameter.Example:
www.YOURWEBSITE.com/vote?utm_source=newsletter&tv-r=launch - Override language default to show content in English:
Embed Page Transport URL Examples
The two transport parameters (page paths and query parameters) can be used alone or in combination. This table lists several possible, non-exhaustive use cases:
| Example | Path | Query Parameters | Example URL |
| Change path to show specific State Voting Hub (California) | ?tv-p=/how-to-vote/ca |
None | https://planmyvote.org/vote?tv-p=/how-to-vote/ca |
| Change path to show specific State Voting Hub (California) in Spanish | ?tv-p=/how-to-vote/ca |
&tv-lang=es |
https://planmyvote.org/vote?tv-p=/how-to-vote/ca&tv-lang=es |
| Change path to show Request an Absentee Ballot tool and override default referral code | ?tv-p=/request-ballot/voter-info |
&tv-r=instagram-story-4 |
https://planmyvote.org/?tv-p=/request-ballot/voter-info&tv-r=instagram-story-4 |
| Change path to show Where to Vote Search | ?tv-p=/search/where-to-vote/address |
None | https://planmyvote.org/?tv-p=/search/where-to-vote/address |
| Set existing embed to display in Spanish | None | ?tv-lang=es |
https://planmyvote.org/vote?tv-lang=es |
| Override default referral code on existing embed | None | ?tv-r=springcampaign |
https://planmyvote.org/vote?tv-r=springcampaign |
| Override default referral code on existing embed and add a UTM parameter | None |
|
http://planmyvote.org/vote?utm_source=newsletter&tv-r=launch
|
| Prepopulate a sign-up form with a user's name, contact info, and address | ?tv-p=/reminders/voter-info |
|
https://planmyvote.org/vote?tv-p=/reminders/voter-info&tv-first-name=Harvey&tv-middle-name=Bernard&tv-last-name=Milk&tv-preferred-name=Mayor%20of%20Castro%20Street&tv-email=harvey.milk@gmail.com&tv-sms=999-999-9878&tv-birth-date=1930-05-22&tv-street=575+Castro+Street&tv-street2=5B&tv-city=Fresno&tv-state=CA&tv-zip=94114&tv-zip4=3333 |
| Prepopulate a sign-up form with a user's name, contact info, and address, and display the form in Spanish | ?tv-p=/reminders/voter-info |
|
https://planmyvote.org/vote?tv-p=/reminders/voter-info&tv-first-name=Harvey&tv-middle-name=Bernard&tv-last-name=Milk&tv-preferred-name=Mayor%20of%20Castro%20Street&tv-email=harvey.milk@gmail.com&tv-sms=999-999-9878&tv-birth-date=1930-05-22&tv-street=575+Castro+Street&tv-street2=5B&tv-city=Fresno&tv-state=CA&tv-zip=94114&tv-zip4=3333&tv-lang=es |
| Personalized user’s Voting Hub based on address on account | ?tv-p=/ |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/&tv-user=aAqIYOykSFW-yN-4RqxJYg |
|
Personalized user’s next election based on address on account
|
?tv-p=/n |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/n&tv-user=aAqIYOykSFW-yN-4RqxJYg |
| Personalized user’s next Sample Ballot based on address on account | ?tv-p=/n/b |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/n/b&tv-user=aAqIYOykSFW-yN-4RqxJYg |
| Personalized user’s next Where to Vote guide based on address on account | Coming soon | Coming soon | Coming soon |
| Personalized user check registration status based on info on account | ?tv-p=/check-your-registration/status |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/check-your-registration/status&tv-user=aAqIYOykSFW-yN-4RqxJYg |
| Personalized user registration assistance based on info on account | ?tv-p=/register-to-vote |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/register-to-vote&tv-user=aAqIYOykSFW-yN-4RqxJYg |
| Personalized user request ballot based on info on account | ?tv-p=/request-ballot/ |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/request-ballot/&tv-user=aAqIYOykSFW-yN-4RqxJYg |
| Personalized user account update page | ?tv-p=/account/by-id/ |
&tv-user={personalizationId} |
https://planmyvote.org/vote?tv-p=/account/by-id/&tv-user=aAqIYOykSFW-yN-4RqxJYg |
Interested in learning more? Contact our team at partnerships@democracy.works for a demo and more information.