Not quite certain on what you are trying to do where you need your action to change dynamically, but to give you some options to go with:
The location query parameters can be dynamically changed by storing them in variables, and using said variables in setting the location in the action. Then you can edit the variables after the action and run the same action again in a loop.
For the headers, the keys are fixed. The value are dynamic in the same way, stored in variables.
As for the import mapping of the response, to get that somewhat more dynamic you should return the response as string, and send that string to a subflow that can decide what import mapping you wish to use on it. Where the subflow might have to be rebuilt later when you extend on what you need, you can make this ridiculously configurable if you also work with the Model Reflection module.