How do you add upvoting in Adalo?
Model one vote per user, make the button reflect saved state, and avoid duplicate votes.
We checked current official documentation, captured the relevant screens, and compared the workflow with dated Adalo forum reports. Source links and limitations are below so you can judge the evidence directly.
Relate users to the records they upvote—or create a Vote join collection—then add or remove the relationship on tap and display the related-record count.
Model a vote as the relationship between one user and one record. A dedicated Vote collection makes uniqueness checks, timestamps, moderation, and auditing clearer; a direct relationship is simpler when membership is all that matters. The selected state and count must come from saved records rather than temporary visual state.
The intended outcome
A persistent vote control that counts one selection per user.
Requirements
- Users collection
- A collection of voteable records
- Relationship or Vote join collection
Step by step
- 01
Model the vote
Use a direct relationship for simple membership or a Vote record for timestamps and auditing.
- 02
Show the count
Display the relationship or Vote count for the current record.
- 03
Add vote
On the unvoted state, relate the logged-in user or create a Vote record.
- 04
Remove vote
On the voted state, remove the relationship or delete that user’s Vote record.
- 05
Test duplicates
Tap rapidly and revisit the screen to ensure one user cannot create unintended duplicates.
The underlying logic
A vote is a relationship between one user and one record.
A join record is preferable when the vote needs its own fields.
Data model
| Collection | Important properties | Relationships |
|---|---|---|
| Voteable records | Title, Status | Has many votes |
| Votes | Created Date | Belongs to one user and one voteable record |
What changed?
- The refreshed answer prefers auditable Vote records when timestamps or moderation matter.
Common failure modes
Counts drift upward
Ensure the create action is conditional on no existing vote for that user and record.
Testing checklist
One user can add at most one vote to the same record.
Removing a vote reduces the visible count and restores the unvoted state.
Two different users produce a count of two without sharing button state.
One user produces at most one vote
Count updates after add/remove
State persists after reload
Current limitations
- A production voting system may need stronger duplicate and concurrency guarantees than client actions provide.
Screenshot evidence
These captures document what Adalo currently publishes and what builders are reporting. They support the written guidance, but they are not a substitute for an end-to-end test in your own app.



What the Adalo community is reporting
These are concise editorial summaries of public forum posts—not endorsements or independently reproduced results.
Linking 3 details screens to one favorites screen
Replies recommend a separate Favorites collection related to the current user and favorited records, corroborating the auditable join-record pattern used for votes.
Boundary: Favorites are structurally analogous to votes but do not prove duplicate prevention or concurrent vote-count behavior.
Jeorge and Dilon · April 2026Sources and status
This page was last reviewed on Aug 12, 2026. Its current status is Verified from current public evidence.
Verification owner: Adalocado editorial. Next review: Oct 12, 2026.
Changelog
Added current join and action captures plus an April 2026 analogous favorites pattern.
Did this solve your problem?
Bring us the messy version.
Describe what you expected, what happened instead, and what you already tried.
Ask Adalocado

