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 
  
 } 
 } 
 
 

