> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcollate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Governance Workflows - Creating a New Workflow

> Create a new governance workflow by setting basic details and running event-based or batch executions.

# Creating the “Set Tags to ML Model Workflow”

The following steps walk you through building the **SetTagsToMLModelWorkflow** from start to finish.
Each screenshot corresponds to a specific action you take while creating the workflow.

## Step 1: Create a New Workflow

1. From the left navigation bar, navigate to **Governance** > **Workflows**.

   <img src="https://mintcdn.com/collatedocs/LUQwLPA4Y6ndbf92/public/images/ai-2.0/data-governance/acess-workflow.png?fit=max&auto=format&n=LUQwLPA4Y6ndbf92&q=85&s=a744b6a91f8dd672d800437011133b7a" alt="Access Workflow" width="2856" height="1390" data-path="public/images/ai-2.0/data-governance/acess-workflow.png" />

2. Click **New Workflow** and enter the following details:
   * **Workflow Name**: A unique identifier without spaces. For example, `SetTagsToMLModelWorkflow`.
   * **Description**: A short summary of the workflow purpose. For example, “Set Tags to ML Model if the description is complete.”

     <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-CreateWorkflow.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=439293e7b791c4558f845a99fc2f6b71" alt="SetTagsToMLModelWorkflow" width="597" height="868" data-path="public/images/how-to-guides/governance/SetMLModelTag-CreateWorkflow.png" />

3. Click **Save and Next** to continue.

## Step 2: Configure the Start Node

After creating the workflow, configure the **Start** node to define which assets it applies to and when it runs.

1. Drag the **Start** node onto the canvas.

   <img src="https://mintcdn.com/collatedocs/LUQwLPA4Y6ndbf92/public/images/ai-2.0/data-governance/drop-start-node.png?fit=max&auto=format&n=LUQwLPA4Y6ndbf92&q=85&s=0bd830da2f929ed6cb1929e6898ffb03" alt="Drag and Drop Start Node" width="2306" height="1566" data-path="public/images/ai-2.0/data-governance/drop-start-node.png" />

2. Fill in the following fields:
   * **Data Asset** (required): Select one or more entity types the workflow applies to (for example, `MlModel`).
   * **Data Asset Filter** (Optional): Add search filters to narrow which assets the workflow acts on.
   * **Trigger Type** (required): Choose how to trigger the workflow:
     * **Event Based**: Triggers when an entity is created or updated.
     * **Periodic Batch**: Triggers on a schedule and processes entities in batches.

3. If you selected **Event Based**, configure:
   * **Event Type** (required): Select the events that trigger the workflow — **Created**, **Updated**, or both.
   * **Exclude Fields** (Optional): Select fields whose changes alone should not trigger the workflow.
   * **Include Fields** (Optional): Select fields that must be present in the change to trigger the workflow. Takes priority over **Exclude Fields**.

4. If you selected **Periodic Batch**, configure:

   * **Schedule Type** (required): Choose **On Demand** to trigger manually, or **Scheduled** to set a cron-based schedule.
   * **Schedule** (shown when **Scheduled** is selected): Define the cron expression for when the workflow runs.
   * **Batch Size**: Number of entities to process per batch (default: 100).

   <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-StartNode.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=6d9badbc5fe82de1b84ad87639cf2681" alt="SetTagsToMLModelWorkflow" width="653" height="866" data-path="public/images/how-to-guides/governance/SetMLModelTag-StartNode.png" />

5. Click **Save**.

## Step 3: Add a Condition Check

1. Drag the **Check Condition** node onto the canvas.

   <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-CheckDescription.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=1edfe3d1e501cc18d25aef5d98534f3e" alt="SetTagsToMLModelWorkflow" width="786" height="879" data-path="public/images/how-to-guides/governance/SetMLModelTag-CheckDescription.png" />

2. Fill in the following fields:
   * **Display Name**: Enter a name for this condition (for example, *Check NON NULL Description*).
   * **Description**: Briefly describe what this condition checks (for example, *Check if Description is Set*).
   * **Rules to Check**: Build a condition using the query builder. For example:
     * Field: `Description`
     * Operator: `Is Set`

3. Click **Save**.

## Step 4: Configure the TRUE Condition Path

1. Draw a connection from the **Check Condition** node to a new **Set Action** node. A **Connection Condition** modal appears.

2. In the modal, set the condition to **TRUE** and confirm the source and destination nodes.

   <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-TrueCondition.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=4eadc884a90895603533b055d052d5b0" alt="SetTagsToMLModelWorkflow" width="1084" height="541" data-path="public/images/how-to-guides/governance/SetMLModelTag-TrueCondition.png" />

3. Click **Save**.

4. Open the **Set Action** node.

