Right, since they are different applications, it’s best to treat each application as having its own workflow.
However, if all the steps are identical. Like, type in text, click search, get results…
Then, an alternative method would be to use a Pick Branch.
A pick branch will allow you to look for a condition/scenario, for example an Element Exist on the first element for each application, then perform the steps using the specific selectors needed inside each pick section.
To go even further, you could store the selectors for each set of steps to array variables for each application. Then, set that array to a variable inside the Pick, and outside the Pick Branch perform those steps.
Kind of like this:
Element Exist1 Element Exist2 Element Exist3
arr = app1Array arr = app2Array arr = app2Array
Type Into arr(0)
Click Submit arr(1)
Get Text arr(2)
// or whatever you needed to do
If the steps are different, then you would probably want to place the steps inside the Pick Branch.
Anyway, that’s just an idea. But, I do normally recommend that each Task performed in each Application have a separate workflow (as was suggested by previous poster), because it becomes easier to maintain and troubleshoot. But, I also understand if maybe there are similarities that they are trying to streamline, which I couldn’t say is wrong or right from my perspective.
EDIT: Also, I want to make sure I add that if all the applications are part of the same business process, then there definitely should only be one workflow that is published. However, each application would be invoked within that published workflow to perform the process, which in that case, you would use either Pick Branch or Switch.