you have to add the return data action but also set the api workflow to return data (two places)

BUT if you are triggering other api workflows and using recursion the issue becomes much more complex since the nested workflows will process separately to the main api workflow.

you can force workflows to process in sequence using custom events but custom events have a built in anti-repeat logic so you have to break the repeat cycle with an api workflow

the best way to process a list of things is to hold it as a list throughout the steps or write it to the database (but that incurs database workload usage).

often I’ll hold the lists as I process them (process one item at a time and remove from list then repeat until empty, then run finish event). I’ll usually have a progress on the main data to update the user as to the process moving forward or erroring. if you needed super granular progress you would hold the lists or counts on the data and then count them vs the completed count.