Update and manage steps with versions

When you publish a new version of your step, existing user flows that include the step are not automatically updated. After publishing a step, to maintain support for previous behavior, use versions for changes.

Changes that you should use versions for include:

  • Adding new required fields
  • Deprecating input or output fields
  • Altering data types, like string, float, or int
  • Modifying the fundamental behavior of a step

To implement versioning, specify current_version and min_version in your step's manifest file.

  • current_version: The version number of the current active deployment.
  • min_version: The oldest supported version of the step.

The following manifest example shows how to define versions for a step:

JSON

...
"flows": {
     "workflowElements": [
       {
         "id": "...",
         "state": "...",
         "name": "...",
         "description": "...",
         "version" : {
           "current_version": 3,
           "min_version" : 1
         },
...

During execution, you can retrieve the version number from the event object and define custom behavior for each version.

Apps Script

/**
 * Executes the step and handles different versions.
 * @param {Object} event The event object from the workflow.
 */
function onExecute(event) {
  // Get the version ID from the execution metadata.
  const versionId = event.workflow.executionMetadata.versionId;

  // Implement different behavior based on the version.
  if (versionId < 2) {
    // Handle earlier versions
  } else {
    // Handle current and newer versions
  }
}