List Shifter: Reverse, Rotate, Swap and ITERATE (Loop) Over Bubble Lists | Now Part of Floppy

Thank you for yor reply and sorry for long answer, was a little bit ill.

Yes it really the same as How to create a game schedule for a sport league? (round robin tournament) - #4 by tylerboodman

Thank for the tip, I’ll try to use their metod and your plugin with shift up. It maight be more simple.

1 Like

Hi @keith , I think I am missing an important point. I am trying to use ListShifter in a reusable, so I want to set the datasource of the ListShifter Item dynamically. but I can’t seem to find an action to do that? I can only set the custom list, but I can’t iterate over the custom list…

My setup is as follows: I have kind of an ecommerce app and I have one reusable that stores all the special workflows, like Add Product to Order (creates a new order line item with the product on it) and the one I am working on now Add Products to Order (as I have a list of products that the user can add to his order all at once). Here I didn’t want to use a backend workflow to create multiple order line items as that was really slow, so I went for your plugin.
In the page I send the list of products to a reusable custom event which in turn should trigger a list Shifter Iterate over that custom list of products. However, for that Iterate to work I first need to set the list source of the ListShifter Item.

Thanks in advance for your help!

I think I solved it. I can just self-refernce the custom list, correct?

1 Like

Yep, you got it! You can use any list by putting a list expression in that field, @konrad1!

1 Like

YEs it’s working now. Seems to be quite a long way to get to a iterate event.
Right now i have the following steps:

  1. Set-Custom List (publish Update & event),
  2. When Custom List Updated Begin iterate,
  3. when Iterate

Maybe I go with the set custom state since then I don’t have to wait for an update event, right?

Well, you can use any expression, so you don’t necessarily need to have your list “stored” anywhere (e.g., as in the case of a Search), though of course it can be advantageous to do that.

Note that using Custom List or another listshifter instead of a native custom state is useful precisely because they throw events that let you know that your data is actually available. Note that List Shifter actions may or may not fire synchronously with respect to other actions in a Bubble workflow. (This depends on many different factors.)

Hi @keith . Thanks for you contribution to the community. This is a great plugin!
I might be missing something here, I managed to do everything that you explained in the “sorting-a-rg-based-on-count-list-of-dates” post and the array x.length is working well.
Unfortunately in my specific case I need to apply a filter to the filter of interest used to calculate array x.length (In you novel, if you remember from 2020, the example would be if you would like to add the filter Concert name).

Is it something reachable with the version 1.10 of list shifter?


Well, you can do this in multiple steps. Instead of using “field of interest”, use Set Custom List. Set the custom list to User’s Reunios with whatever filter criteria you need. In Process List, get the length of Custom List.

Another way to do it: in process list import User’s Reinios with whatever filter criteria as “Anything List Constant” and get the length of that.

Edit: and… sorry… I get now that you are probably iterating over a list of users so my suggestion isn’t helpful. But if you’re operating on a single User you could do what I describe above.

Basically what you’d need to do is send Reunios using Field of Interest and then filter that in Process List, but you may or may not be able to do that. What’s the type of Reunios and what’s your filter criteria?

1 Like

Thanks for the prompt response! I was trying the first 2 options when I saw your edit.
You are right, I need to iterate over a list of users and from those users count the data type Reunios (appointments) that 1) happened and 2) that belong a specific company (another type).
The calculation in the repeating group is done like this:

Ah, yeah, @andre.yokoi … While I always advocate for using PROCESS List over ITERATE because Process List is much more performant, you won’t be able to do that type of filtering in Process List.

So this is a case where Iterate is the better approach. Just iterate over the Users to get these counts.

For best performance, use a List Shifter’s Custom List. On each pass through the Iterate workflow use SET Custom List using the “concatenate” option to append the count of Reunioes. But don’t set the “publish” or “trigger” options. One the End Iterate event, fire Publish Custom List. Then, in your SORT action, you’ll use the values in Custom List as the sort source.

1 Like

Amazing @keith ! Thank you very much.
If someone is interested to understand how it was implemented. This is what I did:

Step 1

Step 2

Step 3

Step 4

1 Like

Over in another thread, I detailed using List Shifter (or the more svelte Floppy Expression Watcher) to watch for changes in some component of a Repeating Group cell, in this case, a Reusable Element.

Using these plugins as “state watchers” is a common application, but in case you’re curious about Reusables and/or using these plugins in an RG cell, there’s a few pro tips in this reply:


Just shouting out the power of List Shifter is really satisfying, putting together a half-decent recommendation engine, List Shifter has served the job well and holds up super quick in the process.

Would love to see more use case videos as I feel the possibilities are kinda endless as to power up an app. Cheers @keith :beers:


Hey @luke2 - good to hear from you and thanks for the kind words! Yeah, there’s certainly no shortage of cool things that List Shifter can enable, particularly if one explores Process List (which, unfortunately can’t implement everything one might want to do, but opens up a good number of list processing capabilities).

1 Like

Hi Keith,

Great plugin, has made my life so easy! Just wondering if there is a way to move a page by just one item at a time? My use case is that I’m building a marketplace, and I have multiple images, but I only want to show 4 at a time, and then on each shift, move the images up by one?

Cheers Mark

Use the Rotate action in List Shifter, @TGX!

Thanks @keith

Managed to get it working using the Rotate and some clever calculations so it doesn’t loop through.



1 Like

Thank you, thank you and thank you again for your plug in that saves me a lot of time ^^ But, regarding the new pricing, im scared your plug in will use a lot of WU ;( I have one app to create quote / bills, and it seems, from bubble to burn some WUs … any advice about this ?

It’s strictly client side if you use it that way. Also, if you’re using it to create or make changes to a Thing, you’re using it wrong.

Thank you for your reply @keith and thanks for your help. In fact, im using it to create / modify things in my DB, because its the only way i found out to create quote / bills. Is there any risk im using it this way ? do you think of any alternative for me ? thanks, good day !