[New Plugin] Listopia - Your Utopia for Mastering Lists in Bubble ( 🚀 Tutorial)

Hi Luke,

I hope you’re doing well! I’ve got some exciting news to share - we’ve rolled out a new version of Listopia and with it, a fresh feature that we call “Data Flows”.

Data Flows allows you to have more control on your action’s input and output, also, select multiple lists as the action data source with ease. We designed it with challenges like yours in mind - managing and filtering lists.

We are thrilled to offer you this feature and would love to help you get started with it. It’s got the potential to be a real game-changer for your current setup, and we’re excited to see how you’ll be able to leverage it.

As always, don’t hesitate to reach out if you need any help navigating through this new feature. We’re committed to ensuring you have the best experience with our plugins.

Your kind words about our customer support warmed our hearts and we’re striving to keep up that standard. Thanks a lot for your faith in us and our work!

Looking forward to hearing about your challenge!



:clapper: How to store and manipulate lists in listopia elements?

00:00 - Listopia Data Management
00:23 - Chapter 1: Storing Predefined Lists in Listopia Elements
06:03 - Chapter 2: Adding Lists to Custom Lists in Listopia Elements
15:55 - Chapter 3: Adding Lists to Nested Lists in Listopia Elements
20:52 - Chapter 4: Removing Lists from Custom and Nested Lists in Listopia Elements

Hi @NoCodeDataArtisan

Wow awesome, appreciate you letting me know about the rollout of the new feature. Sounds very useful and if the filtering option on the list is possible too then even better. Looking forward to experimenting with this one. Thanks again, great work as usual!

1 Like

Hi @luke2

I appreciate your interest and enthusiasm towards our new feature. At Listopia, our main aim has always been to focus on efficiency and reducing costs for our users. This is reflected in our Loop feature, which differs from the costly iterations found in other plugins.

As for the filtering option within Listopia, I want to clarify that this exact feature isn’t available at the moment. However, we’re not leaving this issue unattended. We have a method of filtering in the pipeline which is not only efficient but also very practical. We’re working on publishing a tutorial on this soon, so you can get the most out of your Listopia experience.

As always, we truly appreciate your support and look forward to delivering more valuable tools for you to explore.

Thank you once again for your feedback and stay tuned for more exciting updates!

1 Like

:clapper: Multiple List Operations

Simple Guide

This tutorial details the steps to store, select, and operate on multiple lists using Union, Intersection, and Loop methods.

00:00 - Chapter 1: Getting List One and Two Ready
04:28 - Chapter 2: Combining List One and Two into List Three
06:32 - Chapter 3: Storing Combined Lists in ‘Union’ Custom List
09:35 - Chapter 4: Finding Common Items in Predefined Lists
11:30 - Chapter 5: Creating Copies of List One and Two
13:30 - Chapter 6: Combining All Custom Lists into One


:film_projector: Tutorial’s Editor:

:clapper: Implement Advanced Filtering on Bubble

Unlock the potential of Listopia on Bubble with this comprehensive tutorial!

Dive deep into advanced product filtering techniques, including filtering based on single value fields, lists of values, range of numbers, and related table fields.
Whether you’re a novice or experienced user, this tutorial will empower you with the skills to create dynamic, user-friendly interfaces with customized filtering options.

00:00 - Introduction: Displaying a Pre-Built Web Page with Products and Filtering Options
00:36 - Chapter 1: Single Value Field Filtering Based on User Selection (Category Field)
07:09 - Chapter 2: Filtering Fields with List of Values (Tag Field)
10:47 - Chapter 3: Filtering Based on a Range of Numbers
15:05 - Chapter 4: Filtering a Field of a Related Table


I’ve spent today on Listopia and at the moment I’d say it ‘has potential’ but it’s not a simple plugin to get started with. I suspect it’s because it seems to be so advanced that it struggles with the basics.

In my example, I am ditching manual index fields and relying on the set order within a list. I got stuck at inserting into a list so I purchased Listopia. I am trying to implement the ‘add’ function within Keeper.

I’ve got two tables:

  • Items
  • ItemsGroups

Items are shown in a RG and each one has a plus icon, to add a new Item at that location. I’m using the addition function - see images - and then using ‘set list’ to say the Results List back to my database. It fails, either not saving the list (which I can Inspect, it’s fine) OR I can get the list showing in the RG but even a separate save button (which sucks for UX) still doesn’t put the list into the db OR it blanks the whole list out.

