Create and use an upvote formula for team decisions

Using an upvote formula in a shared database gives teammates a voice and fosters company-wide transparency.

A company Q&A with questions, who asked them, and who wants them answered.

It’s important for teams of all sizes (remote teams in particular!) to ensure their employees’ voices are heard. That can be hard on a shared Zoom call with triple-digit attendees.

Whether it’s selecting the most urgent questions to discuss at the next all-hands meeting or an engineering team voting on which product feature should be next in line for development, an upvote formula in your database lets everyone play a role in decision-making.

This provides managers with transparency into what matters most to their team, so they can take their views into account when making big decisions. Creating a database for team-wide voting and decision-making helps individuals feel valued and included in the most important aspects of your product or your business.

Be first to get the Notion newsletter when it launches

Sign up now, and soon, you'll get Notion tips, resources, and stories right to your inbox.

How your team can use an upvoting system

Think about all the times you’ve had teammates raise their hands to vote on something, or tried picking through feedback from a chat window or Slack thread. This upvote database comes in handy whenever you want people to suggest new ideas or share their opinions — and it might help you prioritize based on what your team’s voting on most.

Here are a few situations where teams will find upvotes useful.

  • All-hands meetings — all-hands meetings can get chaotic, especially as your organization grows. It can be tough to stay focused and cover what matters to your team. To prepare for the meeting, attendees can enter questions into a database, the entire team can vote on the questions, and those with the highest votes will get answered. You can even take notes directly inside the question pages, so that those answers can be referred back to later.

  • Product features — your product team likely has tons of ideas for new features, and it’s important to have a database to record all these suggestions. Before deciding which features your team will build next, have everyone vote. This way, distributed teammates are accounted for, and it helps frame your discussion (instead of a free-for-all where you’ve got to go through every idea). You can even broaden the upvoting, allowing other teams across the organization to vote, leveraging their experience with users or potential customers.

  • User feedback — listening to what your users say can help you find ways to improve and solve problems. Create a database so your customer support team has a place to log feedback they receive from users. When another teammate encounters the same feedback, they can tag themselves, thus addressing the most frequent user issues.

  • Branding decisions — designers who’ve been immersed in a rebranding project for a while will appreciate some external input when it comes to making final decisions on which designs make the cut. When you’ve narrowed it down to a few options, you can create a gallery database showcasing all your designs, build in an upvote feature, and invite the rest of your organization to choose their favorites.

You can use an upvote to collect team sentiment and quickly organize or prioritize your work based on the votes. It helps foster communication and ensure that team members get the chance to have a say in what happens in your organization.

How to create a database with an upvoting system

At Notion, we have a database where we submit questions and discussion topics for our all-hands meetings.

To create your own, start by making a table where you’ll add the items to vote on — as we mentioned, this can be for questions at your all-hands, product features to build, or even the staff's favorite pizza topping. If you’re new to databases, we have a guide which will walk you through the different types of Notion databases and how to create them.

Next, add a Created By property. This will automatically populate with the person who creates the database entry. You’ll see we’ve renamed this “Asked By” to show that this is who's suggesting the question.

To add an upvote feature in your database, you’ll need to add a Person property. You can call it “Upvoted By.” In this column, people will tag themselves to vote.

Next, you’ll need a Formula property. Click on the property, and select Edit formula. Here, you can paste the following formula:

if(empty(prop("🔺 Upvoted By")), toNumber(""), length(prop("🔺 Upvoted By")) - length(replaceAll(prop("🔺 Upvoted By"), ",", "")) + 1)

This formula works by adding up the number of people tagged in the “Upvoted By” column. Length refers to the length of a string, and in this case, that is the “Upvoted By” property referenced by the next set of brackets (prop("🔺 Upvoted By"). So this column will display the total amount of people tagged, or upvotes, in the “Upvoted By” column.

Note that if your Person property is called something other than “Upvoted By” you’ll have to change this section in the formula to an exact match of your title.

Learn more about formulas

When you use this formula, the default number of upvotes will appear as one, which assumes that whoever created the suggestion also votes in favor of it. Every time someone else tags themselves in the “Upvoted By” column, it will add one to the total count of upvotes.

Customize your team’s database

It makes sense to sort your database so that the pages with the most votes are at the top. To do this, click Sort in the top right of the database and + Add a sort. From the dropdown, choose Upvotes and select Descending.

Plus — you wouldn’t want already-answered questions to appear in your database. To help you focus on questions that need attention, add a Select property to assign tags such as “Answered” and “Unanswered.” Same goes for features you’ve built. You could assign Select properties for “Built” or “Next up” or “Being considered.”

Then, you could filter your database to only show questions that need answering. Click Filter in the database menu. From the dropdown, choose your Status property, select is and Unanswered. Now, answered questions won’t show up in this view, but they’ll still be safely stored in the database. Just be sure to assign “Answered” to questions you...answer.

Resources to create and use your upvote formula

Templates where you can use an upvote formula

Share this guide

Something we didn't cover?