Answer

How do you create a custom multi-select in Adalo?

Create a custom Adalo multi-select with relationships, join records, selected and unselected component states, duplicate protection, and explicit test cases.

Adalocado VerifiedIntermediateReviewed Aug 12, 2026
Verified from current public evidence—not reproduced in the builder.

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.

THE SHORT ANSWER 🎯

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.

Completeness100%
Index decisionIndex now
Evidence basisCurrent relationship docs and January 2025 forum evidence; no hands-on reproduction
WHAT YOU’LL HAVE 🎯

The intended outcome

A selectable list where each option can be independently added or removed and the visual state reflects saved data.

BEFORE YOU START 🧰

Requirements

  • A collection of selectable options
  • A user or parent record that owns the selections
  • A relationship or join collection
BUILD IT 🛠️

Step by step

  1. 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.

  2. 02

    Render the options

    Create a list of all selectable records.

  3. 03

    Create two visual states

    Design selected and unselected versions and control them with opposite visibility rules.

  4. 04

    Add and remove the relationship

    The unselected state adds the current option; the selected state removes it.

  5. 05

    Verify persistence

    Leave and return to the screen to confirm visual state comes from saved data rather than temporary UI state.

WHY IT WORKS 🧠

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.

COLLECTIONS AND RELATIONSHIPS 🗃️

Data model

CollectionImportant propertiesRelationships
Users or parent recordsNameHas many selections
OptionsLabel, Sort OrderCan be selected by many parents
Selections (optional)Order, Quantity, Created DateJoins one parent to one option
SINCE THE ORIGINAL VIDEO ⏳

What changed?

  • The refreshed answer explains when a direct many-to-many relationship stops being sufficient.
IF IT DOESN’T WORK 🧯

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.

BEFORE YOU MOVE ON ✅

Testing checklist

0 of 7 checked on this device

BOUNDARIES 🚧

Current limitations

  • Use a join collection when a selection needs quantity, order, notes, or other metadata.
CURRENT PUBLIC EVIDENCE 📸

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.

Current Adalo Resources guidance describing many-to-many relationship behavior
Official documentation explains the many-to-many relationship used by simple multi-select membership.Official documentation · captured Aug 12, 2026: Official documentation explains the many-to-many relationship used by simple multi-select membership.
Current Adalo Resources update action instructions for changing an existing record
The current Update action is the documented mechanism for changing an existing record.Official documentation · captured Aug 12, 2026: The current Update action is the documented mechanism for changing an existing record.
January 2025 Adalo forum response about multiple relationships and selection controls
A recent builder report describes updating an existing record and notes a free marketplace multi-select.Adalo forum · captured Aug 12, 2026: A recent builder report describes updating an existing record and notes a free marketplace multi-select.
BUILDER REPORTS 🗣️

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 2025
VERSION NOTES 📝

Sources 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.

VERSION HISTORY 🕰️

Changelog

  1. Added current relationship and action captures plus a January 2025 multi-select report.

MONTHLY APP MANAGEMENT · BY REHOST

Rehost becomes the monthly team behind your app. Fixes, releases, integrations, and ongoing changes have an owner.

See monthly management
FixesHandled
ReleasesHandled
Next changesHandled
YOUR PROBLEM IS DIFFERENT? 🤔

Bring us the messy version.

Describe what you expected, what happened instead, and what you already tried.

Ask Adalocado 💬