How to work with recipe versions

Why is versioning important?

Whether you are writing code for a software application or publishing a blog on WordPress, designing assets for your website, developing photos for your portfolio, saving versions of your work after adding changes is an essential habit.

Versioning is also essential for a collaborative and iterative development process. In Workato, versioning allows everyone on your team to collaborate and work on the same recipe without the fear of damaging or losing another person’s changes. The auto-tracking and auditing of changes provides complete transparency on the latest version of the recipe and the changes from each iteration. It also gives you the ability to track issues, retrace your steps to resolve unwanted changes and, unlike life, be able to restore a healthy & functional version of your work.

How does recipe versioning work?

 

The Recipe creation process can be iterative as you add the triggers (e.g. new opportunity created in Salesforce), actions (e.g. create a new invoice in Intacct), business logic and connections for apps. As you iterate on a recipe’s development, you will be making multiple changes to the recipe based on what you learn about the business process, validation of the business logic and feedback from the test results.

While you are busy making these changes, Workato is automatically saving a new version of the recipe behind the scenes. Workato has this built-in habit of preserving versions of your recipes so that you can focus on building the recipe without worrying about losing work.

Every time a recipe is saved, a version of the recipe is added. All versions of the recipe can be viewed under the Versions section. In the above example,  version 7 is created when the recipe is saved with the change in interval value from 30 minutes to 60 minutes.

 

Understanding the recipe version history

Change Type

Each recipe version tracks the following changes:

  • User Generated Changes:
    • These changes include addition/modification of triggers, actions, steps, connections, business logic (e.g. mapping, formulas etc.)
    • These changes are generated by users making changes to the recipe
  • Workato Generated Changes:
    • These changes pertain to updates of the underlying schema of objects referenced in the recipe e.g. new field added to a Salesforce custom object
    • These changes are tracked and generated by Workato

Version Identifier and Current Version:

  • Each recipe version is assigned a unique numeric identifier e.g. version 39
  • The “current” label next to a version identifier indicates that this is the current version of the recipe in use. “Current” indicates that this version of the recipe is active for editing and executing.

Seeing who added changes and when the changes were added

In a multi-user collaborative environment, a recipe can be modified by more than one user, therefore it becomes important to know who applied changes to each version. No matter if there are multiple users or a single user, knowing when a recipe was changed is critical in keeping a time log of changes in case you need to revert to an old version.

  • The date field provides a time stamp of when the version was saved.
  • The user field provides the name of the account that saved changes to a specific version.

 

Back to the Future – Restoring Versions

Restoring past versions of a recipe shouldn’t be as complicated as traveling back in time, no flux capacitors or bolts of lightning required!  Often times you will need to revert to a specific iteration of the recipe because the business rules in the connected applications got rolled back, or some planned product push got delayed. Whatever the reason, you can easily restore a specific version of the recipe as demonstrated below.

 

 

 

When the recipe has been successfully restored, the recipe versioning adds a new copy of the restored version and sets it as “Current”. In the above example recipe version 10 was created by restoring a copy of recipe version 8 and it was set as “current”. When the current version of a recipe is started, it will use the apps, triggers, actions, business logic and parameters set in recipe version 10.

Versioning helps you make recipes more easily, keep track of your work, and collaborate with others. Let us know what you think about this feature in the comments or shoot us an email!