Following on the URLRedirector idea, you can build a URL to your file in a few ways:
In a nanoflow:
This is the easiest way to build a URL. Make a JavaScript action and pass it your fileDocument as a parameter called ‘obj’. Then your code is just:
return mx.data.getDocumentUrl(obj.getGuid(), obj.get("changedDate") as number);
You can also open a new tab in a JavaScript action to avoid the URL redirector widget altogether:
window.open(url, '_blank');
In a microflow:
You can use a few actions from CommunityCommons to make the URL. The general structure is like this:
https://myapp.com/file?guid=24124132
So you can build this URL by combining:
Maybe you can do something with the urlredirector widget?
As far as I know microflows can execute the download file action only once.
I think the easiest way to achieve what you want is to separate the microflow actions by calling them separately from a nanoflow.
Edit: This does work for downloading multiple files but when setting 'Show file in the browser instead of downloading’ it will result in the same behaviour that you have described.