How to set up voting
To set up voting, add an Entry Display Widget, connect it to the list of entries people will vote on, turn on Enable Voting, set the voting dates and restrictions, then test and publish. Public voting is on the Launch plan and higher. Email Login needs Max, and Google reCAPTCHA needs Scale or higher.
Voting runs in the Entry Display Widget, the gallery that shows the entries in a list. This page covers setup. For limits and fixes, see How voting restrictions and limits work and Why can't people vote?
What voting can and can't do
- Voting happens on your campaign. People vote on your landing page or on your site where the campaign is embedded. They can't vote through Instagram or Facebook.
- Up to three rounds. Each round can show only the top entries from the round before. See Multi-round voting.
- 30 entries per page. The widget shows at most 30 entries per page; contact support if you need more. Showing votes as a percentage only works when every entry fits on one page.
- Text entries on Launch, photos and videos from Build. On the Launch plan, the gallery shows text entries only, for example a name or story contest. On Build and higher, voters can also see and vote on photos and videos, including YouTube, TikTok, Instagram and Vimeo links. Audio files can't be played in the gallery, so they don't work for voting.
- Entries can be added at any time, including while voting is open.
- A vote can't be taken back by the voter. You can adjust vote counts yourself in Entry Details.
- Want voters' names or emails? To collect voter details, add a form that voters complete first. Once they submit it, the vote button appears. See How to collect voter data.
- No restriction is fraud-proof. Email Login (Max plan) is the most secure option. If the prize is valuable and you use a lighter restriction such as Anonymous Fingerprint, think about using the vote to pick finalists and having judges choose the winner.
Before you start
You need a list of entries to vote on. Either collect them with a Form Container, or add your own. See Adding votable entries.
Set up voting
The Entry Display Widget's settings are split into tabs down the left side: List Display, Voting, Fields, Share, Text, Visibility and Extras. The steps below follow that order. Click Next to move to the following tab.
1. Add the Entry Display Widget
Insert the Entry Display Widget into your campaign by clicking Insert in the Edit Widget Panel.
2. List Display: choose the entries
- List: if your campaign has a form, its list is connected to the widget automatically. If there's no form and no list, you're prompted to choose or create a list. Use a new list for each contest. Votes belong to the entries in a list, so a list reused from last year's campaign brings last year's votes with it.
- Display options (optional): choose how entries are sorted, and how many show per page.
- Filtering (optional): check Hide unapproved entries so only entries you have approved appear, and only those can be voted on. You can also filter by votes/points, category or label.
3. Voting: turn on voting and set the dates
- Check Enable voting.
- Click the blue Show total votes received text to switch to Show percentage of total votes or Hide votes.
- Check that the Current voting round is Round 1, unless you are setting up a later round.
- Set a Start date and End date. The vote button appears only between them, and the entries stay visible before and after. If you leave the dates empty, people can vote as soon as the campaign is published and entries appear.
Voting dates follow the Campaign time zone shown under the dates. A new campaign starts with the time zone of the account that created it, and you can change it for each campaign in Campaign Settings → General; changing it here changes it for the whole campaign. The same time zone decides when a new calendar day begins for per-day vote limits.
4. Voting: set restrictions
In the Voting Restrictions section, check Restrict voting, then click any blue text to change it.
- Restrict by: anonymous fingerprint, or email address (Email Login, Max plan).
- Allow: how many votes per entry, and add an interval if voters can vote again later, for example 1 vote per entry every day.
- Maximum votes per user: leave it as unlimited, or set a cap across all entries.
- Error message when vote exceeds above limits: the message voters see when they hit a limit. The default is "You already voted!".
- Enable Google reCAPTCHA (Scale plan and higher): adds a bot check to each vote. Set up your reCAPTCHA credentials in an integration profile under Campaign Settings → Security first.
Without restrictions, anyone can vote any number of times, and bots will find the contest. For how the limits combine, see How voting restrictions and limits work.
Under Advanced, Start with Vote button hidden keeps the button hidden until an Action Widget shows it, for example after a voter submits a form.
5. Fields: choose what each entry shows
Pick what appears on each entry in Tile View and in Pop-Up View: entrant name (for example, first name and last initial), entry title, entry description, entry category, and photos or videos. Custom fields can only be shown in Pop-Up View.
6. Share: let voters share entries
Check Enable sharing so voters can ask friends to vote. Shares can use the entry's title, description, and image, or a custom image, title, and description that you provide. Click the respective text to change the settings. Under Select Platforms, choose which options to offer (Email, Facebook, X (Twitter), Pinterest, LinkedIn, SMS, Share Manually and System) and drag them into the order you want.
7. Text: change the wording
Change the text of buttons and messages, such as Vote, Votes, Voted, Load More and No entries found, and the two error messages: "An error occurred with your vote. Please refresh the page and try again." and "We could not verify that you are human. Please refresh the page and try again."
8. Visibility: choose when the widget shows
Set whether the widget starts visible, and optionally when it should Start showing and Stop showing, in the campaign time zone. Visibility controls the whole widget; the voting dates in step 3 control only the vote button. If the widget is hidden, nobody can vote, even during the voting dates.
9. Extras: optional
Add CSS classes for custom styling, or Action Labels for use with Action Widgets. Most campaigns can skip this tab. Click Save and Exit.
10. Test and publish
- Click Preview at the top of the Campaign Builder.
- Use the Current Time dropdown to view the campaign at your voting start time, and check that the vote button appears.
- Click Publish Changes. Edits to a published campaign aren't live until you do.
If you vote on the live campaign to test it, remove those votes afterwards with a vote adjustment in Entry Details.
When voting doesn't work
Check these first
For error messages and other symptoms, see Why can't people vote?
FAQs
Which plan do I need for voting?
Public voting is on the Launch plan and higher, and Anonymous Fingerprint restrictions come with it. On Launch, the gallery shows text entries only; photo and video entries need Build or higher. Google reCAPTCHA needs Scale or higher, and the Email Login restriction needs Max. See How voting restrictions and limits work.
Can people pay or donate to vote?
No. ShortStack doesn't support buying or donating for votes. You can collect donations on another site and send people to the campaign afterwards, but a donation can't change how many votes someone gets.
Can I add entries after voting has started?
Yes. Add them at any time in the Campaign Builder with Live Entries mode on and Edit mode off. They appear in the Entry Display Widget and can be voted on straight away. See Manually add entries.
Can people vote on Instagram or Facebook?
No. Voting happens in the Entry Display Widget on your published campaign, either a landing page or an embed on your site. Share the campaign link in your posts, Stories or bio instead.
Can a voter take back a vote?
No. A vote counts as soon as the voter clicks the vote button. If a voter asks you to remove one, adjust the entry's count in Entry Details.
Can I collect voters' names and email addresses?
Yes, with a form that voters fill in before the vote button appears. Email Login doesn't collect addresses; it only verifies the voter. See How to collect voter data.
Related resources
Why can't people vote? Troubleshooting voting
Was this helpful?
Thanks — that helps us decide what to fix next.
Sorry this missed. Tell us what you needed and we'll get you an answer — and fix the page.