One of the benefits, it would seem, with Workato is that you might build a recipe to interact with one app, for example, Hubspot, and then a couple years later your organization switches to a different app, let's say Saleforce. In theory, the re-work on the recipes wouldn't be horrific b/c you're just "swapping out" one connector for another. Of course the devil's in the details, so I'm just curious how others' experience has been in these kinds of scenarios. Is it really pretty straight-forward with minimal effort, or is it more work than you expected?
In most scenarios, switching to a different vendor would mean different API methods and data model. My suggestion is to create dedicated callable recipies that are wrapping specifc functions and are invoking APIs of the target systems. So, in case of changes, you will only need to replace one such recipe, keeping the rest of your logic intact.
Alex is suggesting a good approach. Your main recipe would carry the logic and conditions, and the callable recipes would be specific to the system. Keep in mind that the main recipe might need to change as well since different system will have different requirements and logic.
Also always apply low coupling and highg cohesion. Following the Alek Oleszkiewicz approach try to do the data transformation in the function recipe. For example: in the main recipe you pull the data from some place , probably you need to clean, enrich that data before send to another app (Hubspot). Always try to do that in the function recipe , that way when you swap to another app your changes in the main recipe will be minimal.
The phrase "swapping out a connector" sounds like pulling out the electric socket and replacing with another. However, it's more complicated in reality, mainly because of the differences in the APIs (actions) and data transformation process. For example, my company app can be connected to 4 different thermal scanner brands. Each time a new brand partner exists, I would be "swapping out a connector", but the recipes are very different to the extent of creating new ones. One vendor has API with pagination, another without. One vendor has API with bulk records upload, but not the rest. One vendor has datetime in unix epoch format, another has datetime format with timezone, the rest without, etc.