For 1.
I'm not sure I'm following either may need an example of the desired state sequenced out. But if you want agent to pass information to a flow, you have few options, different internal DDIs could be put in your table and staff call those DDIs instead. You could have a different Internal flow for staff with a menu. You could get the agent's to press a button in the agent script which calls a data action to update participant data which your flow can then use that button could also then initiate the transfer to flow. But yeah without understanding exactly what you are trying to do it is hard to provide advice.
For 2. Again not sure exactly what you are after, but different queues can be set with their own in queue flow so even though same action says go to queue it will be a different in queue flow, or you can use one in queue flow and within there you could use the built in current queue variable to check what the current queue is and apply different logic there.
One minor note in your flow you have the logic in a decision Flow.PathClosedTransfer and Flow.ExternalClosedTransfer != ""
I don't think that does what you think it does. Both of those variables are booleans, which means there is 3 possible values for them, TRUE, FALSE, NULL (NOT SET)
Also that isn't checking if the last variable is an empty string, that is checking if the resulting boollean from A AND B is an empty string. If there are no parenthesis then the order of operands really matter just like in math, multiplication before addition.
Just to break it down further at run time variable names are gone and just the values are there so you have TRUE AND FALSE != "" and so that just becomes FALSE = !"" which is always going to be TRUE, but if the result was TRUE !="" then that is also TRUE, so it doesn't really do anything, but if either of those values are NULL, then TRUE AND NULL creates an error, and it would go to error handling.
So instead you want something like Flow.PathClosedTransfer and IsNotSetOrEmpty(Flow.ExternalClosedTransfer)
or IsNotSetOrEmpty(Flow.PathClosedTransfer) and IsNotSetOrEmpty(Flow.ExternalClosedTransfer) depending on what you are trying to check for.
------------------------------
Anton Vroon
------------------------------