I’ve looked at the example app but it is not easy to follow, it feels all hidden away, the examples are less replicable. If there is a video I’ll watch it. I will admit, I just wish tutorials were written down, with images, showing exact steps.

I can’t give editor access but I would really appreciate some help before I ditch this plugin for another method,

1 Like

Hello @manipaje,

Firstly, we deeply appreciate you taking the time to share your experience with Listopia. Your insights are incredibly valuable to us, and we’re genuinely committed to making your experience with our tool as smooth and effective as possible.

We understand that starting out with new software can be challenging, and we’re truly sorry for any confusion you’ve encountered, especially due to the lack of a detailed, step-by-step tutorial. We acknowledge that this is an area we need to improve, and your feedback is instrumental in helping us do so.

On reviewing your process, it’s clear that you’ve done an excellent job in understanding and implementing most steps. There’s just a minor but crucial detail that seems to be missing. In Bubble, as you might be aware, actions in a workflow aren't executed synchronously and sequentially by default. This means for related actions, it's essential to ensure that each action is completed before the next one begins.

To facilitate this, we’ve introduced “updated events” specifically for Listopia elements. These events are triggered upon the successful completion of an action.

For instances where you have multiple actions, you can organize and manage them more efficiently by labeling each action.

All actions have this field as their last field

This is done by adding an ‘only when’ condition, which correlates with the specific action’s name state on the element.

In your case, adding a ‘Result Updated’ event should resolve the issue. You would then use the result of this action in your workflow to ensure smooth operation.
You can see this simple example regarding your use case: Artisan-plugnplay | Bubble Editor

We understand that a clear, visual tutorial would be beneficial, and we’re working on creating more user-friendly guides, including video tutorials, to better assist our users. In the meantime, if you have any more questions or need further assistance, please don’t hesitate to reach out. We’re here to help and want to ensure you get the most out of Listopia.

Thank you once again for your patience and for choosing our plugin. Your success with Listopia is paramount to us.

Best regards,


My hero. The non-sequential aspect of Bubble is the source of my sadness, clearly your workaround is due to their workflow design choices which can baffle even a learning amateur in this space.

I’ve added the When aspect and it works exactly as expected.

Thank you for the swift and personalised response.

I am advancing, which means I am lost once more with a new challenge.

Can Keeper be used to pull out the index of each item in a list? I know about the Keeper A Result (Number) or (Number List) which works to get a single index, or all indexes in a list. My Q is how would I use this in an element?

Scenario: I have a list of items and I am presenting them as :formatted as text - each item is wrapped around some HTML (for an export) and I do this recursively on each item - but I need (for silly reasons) an index of each item within the formatted at text. I have a field in my database (index) but I am moving away from this now I’m using Listopia and Drag-it (it saves a massive amount of WUs and it’s so much faster).

Any ideas on how I can add a faux index within a list of texts in a visual element?|

here is a screenshot of where I’m trying to work and I have looked to use Index Finder but it does not let me find a way to filter/output the unique index per item)

Screenshot 2023-12-05 at 17.23.44

edit: I have patched this with a backend workflow to re-add an index on page load. Would love to wipe this out but it was re-added in case this was a no-go! :heart:

1 Like

Hey @manipaje

Sorry for the late response. As you figured out yourself, the index finder action returns index of an item or list of items in a list.

In your case, if I understood it correctly, with the new method that you have implemented, those indexes are sequential from 1 to count of items.
The solution in this challenge is to utilize format as text on list of numbers instead of list of parts. With this approach you have the index (this number) and you can get the corresponding part item with item# (this number).

Please let me know if you need more details. I’m here to help you.

Hello, i’m hoping you can help with a problem I have. My app is designed to manage ropes. The user can create a Rope, they can also create UseRecords for the Rope. A feature I have added is to Cut a Rope, This modifies the Rope (Parent) (i.e. shortens it but the cut length), and creates a new Rope (Child) (with the length and other properties of the cut off section). The Rope data type has a field for List of Ancestors which is added to each time the rope is cut from a parent. I need to be able to get and display a list of UseRecords that apply to a Rope. This is straight forward with Do a search for UseRecords, where Rope = This Rope, but I also need to include the UseRecords associated with the Rope’s ancestors, where the UseRecord’s Date is before the Rope was cut from its parent. Hope that makes sense, and that Listopia can help with this challenge.


