How to run action on each data entry in database?

I have a data type (EndUser) and I wish to run an action (Send Message) to every data entry in this data type. How do I do this without scheduling an API endpoint to recurse on itself?

If you absolutely need it to run on the front-end rather than a recursive API workflow then use a looping plug-in like @keith 's ListShifter (List Shifter Karma-Ware Plugin | Bubble) or @vini_brito 's Simple Looper (Simple looper (workflow repeater) Plugin | Bubble). If you’re going to be running that for thousands of records (things, users etc) then it’s probably not advised but it will work. Just make sure you put a pause action at the end of each iteration workflow so that you don’t run into any issues.

My current method keeps track of which data entry it is using and iterates down the list by calling itself (i.e. calling the same workflow) in the backend workflow. Would you say this is the recommended way to carry out an action for every data entry?

From your original post you mentioned that you didn’t want to use back-end workflows to send an email to each end user. The only other way (unless you want to use another back-end service like Xano) is to run it on the front-end eg the user clicks a button and you start a workflow which loops (using List Shifter or Simple Looper etc) and sends an email to each end user. However unless you know for sure that you’re dealing with less than a few hundred records max when carrying out that task then you should definitely NOT use a front-end loop to do it. Personally I’d always use a back-end recursive workflow for doing something like this rather than perform it on the UI.