5. Fill in the following fields:

   * **Display Name**: Enter a name for this action (for example, *Set Complete Tag*).
   * **Description**: Briefly describe the action.
   * **Field Name**: Select `tags`.
   * **Field Value**: Select or enter `MachineLearning.Complete`.

   <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-SetCompleteTag.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=fa8566ac4405563b456b5a885870516c" alt="SetTagsToMLModelWorkflow" width="770" height="864" data-path="public/images/how-to-guides/governance/SetMLModelTag-SetCompleteTag.png" />

6. Click **Save**.

## Step 5: Configure the FALSE Condition Path

1. Draw a connection from the **Check Condition** node to another **Set Action** node. A **Connection Condition** modal appears.

2. In the modal, set the condition to **FALSE** and confirm the source and destination nodes.

   <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-FalseCondition.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=29da824c30fa59c06fe18f922c377fe4" alt="SetTagsToMLModelWorkflow" width="1296" height="563" data-path="public/images/how-to-guides/governance/SetMLModelTag-FalseCondition.png" />

3. Click **Save**.

4. Open the **Set Action** node.

5. Fill in the following fields:

   * **Display Name**: Enter a name for this action (for example, *Set InComplete Tag*).
   * **Description**: Briefly describe the action.
   * **Field Name**: Select `tags`.
   * **Field Value**: Select or enter `MachineLearning.InComplete`.

   <img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-SetIncompleteTag.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=9afb86ff951e61d70fd81e85fb821931" alt="SetTagsToMLModelWorkflow" width="787" height="859" data-path="public/images/how-to-guides/governance/SetMLModelTag-SetIncompleteTag.png" />

6. Click **Save**.

## Step 6: End the Workflow

Connect both the TRUE and FALSE action nodes to an **End** node to mark workflow completion.

<img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetMLModelTag-EndCondition.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=d848b32c92c780ffa2815b8110f5ed6e" alt="SetTagsToMLModelWorkflow" width="586" height="476" data-path="public/images/how-to-guides/governance/SetMLModelTag-EndCondition.png" />

This ensures the workflow automatically stops after tagging the model appropriately.

## Final Workflow Overview

Once all nodes and connections are in place, your workflow should look like this:

<img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/SetTagsToMLModelWorkflow.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=e6f719336fabe15ab13849a57bf92516" alt="SetTagsToMLModelWorkflow" width="1622" height="743" data-path="public/images/how-to-guides/governance/SetTagsToMLModelWorkflow.png" />

* **TRUE → Apply Complete Tag**
* **FALSE → Apply Incomplete Tag**

This workflow fully automates documentation completeness tagging for ML models.

### Running a Periodic Batch Workflow

To execute an on-demand workflow, click **Run Now** This immediately triggers the workflow based on its configuration.

<img src="https://mintcdn.com/collatedocs/RWySTZfdGXLAinlR/public/images/how-to-guides/governance/RunAWorkflow.png?fit=max&auto=format&n=RWySTZfdGXLAinlR&q=85&s=8c0eb777b78e8036c62c1b8b7813c123" alt="Running a Periodic Batch Workflow" width="1635" height="802" data-path="public/images/how-to-guides/governance/RunAWorkflow.png" />

## Best Practices

1. **Use the Right Type of Trigger**
   * **Event-Based Entity Triggers** are ideal when Collate needs to automatically update specific fields in response to a change.

     *Example:* When any attribute of a Glossary Term changes, its status automatically updates to **IN REVIEW**.

   * **Periodic Batch Triggers** are best suited for bulk updates across many entities, especially for classification or enrichment workflows.

     *Example:* Tables or Dashboards can be classified as Tier 1, Tier 2, or Tier 3 based on the completeness of their column descriptions.

2. **Use a Single Event-Based Workflow per Data Asset**
   * Configure only one event-based entity workflow for each data asset.

     Having multiple workflows attempting to update the same field (such as the status of a Glossary Term) can result in unpredictable behavior, as one workflow’s changes may override another’s.

3. **Optimize Batch Size for Periodic Workflows**
   * Tune the batch size based on the number of data assets to ensure optimal performance.
   * Avoid running periodic workflows across all entities without filtering. Instead, apply an inclusion filter to limit the result set and prevent performance degradation.

4. **Use User Approval Tasks Only in Event-Based Workflows**
   * Use User Approval Tasks exclusively in event-driven workflows.

     Using them in periodic workflows would generate multiple approval tasks simultaneously, overloading system resources.

   * If a periodic batch workflow requires an approval step, limit the workflow scope to a small, controlled set of entities.

## Limitations

1. **User Approval Tasks Are Limited to Assets with Reviewer Support**
   * User Approval Tasks can only be used for data assets that support assigning reviewers.

     Reviewer support for additional asset types will be introduced in future releases.

2. **Fallback Behavior for Entities Without Reviewers**
   * For entities that do not have any reviewers configured, User Approval Tasks automatically follow the **TRUE** path as a graceful fallback.

     *Example:* A Metric without a reviewer will automatically pass the approval step.
