> ## Documentation Index
> Fetch the complete documentation index at: https://domoinc-openapi-sync-dataflows.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a Workflow

export const InlineImage = ({src, alt = '', height = '1.6em'}) => {
  return <img noZoom src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

### Intro

Depending on the complexity of your process, creating and configuring a workflow for the first time can require significant time and effort. You can always contact your Domo account team for support.

This article describes how to create a workflow from our library of pre-built templates or from a blank canvas.

After creating a workflow version, you must *validate*, *deploy*, and *start* it. Learn how below.

<Note>
  **Glossary:** *Italicized* terms in this article have particular definitions within Workflows. Visit the Workflows [glossary](https://domo-support.domo.com/s/article/000005108?language=en_US#glossary) to learn the definitions.
</Note>

<Tip>
  **Learn more:** See [Manage Workflows](https://domo-support.domo.com/s/article/000005179?language=en_US) to learn about workflow *versions*, the *executions* list, and tracking information.
</Tip>

We want to hear about your experience with Domo documentation. Please contact us at [kb@domo.com](mailto:kb@domo.com) <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq0000026ObB.jpg" />.

***

### Required Grant

You can create new workflows as long as you have at least an Editor system role or a custom role with the Create Workflows grant enabled.

Learn about [system](/s/article/360043438953) and [custom](/s/article/360043438973) roles.

<Note>
  **Note:** If you can't access Workflows even with the appropriate grant, contact your Domo account team to enable the feature.
</Note>

### Access Workflows

You can access Workflows from the main Domo navigation.

This table describes the two default views of the Workflows home.

<table border="1" cellpadding="1" cellspacing="1" data-aura-rendered-by="33:208;a"><thead><tr><th colspan="1" rowspan="1"><p> Description </p></th><th colspan="1" rowspan="1"><p> Default view </p></th></tr></thead><tbody><tr><td colspan="1" rowspan="1"><p> If you have access to at least one workflow (including those you've created), the default view lists all your available workflows. </p></td><td colspan="1" rowspan="1"><p><img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xiTa.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=ee838c59bbe86e527d4489b37da8d499" style={{width: 800, height: 376}} width="2936" height="1380" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xiTa.jpg" /></p></td></tr><tr><td colspan="1" rowspan="1"><p> If you don't have access to any workflow, the default view is the template library. </p><p><b> Template Library: </b> The template library contains pre-built workflows for processes, including approval requests and page archiving. </p></td><td colspan="1" rowspan="1"><p><img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xapO.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=ccdab41df4723de7cb82d2f3e556111b" style={{width: 799, height: 396}} width="2934" height="1454" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xapO.jpg" /><a id="create_workflow_from_template" target="_blank" /></p></td></tr></tbody></table>

### Create a Workflow from a Template

You can create a workflow from the template library or create a "template" from an existing workflow you have access to by creating a new *version* of it or performing a **Save As** action to reuse and customize it.

<Note>
  **Note:** You must have the Create Workflows grant to create a workflow. Learn more about [required grants](https://domo-support.domo.com/s/article/000005179?language=en_US#required_grants) for Workflows.
</Note>

1. From your default Workflows view, select **+ New Workflow** > **Create from Template** to open the template library.

2. Choose a template from the library and enter a name in the **Model Name** field. (The max character limit is 75.) Your workflow must have a name to proceed.
   * If you change the pre-populated version number, the number must be in the \< *\<major.minor.patch>>* format.

     <Tip>
       **Tip:** It's good practice to use a name and description that helps you identify the workflow in the workflows list.
     </Tip>

3. Select **Use This Template** to open the template in the Workflows [canvas](#design_your_workflow).

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xijh.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=3fcc5e80a62a0b8e02959ac464fd43db" style={{width: 897, height: 434}} width="2788" height="1348" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xijh.jpg" />
   </Frame>

4. Make any changes to the template configuration. Configuration options include:
   * Selecting a
     [shape](#add_shapes_to_your_canvas) and configuring it in the right configuration panel. Click an empty area of the canvas to close the configuration panel.
   * Select a flow (connect), or line, between the shapes to view the
     <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002lgib.jpg" /> **Add** / **Remove shape** controls and change shapes on the canvas.
   * Click-and-drag shapes and flows around the canvas to change the design of your workflow.

     <Frame>
       <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s3yv.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=c3b6e9ae05350e64dd5c08ee9e8bd7f0" style={{width: 896, height: 430}} width="3068" height="1472" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s3yv.jpg" />
     </Frame>

5. Select **Save** to keep your changes.

   <Tip>
     **Next step:** Learn how to [validate](#validate_a_workflow) your workflow.
   </Tip>

### Create a Workflow from a Blank Canvas

<Note>
  **Note:** You must have the Create Workflows grant to create a workflow. Learn more about [required grants](https://domo-support.domo.com/s/article/000005179?language=en_US#required_grants) for Workflows.
</Note>

1. From your default Workflows view, select **+ New Workflow** > **Blank Workflow**.
2. Enter a name for your workflow. (The max character limit for the name is 75.)
3. Select **Save** and open the [canvas](#design_your_workflow).
   * If you change the pre-populated version number, the number must be in the *\<major.minor.patch>* format.
4. Add shapes and flows, or lines, to the canvas and configure them. Configuration options include:

   * Selecting a
     [shape](#add_shapes_to_your_canvas) and configuring it in the right configuration panel. Click a blank space on the canvas to close the configuration panel.
   * Select a flow (connect), or line, between the shapes to view the
     <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002lgib.jpg" /> **Add** / **Remove shape** controls and change shapes on the canvas.

* Click-and-drag shapes and flows around the canvas to change the design of your workflow.

1. Select **Save** to keep your changes.

   <Tip>
     **Next step:** Learn how to [validate](#validate_a_workflow) your workflow.
   </Tip>

### Design Your Workflow

The Workflows canvas is where you design and edit your workflow.

# Left Panel Information

When the canvas opens, the left panel displays information about the workflow in the <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xk5Z.jpg" /> **About this workflow** tab. The information includes whether the workflow is deployed and active.

A 🔴 red dot by the **Last Updated** date means that there are unsaved edits for the version.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s4YP.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=2c2a154efb5e0deffef7463c9f31836b" style={{width: 348, height: 402}} width="766" height="884" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s4YP.jpg" />
</Frame>

In the <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xiF4.jpg" /> **Workflow variables** tab, you can add and view variables color-coded by data type. Learn how to [add a variable](#add_a_variable) and use the [data association tool](#view_data_association) below.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s4gT.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=2d7c7dad363d104f21c33846a7b95b65" style={{width: 298, height: 322}} width="602" height="650" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s4gT.jpg" />
</Frame>

The **Triggers** tab displays the configured triggers for this workflow version. Other than manual triggers, triggers can only be configured after a version has been deployed. Learn more about [triggers](https://domo-support.domo.com/s/article/000005179?language=en_US#manage_triggers).

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xjhO.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=7c5e7dd252feff9624f5466041db009e" style={{width: 300, height: 397}} width="586" height="776" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xjhO.jpg" />
</Frame>

# Move Around the Canvas

Use the following controls to help you move around the canvas and design your workflow:

#### Element Controls

Use the following mouse/trackpad and hotkeys commands to move shapes and flows around the canvas.

##### Select Elements

* **Single element select** **—** Left-click a node or edge of an element to select it.

  <Frame>
    <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xlxh.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=ea4a5f421430ed9dcdd2e968a19e85ea" style={{width: 249, height: 191}} width="292" height="224" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xlxh.jpg" />
  </Frame>

* **Multi-element select —** Hold **Shift** + left-click and drag the cursor to select multiple elements.

  Holding **Control** (Windows) **/Command** (Mac) and selecting multiple nodes also selects multiple elements.

  <Frame>
    <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xigU.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=caf0a2c75a27bdcadb1275a1f91084ca" style={{width: 251, height: 357}} width="392" height="558" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xigU.jpg" />
  </Frame>

* **Select All Elements —** Press **Control** (Windows) **/Command** (Mac) + **A** to select all the elements.

  <Frame>
    <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xjhP.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=7afe9fa8e85139d3fd32cf85bed76b3c" style={{width: 250, height: 518}} width="554" height="1148" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xjhP.jpg" />
  </Frame>

##### Pan

* Left-click an empty area of the canvas and drag to move the entire canvas.

#### Zoom

Zoom with the **Zoom in/Zoom out** controls.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xe50.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=8c465b55a3874b901b7653ed6ff76628" style={{width: 49, height: 113}} width="110" height="254" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xe50.jpg" />
</Frame>

#### Center

Selecting the <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xlWH.jpg" /> **eye** icon centers your workflow on the canvas.

# Use the Configuration Panel

When you add a start or any other shape to the canvas and select it, a configuration panel displays to the right of the canvas, as shown below. The configuration panel may contain tabs, based on the shape. In the example below, the Code Function configuration panel has two tabs: **Mapping** and **Timer**.

When no shape is selected, no configuration panel displays.

To close the configuration panel, select an empty area of the canvas.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s59V.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=cc81ff91e2889f0ed6d97c0ebc4f1607" style={{width: 900, height: 375}} width="1532" height="638" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s59V.jpg" />
</Frame>

# Add a Variable

Follow these steps to add a variable to the **Workflow variables** list:

1. In the canvas left navigation, go to the **Workflow variables** tab.

   <Frame>
     <img alt="Screenshot 2025-01-14 at 5.50.47 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004ohDx.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=dc653540059ea5eb911d16007783ad6c" style={{width: 400, height: 274}} width="966" height="662" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004ohDx.jpg" />
   </Frame>

2. Select **Add Variable** to open the modal.

3. Enter a name in the **Variable Name** field. You cannot use spaces or special characters in the variable name.

4. Choose a data type from the **Data Type** dropdown. The data type may require a subtype or have additional options. Learn more about [data types](https://domo-support.domo.com/s/article/000005797?language=en_US#data_types).

   If you want to make it a list variable, check the box labeled **Make List**.

   <Frame>
     <img alt="Screenshot 2025-01-14 at 5.52.15 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004og0A.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=f33327716336e41b6a2fa9fd388e3e57" style={{width: 650, height: 229}} width="2144" height="756" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004og0A.jpg" />
   </Frame>

5. (Optional) If you want this variable to always have a certain value when the workflow executes, select **+ Add Initial Value**.

   You can then enter an initial value, depending on the data type. Learn more about [data types](https://domo-support.domo.com/s/article/000005797?language=en_US#data_types).

   <Frame>
     <img alt="Screenshot 2025-01-14 at 5.58.13 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004ohkD.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=621b71ee09180b596925dca6093f774b" style={{width: 645, height: 261}} width="2148" height="868" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004ohkD.jpg" />
   </Frame>

6. Select **Add Variable** to add the variable to the variables list or choose <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000004ocNy.jpg" /> **More options** > **Save and add another** to add another variable to the list.

# Edit and Delete a Variable

Follow these steps to edit a variable in the **Workflows variables** tab:

1. Go to the **Workflow variables** tab in the canvas left navigation.

2. Hover over any variable in the list and select
   <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s5np.jpg" /> **Edit** to open the modal.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s6Dd.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=5e5d426e6c118caa2fde61fa9ca28869" style={{width: 278, height: 126}} width="818" height="370" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s6Dd.jpg" />
   </Frame>

3. Edit the name or data type and select **Update** to save your changes.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s6f3.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=5762708eea0119390402bdee31e8bc82" style={{width: 650, height: 229}} width="1828" height="644" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s6f3.jpg" />
   </Frame>

Follow these steps to delete a variable in the **Workflow variables** tab:

1. Go to the **Workflow variables** tab in the canvas left navigation.

2. Hover over any variable in the list and select
   <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xrTd.jpg" /> **Delete**.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xrDW.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=e85763c14593e8022dff15ad01384c76" style={{width: 275, height: 132}} width="616" height="296" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xrDW.jpg" />
   </Frame>

3. Confirm removal of the variable.

<Warning>
  **Important:** Deleting a variable may cause unmapped parameters if the variable is being used to configure a shape.
</Warning>

# View Data Association

The data association tool allows you to see where variables are in your workflow.

In the **Workflow variables** tab of the left navigation, select a variable in the variables list. The shapes in the workflow that reference that variable are highlighted in the variable's color and a correspondingly colored banner displays at the top of the canvas.

In the example below, the **Send Approval Notification to User** code function references the `currentUser` variable; both the function and the banner are colored yellow because `currentUser` has a Person data type.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s7cj.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=96c031491105e77ebd13ed0ec3bc53c0" style={{width: 898, height: 304}} width="1530" height="518" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s7cj.jpg" />
</Frame>

Choosing another variable shows the associations for that selection. Select <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001ZIeD.jpg" /> **Close** in the banner to exit data association mode and return to edit mode.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s2Mx.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=7ea779f249d7bcb763f4e240581adc92" style={{width: 898, height: 304}} width="1536" height="520" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s2Mx.jpg" />
</Frame>

# Save Your Workflow

You can keep the changes to your workflow by selecting **Save**.

<Note>
  **Note:** Before saving, you must configure every shape on the canvas. Otherwise, you'll receive an error message.
</Note>

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s4qA.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=8fbaa2eecdbbf37f21782c449bf0aeca" style={{width: 898, height: 429}} width="3064" height="1464" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s4qA.jpg" />
</Frame>

#### Perform a Save As

You can perform a 'save as' for your workflow by selecting <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s8Ab.jpg" /> **More** (vertical three-dot menu) > **Save As**. If you have unsaved changes, you'll receive a warning message, but you can choose to 'save as' anyway and give the new version a number.

<Frame>
  <img alt="save as workflow.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002mMbN.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=3b3b5fde4a3e091931d0896c4f2e9e24" style={{width: 401, height: 325}} width="976" height="792" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002mMbN.jpg" />
</Frame>

# Configure Workflow Start

Whether you create a new workflow from a template or a blank canvas, you must configure the workflow starting shape.

<Note>
  **Note:** Instead of using a manual start, you can trigger a workflow using a timer or from inside another Domo feature, such as App Studio. Triggers can only be configured after the workflow is [deployed](#deploy_a_workflow). Learn how to [configure a trigger](https://domo-support.domo.com/s/article/000005179?language=en_US#manage_triggers) for a deployed workflow version.
</Note>

Select the default starting shape on the canvas to open the configuration panel. The title for a start shape defaults to "Start *Workflow Name*." You can change the title either by double-clicking inside the start shape to edit the text or by editing the title field in the configuration panel.
In the configuration panel, you can also enter workflow description.

In the panel, you can add and configure any parameters the workflow needs as inputs. These can be entered by the workflow user via a form or given an initial or default value that is always passed when the workflow starts.

<Note>
  **Note:** If your workflow will loop, and you would rather not introduce a manual step for each execution or use a complex code function, you can assign an initial value to a variable, allowing the workflow to begin always using that value for the variable. Learn how to [assign an initial value to a variable](#add_a_variable) above.
</Note>

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005VAt3.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=4bdf1e1eea4ba5989a6d688ffe428719" style={{width: 899, height: 377}} width="3032" height="1272" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005VAt3.jpg" />
</Frame>

#### Add Parameters

Parameters require or allow data values to be passed into the workflow when it executes. Follow these steps to add and configure your starting parameters:

1. Select your start shape to open the configuration panel, and select **Add Parameter** to open the new parameter modal.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xrbi.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=ad3bb9cf497d9f9f020a9899c797660c" style={{width: 250, height: 365}} width="634" height="926" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005xrbi.jpg" />
   </Frame>

2. In the modal, enter a name for the parameter. Spaces and special characters are not allowed.

3. Choose a data type for the parameter. Learn about the available [data types](https://domo-support.domo.com/s/article/000005797?language=en_US#data_types).

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005VCBh.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=5f4cc5d31efef804a34396e226e35bbc" style={{width: 500, height: 392}} width="1458" height="1144" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005VCBh.jpg" />
   </Frame>

4. Use the **Required** toggle to indicate whether the parameter is required. By default, new parameters are marked as required.

5. (Conditional) If you want to assign a default value to a parameter, select **+ Add Default Value** after defining the name and data type. Default values can be changed until that workflow version is deployed.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005VD9N.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=60743f7a5bdc2f4ac8a46f15abdaa37e" style={{width: 602, height: 212}} width="1470" height="518" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005VD9N.jpg" />
   </Frame>

   Parameters with a default value display with a blue dot in the parameters list.

   <Frame>
     <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sFC5.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=7da3d540364c567181531fc11d1b1716" style={{width: 300, height: 93}} width="652" height="202" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sFC5.jpg" />
   </Frame>

6. Select **Add Parameter**.
   * (Optional) You can choose **More** (orange down arrow icon) > **Save and add another** if you are adding more than one parameter.

     <Frame>
       <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005V7Dg.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=afc823ad4f74a6ceb06509d93e20e8e3" style={{width: 499, height: 231}} width="898" height="416" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005V7Dg.jpg" />
     </Frame>

7. Repeat these steps for as many start parameters as needed.

The configured start parameters display in the configuration panel under **Parameters & Mapping**. A red asterisk beside the name indicates that the parameter is required for the workflow to start.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sDjm.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=5b7241d602546ecc7cc937083c4c8c63" style={{width: 250, height: 339}} width="622" height="842" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sDjm.jpg" />
</Frame>

**Note:** A corresponding variable with the same name and data type is mapped to the parameter and added to the workflow variables list, accessible from the left navigation. You can map a parameter to a different variable, but it must be of the same data type.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sDob.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=c5a1a60bde2aaad2add7302eaa6509c4" style={{width: 250, height: 249}} width="588" height="586" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sDob.jpg" />
</Frame>

Make changes to a parameter by hovering over it and selecting <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sEeD.jpg" /> **Edit**.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s8CE.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=ea8d9242896c7b6de29363e7e1f75f9f" style={{width: 298, height: 96}} width="682" height="220" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005s8CE.jpg" />
</Frame>

# Add Shapes to Your Canvas

Your workflow is a series of shapes—representing actions—connected by flows (or lines). After adding shapes to your canvas, you can drag them around to change the visual design of your workflow. Dragging a shape also drags any flows attached to it.

Add a shape to the canvas by selecting <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002mjZZ.jpg" /> **Add action** at the end of any flow to display the action menu.

Select <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sH93.jpg" /> **Add Flow** to add another connecting line.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sGeP.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=5c046e34348c45966321425052277c17" style={{width: 248, height: 197}} width="600" height="476" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sGeP.jpg" />
</Frame>

<Frame>
  <img alt="Screenshot 2024-09-18 at 1.27.45 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002mkCH.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=b7668aca14c08760fea1cc1771507e6d" style={{width: 250, height: 696}} width="336" height="935" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002mkCH.jpg" />
</Frame>

In the action menu, possible actions are grouped together, as described below.

* **Flow Controls —** Flow controls manage the direction of the workflow. There are four available:
  * *Conditional Logic —* Applies IF/THEN statements to your workflow. Learn how to configure [conditional logic](https://domo-support.domo.com/s/article/000005797?language=en_US#conditional_logic).

  * *Parallel Logic —* Forces your workflow to perform independent steps in parallel. Learn how to configure [parallel logic](https://domo-support.domo.com/s/article/000005797?language=en_US#parallel_logic).

  * *Wait —* Delays the workflow for a specified interval before allowing it to continue. Wait actions can only have one outgoing flow.

    After adding a wait action, you can name it in the configuration panel. Use the **settings** dropdown in the parameter section to enter a custom value.

    <Frame>
      <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sKRt.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=cca33aa57def23272226040f0129cafa" style={{width: 350, height: 193}} width="1212" height="668" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005sKRt.jpg" />
    </Frame>

  * *End —* Terminates the workflow. A workflow can have multiple End shapes if the design has places where one flow branches into two or more. Name and describe each End shape in the configuration panel.

    <Frame>
      <img alt="Screenshot 2024-08-02 at 3.02.49 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq0000023tLO.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=eea7ba3f00d05b76e8675fe0b999591e" style={{width: 601, height: 244}} width="822" height="334" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq0000023tLO.jpg" />
    </Frame>

* **User Tasks —** A user task represents a human interaction. It can have multiple incoming flows but only one outgoing flow. There are two kinds of user tasks:
  * *Email —* Automatically sends an email to chosen recipients. Recipients can then respond using options embedded in the email body. Learn how to [configure an email](https://domo-support.domo.com/s/article/000005797?language=en_US#email).
  * *General task —* Allows you to choose a queue and assign a needed form to a specific user. Learn how to [configure a general task](https://domo-support.domo.com/s/article/000005797?language=en_US#general_task).

* **Custom Functions —** A custom function automatically executes a pre-defined code package to perform a specific job before moving to the next step in the workflow. It can have multiple incoming flows but only one outgoing flow.

  Learn how to [configure](https://domo-support.domo.com/s/article/000005797?language=en_US#custom_function) and [test](https://domo-support.domo.com/s/article/000005797?language=en_US#test_a_function) a custom function.

* **AI Tools —** Pre-built AI functions to perform tasks in Domo. These include:
  * *Domo AI Service Layer —* Use services like Image to Text, Text Generation, and Text to SQL.

    <Frame>
      <img alt="Screenshot 2025-02-06 at 5.43.46 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005IkXl.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=cc420b985ee0a0f5329e1356a6def174" style={{width: 242, height: 446}} width="296" height="546" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005IkXl.jpg" />
    </Frame>

  * *Domo Jupyter —* Add and execute a Jupyter Notebook in your workflow. Learn more about [Jupyter Notebooks in Workflows](https://domo-support.domo.com/s/article/36004740075?language=en_US#executions_via_workflows).

    <Frame>
      <img alt="Screenshot 2025-02-06 at 5.43.04 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005IlnB.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=14b3f1f51deea3380e0cf7f674bc39c6" style={{width: 242, height: 444}} width="297" height="545" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005IlnB.jpg" />
    </Frame>

* **Query Table —** Query and retrieve data from a Domo DataSet in your workflow. You can include variables in your query and preview it before sending.

  Learn how to add a [query table](https://domo-support.domo.com/s/article/000005797?language=en_US#query_table).

  <Warning>
    **Remove a shape:** To remove a shape from the canvas, select it to display the configuration panel. In the panel, select **More** (vertical three-dot icon) > **Delete**.

    <Frame>
      <img alt="remove a shape.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002tD9x.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=10b394c4589098c2f873721f2396b897" style={{width: 899, height: 302}} width="2150" height="722" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002tD9x.jpg" />
    </Frame>
  </Warning>

<Tip>
  **Next step:** After configuring all shapes in your workflow, you must [validate](#validate_a_workflow) it before deployment.
</Tip>

### Validate a Workflow

Validating your workflow identifies issues and incorrectly configures shapes. If there are issues, the system navigates you to a Validation view to correct them.

There are three kinds of validation issues:

* **Informational —** You don't need to correct informational issues before deploying your workflow. These issues are typically superficial and don't impact workflow performance. Informational issues are color-coded blue.
* **Warning —** You don't need to correct warnings before deploying a workflow, but we strongly recommend doing so. Warnings usually indicate that a best practice is not being followed and are color-coded yellow.
* **Error —** Errors must be corrected before you can deploy a workflow. Errors are color-coded red.

# Access Validation Mode

You can put a workflow version into validation mode by deploying it from either of two locations:

* From the canvas, choose **Action menu** > **Deploy**.
* From the
  [version list](https://domo-support.domo.com/s/article/000005179?language=en_US#manage_workflow_versions), select <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000002Hc4Z.jpg" /> **Action** **menu** (three vertical dots icon) > **Deploy**.

If the version has validation issues, a dialog displays with a border the color of the most severe issue (blue, yellow, or red). The dialog prompts you to either cancel the deployment or review the issues in validation mode. All errors must be resolved before you can deploy the workflow.

<Frame>
  <img alt="Screenshot 2024-07-09 at 1.44.50 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001giyZ.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=cf37480b5e8df4fc097a24a7f7b3783d" style={{width: 501, height: 226}} width="1698" height="766" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001giyZ.jpg" />
</Frame>

If only warnings or information issues are found, a dialog with an orange border displays. You can either review the warnings in validation mode or check the box to acknowledge their potential negative impact during runtime and select **Deploy** to proceed with the deployment.

<Frame>
  <img alt="review warnings dialog.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EM5w000006uOMl.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=c2abb7eb8ca8fb93e653e166f2a5ab5e" style={{width: 500, height: 246}} width="1266" height="608" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EM5w000006uOMl.jpg" />
</Frame>

From either dialog, selecting **Review Issues** opens the canvas in validation mode.

# Review Issues in Validation Mode

In validation mode, any shape with validation issues displays with the icon and colored border associated with its most severe validation issue. Selecting a shape also expands the message panel at the bottom of the canvas with details of each error.

<Note>
  **Note:** When you select a variable from the list in the **Workflow variables** tab, you leave validation mode and open the [data association tool](#view_data_association).
</Note>

In this image, the Code Function shape named "Notify user there are no pages to modify" has a red Error icon and border because it has at least one error. Details about each error or other issue display in the message panel at the bottom of the canvas.

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005uHph.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=f36b47d6d46b81ca62e5b146e385403d" style={{width: 899, height: 424}} width="3582" height="1690" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005uHph.jpg" />
</Frame>

#### Message Panel

The message panel displays information about all issues detected in the workflow version and how to resolve them, separated by individual shapes. General workflow validation issues display when no shape is selected.

<Frame>
  <img alt="general workflow issues.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001guYH.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=f5e975f0917de2375bf3dc6e16a27567" style={{width: 900, height: 485}} width="3296" height="1776" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001guYH.jpg" />
</Frame>

The ribbon at the top of the message panel includes the name of the shape (if one is selected), the total number of issues for that shape (or the total number of general issues), controls that allow you to page through the message panel to view every shape with issues in the workflow, and a control to <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EM5w000006uOPQ.jpg" /> collapse the message panel. When the message panel is collapsed, you can select <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EM5w000006uOPV.jpg" /> **Expand** to reopen the message panel.

<Frame>
  <img alt="message panel ribbon.jpg" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001gump.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=d2b2245303be6339aaff5a553f10d62e" style={{width: 850, height: 55}} width="2628" height="170" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001gump.jpg" />
</Frame>

Shapes without validation issues do not appear in the message panel.

As you move through the screens of the message panel, if a certain shape has more than one type of issue, the issues display in severity groupings—error messages separated from warning messages, for example.

<Frame>
  <img alt="Screenshot 2024-07-09 at 3.05.22 PM.png" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001gv2v.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=52e60504f91af8acea9b0962cb8b3ec6" style={{width: 700, height: 278}} width="2304" height="914" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000001gv2v.jpg" />
</Frame>

<Tip>
  **Next step:** Next, [deploy](#deploy_a_workflow) your workflow.
</Tip>

### Deploy a Workflow

Workflows must be deployed before they can run. A deployed *version* can be started manually or started by a trigger. Deploying a version puts it into [validation mode](#validate_a_workflow); after it's validated, it deploys.

If you have Deploy or Admin [permission](https://domo-support.domo.com/s/article/000005179?language=en_US#manage_permissions) to the workflow, you can select **Action menu** > **Deploy** for a version from the version list or from inside edit or view mode.

<Tip>
  **Next step:** Learn how to [start](#start_a_workflow) your workflow.
</Tip>

### Start a Workflow

To start a workflow, you must have Execute or Admin [permission](https://domo-support.domo.com/s/article/000005179?language=en_US#manage_permissions) to it. Your workflow must be [validated](#validate_a_workflow) and [deployed](#deploy_a_workflow) before starting.

<Warning>
  **Important:** You can only start a deployed version if it is active. Deactivated versions can't be executed.
</Warning>

You can start a workflow version from the version list page by selecting <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005uIoz.jpg" /> **Start** (or from the canvas in edit or view-only mode by selecting <InlineImage src="/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq0000026oDt.jpg" /> **Action menu** > **Start**).

<Frame>
  <img alt="" src="https://mintcdn.com/domoinc-openapi-sync-dataflows/2Xn5xi-pwCcFI8So/images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005uHOI.jpg?fit=max&auto=format&n=2Xn5xi-pwCcFI8So&q=85&s=52089a0d8ed04f0f6eea72280fabcb4a" style={{width: 898, height: 265}} width="3422" height="1010" data-path="images/kb/ka0Vq000000Gp1l-00N5w00000Ri7BU-0EMVq000005uHOI.jpg" />
</Frame>

<Note>
  **Note:** Users with the Manage Workflows grant *and* Admin or Execute permission to a workflow can configure alternative triggers for it, such as from within an App Studio app. Learn more about [workflow triggers](https://domo-support.domo.com/s/article/000005179?language=en_US#manage_triggers).
</Note>
