Introduction

This document discusses two methods for implementing voting with respect in Notion and Snapshot via the Notion API. The first method involves using the Notion API to input respect scores into a Notion database and voting using the Upvote button in Notion. The second method involves mirroring Notion pages into Snapshot and allowing community members to vote in Snapshot, with the voting results imported back into Notion using the Notion API. The document provides details and considerations for each method, as well as potential integrations and related resources.

Table of Contents

How to Vote with Respect

It would be amazing to do weighted voting based on respect tokens in notion and I think there are a two different ways that we could achieve this. There is a simpler way is described first and a more complex method is below:

Option 1: Vote in Notion

We can use the Notion API to input Respect scores into a notion database that shows the amount of Respect as a property for each community member, then vote using the Upvote button directly in notion.

This could work with the way described in this page and a conceptual framework for this can be found here. With this method, there would be no need to connect a wallet or provide a EVM signature anywhere. Notion would need to poll the blockchain for Respect scores, but it would only need to do it once a week then the Respect scores could reside within a Notion database. The Respect scores for each community member would be stored as a property in a Notion database, the roll-up functionality would be used to ‘bridge’ the Respect to be used in any other Notion database (such as a projects or topics database), and the formula property would be used to calculate the amount of Respect voted for each project or topic after participants click ‘Upvote.’ I think Pipedream could be used to input Respect for each player into Notion, as explained in these videos. Community members would simple hit the Upvote button then the ‘Upvotes’ property in a notion database would add their total amount of Respect instead of the number 1. This would enable us to vote with Respect rather than ‘one person, one vote’.

I think this would likely be the easiest way to implement Respect voting in Notion at first and could provide a very smooth UX since it’s all in Notion without the need for wallet interactions or external dependencies. The downsides are that it’s more dependent on Notion, I’m not sure if there’s a way for users to allocate a percentage of their votes across different projects, and I’m not sure if there’s any easy way to allocate Respect votes in a finite manner with this method (ie each person would only be able to vote with all their Respect and they could vote with their full voting weight for as many projects as they want). An alternative approach where community members can strategically allocate a limited amount of votes across projects would probably be better in most situations, though the link that I provided above shares an interesting idea to overcome some of these limitations with a manual process. It also may be possible that Notion releases new features such as a voting slider that could provide some of this functionality (and they recently did release the vote button which is a big step), though I haven’t heard anything about this kind of upcoming feature from Notion.

This solution would provide basic functionality to vote with Respect directly in Notion and would be a great improvement over ‘one person one vote’ that we currently know how to do in Notion. We could also test this method by manually entering Respect scores into a database each week before developing a more automated solution with the API.