1 Like

Hi Kieran,

I trust this message finds you well.

In response to your query, absolutely, you can achieve the desired UseRecords functionality using Listopia. By any chance, have you had the opportunity to watch the tutorial on filtering?

It’s slightly tailored to a different scenario, but the fundamental methods apply to your case as well.

If you need assistance, I’m more than happy to help set it up. Just send me a private message with your editor link and ensure the app settings allow for editing by all users.

Hi all. I’ve run into an issue with Keeper from Listopia.

The Keeper’s List One data source is stored as a list on a field in the DB. When this list starts getting larger, 82 items right now, the Keeper’s List One is not populated for about 20 seconds.

(List One is the data source for a DragIt, and the DragIt’s RG Sync Source is the data source for the RG.)

The delay in populating the Keeper causes the RG to show as empty. Once it is populated, I can navigate to and from the page with no problem, so it’s mainly an issue on page load.

Is there some way to force the Keeper to populate more quickly?

I’ve tested making the RG data source the DB list field directly, and sure enough it displays quickly. So the delay comes from the Keeper. DragIt seems to be fine once the Keeper has data.

Timing issues are always tricky to troubleshoot, but I’ve narrowed it down to the Keeper populating. When the list in only 10 items, it seems to go quite quickly, but my users will usually have far more than 10 items.


UPDATE: Of course, I’ve struggled with this for weeks (longer really) and then figured out a solution 10 minutes after posting this! I’ll leave this in place instead of deleting in case it helps someone else.

I added a workflow step that populates my Keeper’s List One with the same list as the data source on the element. The workflow step seems to force Keeper to load the data much sooner.

1 Like

Hi Ken,

Excellent job figuring out that trick with Keeper! :star_struck:
It’s cool how you found out that adding a workflow step helps load everything faster. We know it’s been a bit slow, especially with bigger lists, and we’re thankful you shared your solution. :raised_hands:

Good news – we’re actually working on making loading data faster on page load. We’ve got an updated version coming out in just a few days. We’re hoping it’ll make things smoother for you and everyone else using it.

Thanks a bunch for helping us make Listopia better. Hang in there, and the update will be with you soon!



Thank you! I look forward to that update. Although my trick did work, it also introduced another bug so I can’t use it. When the list needs to be filtered, this dtep interferes because it’s reloading the unfiltered list at the wrong time.

Part of my problem stems from how RGs don’t always update the displayed data source so I have to call a workflow to force the refresh. This workflow could end up getting called more than once when it’s only needed once so I’m trying to find a way to prevent it from running a second (or 3rd) time. That would be good to do anyhow!

EDIT: It would also be cool if there was a state on Keeper to let us know that the Keeper is still loading. That way we could show a spinner while the user waits and we’d know when it’s done. Just checking for a :count is 0 won’t work because the list might not have anything in it.

1 Like

I will release the updated version by tomorrow so you can test it out.

I have the same challenge with updating the pop-ups’ data and they don’t update when the source updates.

Sure, it is a cool feature that is practical. Thank you for suggesting this feature.

1 Like

I’ve realized that part of this problem is of my own making.

When testing with only 10-20 items in my DB, everything worked fine. But once I am now up to 80+ items in a single list I see the slow down.

Because of the high cost of WUs, I was attempting to do as much work as I can in the browser to save $$. Those 80+ items had a <:filtered> expression using Advanced expressions. With 10-20 items there was no problem, but with 80+ it is far too slow.

My solution will be to use more Keepers that already hold the filtered list so I don’t need to filter it each time. When a condition changes the lists, I will just need to maintain the lists manually.

It’s not much different from what I currently have to do. For each Keeper, I am storing the list of Things in a special data type/field. On page load, I just load those lists into the Keeper.

If I also have a list of filtered data, I can just load those. Note that this is not for dynamic filtering, such as user selections in an options popup. That already works great and quickly, but the Keeper has to have the full list of Things first.

My new filtered lists will be for things like a task with a Start Date. If Start Date < Current Date, the task will go on the filtered list for tasks that are not yet available. But when `Start Date > Current Date’ I can move it to the main task list.

In this way everything will load very snappy on page load. At least, that’s the plan!

1 Like

Hey @ken1,

We’ve just rolled out the latest version of Listopia, and we’ve worked hard to make the primary lists faster and smoother.

Can you give it a spin with your data and share your feedback with me?

1 Like