Skip to content

Upvote

The Upvote space module, in the Community tab. A board where members propose topics, vote (one vote per person, retractable) and comment, and the staff approves, changes the state, merges duplicates, archives with a reason and reopens. Sorting, filters, columns, public reading, limits, e-mail notices, and the same actions through the assistant and the API.

Upvote is a board where members say what they want: each person proposes topics (an idea, a request, an improvement), everyone votes for the ones they back, and the most voted rise. The staff answers by changing each topic's state (Planned, In progress, Done or Archived, with the reason), and whoever voted is notified.

It is a space module in the Community tab of Add Space. One space is one board: for separate boards (product, events, content), create several spaces. Who creates the space: owner or admin.

Upvote, Poll or Survey?

PollSurveyUpvote
Who asksThe staffThe staffMembers propose
OptionsFixed, written by the staffA questionnaire in sectionsAn open list that grows every day
Where it livesIn a Feed or Content postIts own space and a public linkIts own space
VotePick an option; only the staff sees who voted for whatIdentified or anonymous answerOne vote per topic, on as many topics as you like; retractable
EndCloses at a deadlineA period, with results and NPSNever closes; each topic has its own outcome
What forDecide among a few options nowMeasure satisfaction and climateFind out what the community wants and show what was done

Rule of thumb: the staff wants to know between A, B or C → Poll; wants to measure → Survey; wants members to say what they want and show what it did with that → Upvote.

Who can do what

ActionWho
Read the board, topics and commentsWhoever opens the space; in a public space, also a visitor without login
Vote, take the vote back and commentWhoever opens the space, signed in
Propose a topicWhoever the space's Who can post allows
Edit and delete your own topicThe author, until someone else votes on it
Approve, edit, change the state, merge, archive, reopen, see who voted and deleteThe staff: owner, admin and moderator. Finance isn't part of it
Turn on prior approvalOwner and admin

How it works

The board

Each topic shows in a card with the vote button on the left (the arrow and the number, filled when you voted), the title, a snippet of the description, the author, the comments and the state badge.

  • Sort by: Most voted (the default; on a tie, the newest), Newest and Trending (the most voted in the last 7 days, updated every hour).
  • Filters: All (everything but archived), Open, Planned, In progress, Done, Archived, My topics and Voted.
  • View: List or Columns (Open, Planned, In progress and Done, each by most voted). On a phone, the columns become tabs by state, one at a time.

The list gets a single line with the states and compact menus, Sort and Filter (including All topics), and the columns stop repeating the state on every card. On a topic, the bar keeps Edit and Change state, and the rest goes to More actions.

The vote

Each person has one vote per topic and votes on as many topics as they like. Clicking again takes the vote back. Whoever proposes already starts voting on their own topic (and can take it back).

Everyone sees the count; who voted, only the staff sees, in Who voted, with the date each person joined the community (it helps spot duplicate accounts).

Voting and taking the vote back only work on Open, Planned or In progress topics. In Done and Archived, voting freezes: you can neither vote nor take the vote back.

The states

StateWhat it meansVoteComment
OpenTaking votesYesYes
PlannedThe staff will do itYesYes
In progressThe staff is doing itYesYes
DoneReadyFrozenYes
ArchivedWon't go ahead, with the reason visible to everyoneFrozenNo

Only the staff changes the state. Each change takes a Note for voters ("shipped in the March release"); archiving requires the Reason. Reopen takes a Done or Archived topic back to Open. The votes always stay.

Is there something similar already?

When proposing, from the third word of the title up to 5 topics from the same board that share words with it show up under Is there something similar already?. If one of them is what you want, Vote for this gives it your vote instead of creating another.

Merge duplicates

