How do you create a custom multi-select in Adalo?
Use relationships and paired component states to let users select more than one record.
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.
Represent selections with a many-to-many relationship or a join collection, then show selected and unselected component states based on whether the current option is related to the current user or parent record.
The saved relationship is the source of truth for a multi-select. Render every option, show selected and unselected controls with opposite visibility conditions, and have those controls add or remove the current option. A join collection is the safer model when the selection itself needs properties or audit history.
The intended outcome
A selectable list where each option can be independently added or removed and the visual state reflects saved data.
Requirements
- A collection of selectable options
- A user or parent record that owns the selections
- A relationship or join collection
Step by step
- 01
Choose the data model
Use many-to-many for a simple association; use a join collection if each selection needs metadata such as order or quantity.
- 02
Render the options
Create a list of all selectable records.
- 03
Create two visual states
Design selected and unselected versions and control them with opposite visibility rules.
- 04
Add and remove the relationship
The unselected state adds the current option; the selected state removes it.
- 05
Verify persistence
Leave and return to the screen to confirm visual state comes from saved data rather than temporary UI state.
The underlying logic
The database relationship is the source of truth.
Opposite visibility rules make the two states appear as one control.
A join collection is more flexible when the relationship itself needs properties.
Data model
| Collection | Important properties | Relationships |
|---|---|---|
| Users or parent records | Name | Has many selections |
| Options | Label, Sort Order | Can be selected by many parents |
| Selections (optional) | Order, Quantity, Created Date | Joins one parent to one option |
What changed?
- The refreshed answer explains when a direct many-to-many relationship stops being sufficient.
Common failure modes
Both states appear
Make the visibility conditions exact opposites and confirm both components evaluate the same relationship.
The state resets
Confirm the action updated the relationship or join record rather than only navigating or changing input state.
Testing checklist
Selecting two options persists both relationships after leaving and returning.
Removing one selection leaves every other selected option unchanged.
Two test users see only the selections associated with their own records.
Multiple options can be selected
Removing one does not clear others
State persists after navigation
Logged-in users see only their selections
Current limitations
- Use a join collection when a selection needs quantity, order, notes, or other metadata.
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.
Create record that has multiple relationships
The reply says many-to-many selections are stored by updating an existing record and discusses marketplace or button-and-boolean interfaces.
Boundary: The thread reports that the desired database-style multi-select UI is not a built-in front-end form control.
Judith · January 2025Sources 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 relationship and action captures plus a January 2025 multi-select report.
Did this solve your problem?
Bring us the messy version.
Describe what you expected, what happened instead, and what you already tried.
Ask Adalocado

