A truly secret ballot
BotGG records that you voted and, separately, what was voted, with no link between the two. Nobody can see a member’s choice: not staff, not the console, not the API.
Elections let your members choose who leads them. Candidates nominate themselves or each other and post a statement, members cast a secret ballot (single choice or ranked choice), and the winners get the role you picked, for good or for a fixed term. No spreadsheets, no public reactions anyone can count.

BotGG records that you voted and, separately, what was voted, with no link between the two. Nobody can see a member’s choice: not staff, not the console, not the API.
Pick one candidate, or rank them. Ranked ballots are counted by instant runoff, round by round, and multi-seat elections fill every seat from the same ballots.
Members run for office themselves, nominate someone who then accepts or declines, or are added by staff. Each candidate writes a statement voters can read before they vote.
Decide who may vote and who may run: minimum account age, days in the server, a minimum level or specific roles. Ineligible members can’t vote or stand.
Winners get the role automatically, permanently or for a term through Temporary roles. Optionally, members who held the role but didn’t win lose it.
Results post in the channel with vote totals or every runoff round. You can require a quorum, so an election with too few ballots elects nobody.
Open https://console.botgg.app, choose your server and switch on Elections in the Community section. Pick the panel channel, election managers and your default rules.
Use /election create or the console: title, role, single or ranked choice, seats, how long nominations and voting last, the term and who may vote or run.
Members press Run for office or use /election nominate, write a statement and wait for the vote. Peer nominees accept or decline from a prompt.
Voting opens on schedule. Members press Vote and pick or rank candidates in a private menu. When it closes, BotGG counts, posts the results and hands out the role.
Each member can vote once, and a ballot is final. Who voted and what was voted are stored in two separate places, written in the same step, and the ballot carries no member ID and no time. Anyone with access to the console or API sees turnout and totals, never a person’s choice. Ballots and the list of who voted are deleted 90 days after the election ends; only the totals stay.
Every phase moves on its own: nominations close, voting opens and the count runs on time. An election without candidates is cancelled; one with no more candidates than seats is won unopposed without a vote. Running elections at a time: 1 on Free, 10 on Pro.
/election create, /election advance, /election cancel: for election managers/election nominate, /election withdraw, /election statement: for candidates/election vote and /election candidates: for votersGenerated from the bot’s real command definitions. Full list on the commands page.
/electionElections: run for a role, vote by secret ballot, see the results8 subcommands/election createtitlerole?method?seats?nomination_hours?voting_hours?term_days?channel?Start an election (staff)/election nominatemember?election?Run for office, or nominate another member/election withdrawelection?Withdraw your candidacy/election statementelection?Write or edit your candidate statement/election voteelection?Cast your secret ballot/election candidateselection?See the candidates and their statements/election advanceelection?Close the current phase now (staff)/election cancelelection?Cancel an election (staff)Every feature works on the Free plan. Pro raises the limits and unlocks extras.
| Limit | Free | Pro |
|---|---|---|
| Running elections | 1 | 10 |
Turn on Elections in the BotGG console and run /election create with the role, the method and the dates. Members nominate themselves, vote with a button, and BotGG counts and gives the winners the role.
Yes. Ballots are stored without any member ID or timestamp, separately from the list of who voted. Staff, the console and the API only ever see turnout and totals. Ballots are deleted 90 days after the election.
Voters rank the candidates in order. If nobody has a majority, the last candidate is eliminated and their ballots move to each voter’s next choice, until someone wins. It avoids splitting the vote between similar candidates.
Yes. Set a term in days and the role is given through Temporary roles, so it is removed automatically when the term ends. Set 0 for a permanent role.
Set a minimum account age and minimum days in the server for voters, or require a level or a role. Each member can vote once per election.
Add BotGG for free, then switch features on in the web console.