When two topics ask for the same thing, the staff uses Merge into… on the repeated one and picks the original, which must be Open, Planned or In progress, on the same board. The repeated one is archived as "Duplicate of "</em>, with the link; the votes move to the original <strong>without counting twice</strong> whoever voted on both; the comments stay on the repeated one. <strong>A merged topic doesn't reopen.</strong></p> <h3 id="comments"><a class="anchor" href="#comments" aria-hidden="true" tabindex="-1">#</a>Comments</h3> <p>Whoever opens the space comments and replies (one level of replies), up to 2,000 characters. The comment's author and the staff delete; deleting a comment takes its replies along. An archived topic takes no more comments.</p> <h3 id="prior-approval"><a class="anchor" href="#prior-approval" aria-hidden="true" tabindex="-1">#</a>Prior approval</h3> <p>With <strong>Prior approval</strong> on, members' topics only show on the board after the staff approves. Until then, the topic is <strong>Awaiting approval</strong>, visible only to the author (in <strong>My topics</strong>) and the staff, and takes no votes or comments. If the author edits the text of an already approved topic, it goes back to approval. Staff topics go straight in.</p> <p>The staff sees the <strong>Manage board</strong> bar, with how many topics are waiting and the <strong>Approval queue</strong> button, which lists the pending ones with <strong>Approve</strong> and <strong>Reject</strong> (a rejected topic stays visible only to the author and the staff). Pending topics also show in <a href="/en-us/membros/moderacao">moderation</a>.</p> <h3 id="public-reading"><a class="anchor" href="#public-reading" aria-hidden="true" tabindex="-1">#</a>Public reading</h3> <p>In a space with <strong>Public</strong> visibility, a visitor without login reads everything (the board, topics, count, states and comments) except who voted. Voting, commenting or proposing opens <em>"Sign in to vote for what you back"</em> (or <em>"Sign in to comment"</em>, <em>"Sign in to propose a topic"</em>), with <strong>Sign in</strong> and <strong>Create account</strong>; afterwards, the person comes back to the board. In a space that isn't public, only whoever opens the space reads.</p> <h3 id="limits"><a class="anchor" href="#limits" aria-hidden="true" tabindex="-1">#</a>Limits</h3> <div class="table-wrap"><table><thead><tr><th>Limit</th><th>Value</th></tr></thead><tbody><tr><td>New topics</td><td>5 per person per day (the staff has no limit; pending and deleted ones count)</td></tr><tr><td>Votes</td><td>120 per person per hour</td></tr><tr><td>Title</td><td>140 characters</td></tr><tr><td>Description</td><td>5,000 characters</td></tr><tr><td>Photos</td><td>Up to 4 per topic (JPG, PNG or WebP)</td></tr><tr><td>Note or reason</td><td>500 characters</td></tr></tbody></table></div> <h3 id="e-mail-notices"><a class="anchor" href="#e-mail-notices" aria-hidden="true" tabindex="-1">#</a>E-mail notices</h3> <div class="table-wrap"><table><thead><tr><th>Who gets it</th><th>When</th></tr></thead><tbody><tr><td>The author and whoever voted</td><td>The topic moves to <strong>Planned</strong>, <strong>In progress</strong>, <strong>Done</strong> or <strong>Archived</strong> (with the note or the reason), is <strong>reopened</strong> or is <strong>merged</strong> into another</td></tr><tr><td>The staff</td><td>A new topic is proposed</td></tr></tbody></table></div> <p>Members <strong>don't</strong> get an e-mail for every new topic. The notices also arrive in the bell. Only whoever <strong>still has access to the space</strong> at the time of the notice gets it. You can turn it off with the <strong>Upvote: topics you support</strong> category in <a href="/en-us/notificacoes/emails-desta-comunidade">E-mails from this community</a>, or with the footer link.</p> <h2 id="step-by-step"><a class="anchor" href="#step-by-step" aria-hidden="true" tabindex="-1">#</a>Step by step</h2> <h3 id="create-a-board"><a class="anchor" href="#create-a-board" aria-hidden="true" tabindex="-1">#</a>Create a board</h3> <p><em>Role: owner or admin.</em></p> <ol> <li>In the menu, under <strong>Add Space</strong>, open the <strong>Community</strong> tab and choose <strong>Upvote</strong>.</li> <li>Give it a name, a description, the visibility (<strong>Public</strong> lets anyone read) and <strong>Who can post</strong>. Turn on <strong>Prior approval</strong> if you want to approve each topic.</li> <li>Create it. Later, <strong>Configure</strong>, in the <strong>Manage board</strong> bar, turns prior approval on and off.</li> </ol> <h3 id="propose-a-topic"><a class="anchor" href="#propose-a-topic" aria-hidden="true" tabindex="-1">#</a>Propose a topic</h3> <ol> <li>On the board, click <strong>New topic</strong> (on a phone, in the footer: <em>"Got an idea? Propose it."</em>).</li> <li>Type the <strong>Title</strong> and check <strong>Is there something similar already?</strong>: if a topic is what you want, <strong>Vote for this</strong>.</li> <li>Type the <strong>Description</strong> and, if you like, <strong>Add photos</strong> (up to 4).</li> <li>Click <strong>Publish topic</strong>.</li> </ol> <h3 id="manage-a-topic"><a class="anchor" href="#manage-a-topic" aria-hidden="true" tabindex="-1">#</a>Manage a topic</h3> <p><em>Role: owner, admin or moderator.</em></p> <p>Open the topic. The <strong>Manage topic</strong> bar shows the votes, the state and the actions:</p> <ul> <li><strong>Approve</strong>: when the topic is awaiting approval.</li> <li><strong>Edit</strong>: title, description and photos.</li> <li><strong>Change state</strong>: pick the state and, if you like, the note for voters. <strong>Save state</strong> notifies the author and whoever voted.</li> <li><strong>Merge into…</strong>: pick the original topic and confirm.</li> <li><strong>Archive</strong>: with the reason, required.</li> <li><strong>Reopen</strong>: from Done or Archived to Open.</li> <li><strong>Who voted</strong>: the list, with each person's join date.</li> <li><strong>Delete</strong>: the topic leaves the board with its votes, comments and photos. If the idea still matters, archiving with a reason keeps the history.</li> </ul> <h2 id="examples"><a class="anchor" href="#examples" aria-hidden="true" tabindex="-1">#</a>Examples</h2> <p><strong>An online school's suggestion board.</strong> A <strong>Public</strong> space "What do you want to learn", <strong>Who can post = Anyone</strong>. Students propose courses; <em>"Advanced Excel"</em> reaches 80 votes, the staff moves it to <strong>Planned</strong> with the note <em>"Recording in November"</em>, and the 80 get the notice.</p> <p><strong>Coworking improvements.</strong> A members-only space with <strong>Prior approval</strong>. A resident proposes <em>"More sockets in room 2"</em>; the staff approves it, it gets votes, becomes <strong>In progress</strong> and then <strong>Done</strong>. A second identical request is merged into the first, taking its votes along.</p> <h2 id="common-errors-and-how-to-fix-them"><a class="anchor" href="#common-errors-and-how-to-fix-them" aria-hidden="true" tabindex="-1">#</a>Common errors and how to fix them</h2> <div class="table-wrap"><table><thead><tr><th>Situation</th><th>What to do</th></tr></thead><tbody><tr><td><strong>New topic</strong> doesn't show up</td><td>The space's <strong>Who can post</strong> doesn't include your role</td></tr><tr><td>You can't vote</td><td>The topic is Done, Archived or awaiting approval; or you aren't signed in (visitor)</td></tr><tr><td>You can't edit your own topic</td><td>Someone else has already voted on it; now only the staff edits</td></tr><tr><td>You can't comment</td><td>The topic is archived or awaiting approval</td></tr><tr><td>Limit of 5 topics a day</td><td>Wait for 24 hours to pass since the first topic</td></tr><tr><td>You can't reopen</td><td>The topic was merged into another: the votes are already there</td></tr><tr><td>Archiving doesn't save</td><td>Fill in the reason, required</td></tr></tbody></table></div> <h2 id="frequently-asked-questions"><a class="anchor" href="#frequently-asked-questions" aria-hidden="true" tabindex="-1">#</a>Frequently asked questions</h2> <p><strong>Do members know what I voted for?</strong> No. Only the staff sees who voted.</p> <p><strong>Does someone who leaves the community lose their vote?</strong> No. The votes stay in the count; the notices stop, because the person no longer has access.</p> <p><strong>Can I vote without an account?</strong> No. On a public board, a visitor reads; to vote, they sign in or create an account.</p> <h2 id="through-the-assistant"><a class="anchor" href="#through-the-assistant" aria-hidden="true" tabindex="-1">#</a>Through the assistant</h2> <p>The assistant proposes, votes on and manages topics with the same rules as whoever connected it. See <a href="/en-us/mcp/ferramentas-conteudo#upvote">Tools · Content</a>.</p> <ul> <li><strong>Reading:</strong> <code>get_upvote_board</code>, <code>list_upvote_topics</code> (with sorting and state), <code>get_upvote_topic</code> and <code>find_similar_upvote_topics</code>.</li> <li><strong>For whoever opens the space:</strong> <code>vote_upvote_topic</code>, <code>unvote_upvote_topic</code> and <code>create_upvote_comment</code>, with no confirmation; <code>create_upvote_topic</code> asks for confirmation; <code>update_upvote_topic</code> and <code>delete_upvote_topic</code> (with confirmation), the author until someone else votes.</li> <li><strong>Staff:</strong> <code>set_upvote_topic_status</code> (archiving included), <code>reopen_upvote_topic</code> and <code>merge_upvote_topics</code>, all with confirmation, showing the reason and how many people will be notified; <code>merge_upvote_topics</code> can't be undone. <code>list_upvote_voters</code>, read only.</li> <li><strong>Owner and admin:</strong> <code>update_upvote_board</code>, which turns prior approval on or off.</li> </ul> <p>Ask like this: <em>"Check whether there's already a topic similar to 'dark mode in the app' before creating one; if there is, vote for it."</em> See the <a href="/en-us/mcp/receitas#91-check-for-a-similar-topic-before-creating-one">recipe</a>.</p> <h2 id="in-the-api"><a class="anchor" href="#in-the-api" aria-hidden="true" tabindex="-1">#</a>In the API</h2> <p>The routes live under <code>/api/upvotes</code>, with <code>X-CommunityId</code>; the path doesn't carry the community. Reads work without login in a public space.</p> <div class="table-wrap"><table><thead><tr><th>Route</th><th>What it does</th><th>Who</th></tr></thead><tbody><tr><td><code>GET /api/upvotes/spaces/{spaceId}</code></td><td>The board: whether the person can propose and manage, and the limits</td><td>Whoever reads</td></tr><tr><td><code>PUT /api/upvotes/spaces/{spaceId}</code></td><td>Turns <code>requireApproval</code> on or off</td><td>Owner and admin</td></tr><tr><td><code>GET</code> · <code>POST /api/upvotes/spaces/{spaceId}/topics</code></td><td>Lists (<code>sort</code> = <code>top</code>, <code>new</code> or <code>trending</code>; <code>status</code>; <code>mine</code>; <code>voted</code>; <code>cursor</code>) · proposes</td><td>Whoever reads · whoever can post</td></tr><tr><td><code>GET /api/upvotes/spaces/{spaceId}/similar?title=</code></td><td>Up to 5 similar topics</td><td>Whoever reads</td></tr><tr><td><code>GET</code> · <code>PATCH</code> · <code>DELETE /api/upvotes/topics/{id}</code></td><td>Detail · edits · deletes</td><td>Whoever reads · author (until another vote) or staff</td></tr><tr><td><code>PUT</code> · <code>DELETE /api/upvotes/topics/{id}/vote</code></td><td>Votes · takes the vote back</td><td>Whoever opens the space</td></tr><tr><td><code>GET /api/upvotes/topics/{id}/voters</code></td><td>Who voted</td><td>Staff</td></tr><tr><td><code>GET</code> · <code>POST /api/upvotes/topics/{id}/comments</code> · <code>DELETE /api/upvotes/comments/{id}</code></td><td>Comments</td><td>Whoever reads · whoever opens the space · author or staff</td></tr><tr><td><code>POST /api/upvotes/topics/{id}/status</code> · <code>…/reopen</code> · <code>…/merge</code></td><td>Changes the state (<code>status</code>, <code>note</code>) · reopens · merges (<code>targetId</code>)</td><td>Staff</td></tr></tbody></table></div> <p>Errors: <code>400</code> (archiving without a reason, empty or too long text), <code>403</code> (no permission), <code>404</code> (a topic from another board or community), <code>409</code> (voting on Done, Archived or pending; commenting on archived; reopening a merged topic), <code>429</code> (5 topics a day, 120 votes an hour). An API key uses the <code>upvotes</code> module (see <a href="/en-us/api/autenticacao#the-scope">Authentication</a>). See <a href="/en-us/api/referencia/upvotes">Upvotes</a>.</p> <h2 id="related"><a class="anchor" href="#related" aria-hidden="true" tabindex="-1">#</a>Related</h2> <ul> <li><a href="/en-us/espacos/enquetes">Polls</a></li> <li><a href="/en-us/espacos/pesquisas">Surveys</a></li> <li><a href="/en-us/membros/moderacao">Moderation</a></li> <li><a href="/en-us/conceitos/modulos">Modules</a></li> <li><a href="/en-us/notificacoes/emails-desta-comunidade">E-mails from this community</a></li> <li><a href="/en-us/mcp/ferramentas-conteudo#upvote">Tools · Content</a></li> </ul> </div></article><nav class="mt-14 grid gap-4 border-t border-graphite/10 pt-8 sm:grid-cols-2" aria-label="Previous / Next"><a href="/en-us/espacos/enquetes" rel="prev" class="group rounded-2xl border border-graphite/10 bg-white px-5 py-4 transition-colors hover:border-coral-300"><span class="flex items-center gap-1.5 text-xs font-medium uppercase tracking-wide text-graphite/50"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5" aria-hidden="true" focusable="false"><path d="M19 12H5M11 6l-6 6 6 6"></path></svg>Previous</span><span class="mt-1 block font-medium text-graphite group-hover:text-coral-700">Polls</span></a><a href="/en-us/espacos/eventos" rel="next" class="group rounded-2xl border border-graphite/10 bg-white px-5 py-4 text-right transition-colors hover:border-coral-300"><span class="flex items-center justify-end gap-1.5 text-xs font-medium uppercase tracking-wide text-graphite/50">Next<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="h-3.5 w-3.5" aria-hidden="true" focusable="false"><path d="M5 12h14M13 6l6 6-6 6"></path></svg></span><span class="mt-1 block font-medium text-graphite group-hover:text-coral-700">Events</span></a></nav></div><div class="hidden w-56 shrink-0 py-10 pr-8 xl:block"><div class="sticky top-[93px]"><nav aria-label="On this page" class="text-sm"><p class="mb-3 text-xs font-semibold uppercase tracking-wide text-graphite/50">On this page</p><ul class="space-y-1.5 border-l border-graphite/10"><li><a href="#upvote-poll-or-survey" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Upvote, Poll or Survey?</a></li><li><a href="#who-can-do-what" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Who can do what</a></li><li><a href="#how-it-works" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">How it works</a></li><li><a href="#step-by-step" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Step by step</a></li><li><a href="#examples" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Examples</a></li><li><a href="#common-errors-and-how-to-fix-them" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Common errors and how to fix them</a></li><li><a href="#frequently-asked-questions" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Frequently asked questions</a></li><li><a href="#through-the-assistant" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Through the assistant</a></li><li><a href="#in-the-api" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">In the API</a></li><li><a href="#related" class="-ml-px block [overflow-wrap:anywhere] border-l border-transparent pl-3 leading-snug text-graphite/65 hover:border-coral-400 hover:text-graphite">Related</a></li></ul></nav></div></div></div></main></div><footer class="border-t border-graphite/10 bg-paper-warm"><div class="flex flex-col gap-4 px-4 py-8 text-sm text-graphite/70 sm:px-6 md:flex-row md:items-center md:justify-between"><p>Could not find what you were looking for? Write to<!-- --> <a class="font-medium text-coral-700 underline-offset-2 hover:underline" href="mailto:david@memberfy.net">david@memberfy.net</a>.</p><ul class="flex flex-wrap gap-x-5 gap-y-2"><li><a class="hover:text-graphite" href="/en-us/releases">Releases</a></li><li><a class="hover:text-graphite" href="/en-us/api/referencia">API reference</a></li><li><a class="hover:text-graphite" href="https://www.memberfy.net/en-us">Memberfy website</a></li><li><a class="hover:text-graphite" href="/en-us/conceitos/termos-de-uso">Terms of use</a></li><li><a class="hover:text-graphite" href="/en-us/membros/politica-de-convites">Invitation policy</a></li></ul></div><p class="flex flex-wrap gap-x-1.5 px-4 pb-6 text-xs text-graphite/60 sm:px-6"><span class="whitespace-nowrap">© 2026 Memberfy ·</span><span class="whitespace-nowrap">LUMA VENTURES LTDA - ME ·</span><span class="whitespace-nowrap">CNPJ 21.951.820/0001-39</span></p></footer></div> </body> </html>