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

# Build a Workflow

> Create, configure, and publish AI-powered Workflows using templates, the Copilot, or a blank canvas.

Build a [Workflow](/workflows/overview) to automate a multi-step process in Cassidy — whether from a plain-language description, a template, or a blank canvas. Once created, you can configure every aspect of your Workflow manually or use the [Workflow Copilot](#use-the-workflow-copilot) to do it with plain language.

## Create a new Workflow

<Steps>
  <Step title="Open the Workflows page">
    Click **Workflows** in the left sidebar of your Cassidy dashboard.

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/workflows-page.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=9eb05a04b573597740e097bf9ab836b7" alt="Workflows page showing the list of existing Workflows" width="514" height="782" data-path="images/workflows/workflows-page.png" />
    </Frame>
  </Step>

  <Step title="Click + New Workflow">
    In the top-right corner, click **+ New Workflow**. Select one of four options:

    * **Custom Workflow** — Describe your automation in plain language and the [Workflow Copilot](#use-the-workflow-copilot) generates it for you.
    * **Blank Workflow** — Start from scratch with an empty canvas.
    * **Import Workflow** — Upload a Workflow JSON file to add it to your organization.
    * **Template** — Browse pre-built Workflows for common use cases and customize them.

    <Frame>
      <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/create-workflow-modal.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=d6eb90380abe439afb011c97230e0368" alt="New Workflow modal showing Custom Workflow, Blank Workflow, Import, and Template options" width="2606" height="1216" data-path="images/workflows/create-workflow-modal.png" />
    </Frame>
  </Step>

  <Step title="Refine with the Workflow Copilot">
    If you selected **Custom Workflow**, the [Workflow Copilot](#use-the-workflow-copilot) opens automatically. Describe what you want to automate, answer clarifying questions, and the Copilot builds out the trigger, actions, and configuration for you.

    <Frame>
      <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/copilot-chat.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=981faa8a1aefc0fb5687c8540a464118" alt="Workflow Copilot chat panel showing a conversation about building an automation" width="2850" height="1464" data-path="images/workflows/copilot-chat.png" />
    </Frame>
  </Step>

  <Step title="Review and customize">
    After creation, review and fine-tune your Workflow in the editor. You can adjust the trigger, add or remove actions, update prompts, and connect integrations at any time.
  </Step>

  <Step title="Publish your Workflow">
    When you're satisfied, click **Publish** to make the Workflow available for your team. See [Share and deploy Workflows](/workflows/sharing-and-deployment) for details on versioning, publishing, and permissions.

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/save-draft.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=b41cdeb307165e2d7ee674da3686d684" alt="Draft dropdown showing Save Without Publishing and Publish Current Draft options" width="1356" height="606" data-path="images/workflows/save-draft.png" />
    </Frame>
  </Step>
</Steps>

Once published, your Workflow is ready to [run and test](/workflows/running-and-testing).

### Start from a template

Templates are pre-built Workflows for common tasks like writing personalized sales emails, summarizing support tickets, or generating meeting follow-ups.

<Steps>
  <Step title="Browse templates">
    Click **+ New Workflow** and select **Template**, or click **Browse Templates** on the Workflows page.

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/templates-browse.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=fcf0548d41083a2fd7cf672f5f031c56" alt="Workflows page with the Browse Templates button" width="2480" height="466" data-path="images/workflows/templates-browse.png" />
    </Frame>
  </Step>

  <Step title="Search and select">
    Use the search bar to find templates by keyword or browse by category. Click on a template that matches your goal.

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/templates-search.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=0760db1a7384d67fa42d0536f958fec0" alt="Template library with search bar and category filters" width="2590" height="1280" data-path="images/workflows/templates-search.png" />
    </Frame>
  </Step>

  <Step title="Configure template settings">
    Follow the guided setup process to customize the template:

    * For integrations, you'll be prompted to authorize connections
    * Select the [Agent](/agents/overview) to use for certain steps
    * Provide any other inputs needed for the specific Workflow
    * Click **Next** to continue through each step

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/templates-configure.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=351c671cd46b74f2ad842f51bfd72f37" alt="Template setup prompting integration authorization" width="2346" height="1228" data-path="images/workflows/templates-configure.png" />
    </Frame>

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/templates-agent.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=b58c12dadf9ae05d6be87a1454435c42" alt="Template setup prompting Agent selection for a step" width="2340" height="1212" data-path="images/workflows/templates-agent.png" />
    </Frame>
  </Step>

  <Step title="Set folder and permissions">
    Choose a folder to organize your Workflow and set permissions to control who can access it. Click **Finish** to complete creation.

    <Frame>
      <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/templates-finish.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=a3c664c4e38117247e417fe86688f615" alt="Final template setup showing folder selection and permissions" width="2354" height="1224" data-path="images/workflows/templates-finish.png" />
    </Frame>
  </Step>

  <Step title="Customize further">
    After the template is added to your Workflows, you can run it as-is or open the editor to adjust triggers, actions, prompts, and variables to fit your exact needs.
  </Step>
</Steps>

## The Workflow editor

The Workflow editor is where you build and configure your automation. You can configure your Workflow in two ways:

* **Manually** — Edit each setting directly in the editor. The sections below walk through the trigger, actions, and variables.
* **With the [Workflow Copilot](#use-the-workflow-copilot)** — Describe what you want in plain language and the Copilot updates the configuration for you. You can use the Copilot to build from scratch, make targeted changes, or troubleshoot issues.

Both approaches work together — use the Copilot to get started quickly, then fine-tune individual settings manually.

Use the top bar to **test** the Workflow, open **Previous Runs**, launch the **Workflow Copilot**, switch versions, and **publish**.

For Manual-style Workflows, the header also includes **Bulk Run** and **Interface** next to **Workflow**:

<Frame>
  <img src="https://mintcdn.com/cassidy/Mm6DAjguZrGyO5A4/images/workflows/workflow-editor-tabs.png?fit=max&auto=format&n=Mm6DAjguZrGyO5A4&q=85&s=887b8c34239018a9f096ea3307491cf5" alt="Workflow editor header with Workflow, Bulk Run, and Interface tabs" width="1024" height="276" data-path="images/workflows/workflow-editor-tabs.png" />
</Frame>

What each tab is for:

* **Workflow** — The canvas (trigger, actions in order) and the settings sidebar when you select a block.
* **Bulk Run** — [Run the Workflow on a dataset](/workflows/bulk-runs).
* **Interface** — [How the Run tab looks](/workflows/interface) for people who run the Workflow after it is published.

<Note>
  **Manual-style Workflows:** **Bulk Run** and **Interface** show only when the trigger supports the interactive **Run** tab in Cassidy (for example **Manual**). Scheduled and integration triggers hide those two tabs.
</Note>

To update the Workflow **name** and **description**, click the name in the top-left, open **...** → **Update Name & Description**, or—when **Interface** is available—edit the same fields in the **Customize** section on that tab.

## Configure your Workflow

### Trigger

The trigger defines how and when your Workflow starts. Click the trigger block at the top of the editor to configure it.

* **Manual** — Users fill in a form and click **Run**
* **Scheduled** — Runs automatically on a recurring schedule
* **Webhook** — Starts when an external system sends a POST request
* **Email** — Runs when an email is sent to the Workflow's [dedicated email address](/reference/triggers/email)
* **Integration trigger** — Fires on events like a new Slack message, Zendesk ticket, HubSpot record, or Google Calendar event

<Frame>
  <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/trigger-sidebar.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=ddc292b1ef65b2a4dfdffa3790e76342" alt="Trigger configuration sidebar showing input fields and settings" width="2856" height="1070" data-path="images/workflows/trigger-sidebar.png" />
</Frame>

Depending on the trigger type, set up the required inputs. For a Manual trigger, add input fields (Text, Number, Yes/No, URL, File, Dropdown, Knowledge Base, or Object). For integration triggers, connect the relevant app and select the event.

To swap trigger types on an existing Workflow, click the **...** menu on the trigger block and select **Change Trigger Type**.

<Frame>
  <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/change-trigger.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=ea94439e2490e98258925fabef892846" alt="Trigger block menu showing the Change Trigger Type option" width="1018" height="318" data-path="images/workflows/change-trigger.png" />
</Frame>

### Actions

Actions are the steps your Workflow performs after the trigger fires. Click the **+** button between blocks to insert a new action. Browse or search the action library to find what you need — generate text, send an email, update a CRM record, run code, scrape a webpage, and more.

<Frame>
  <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/add-action.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=c4f90456d72d59c5b2adef60204bafbf" alt="Add action modal showing the action library with search and category options" width="2308" height="1276" data-path="images/workflows/add-action.png" />
</Frame>

Click an action block to open its settings sidebar. Fill in prompts, select an AI model, map input fields, and adjust any action-specific options.

<Frame>
  <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/action-sidebar.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=77fe3db0790bc9fe910806865c9a9c30" alt="Action configuration sidebar showing prompt field, model selector, and input mappings" width="1110" height="1324" data-path="images/workflows/action-sidebar.png" />
</Frame>

To reorder actions, drag them to a new position. To delete an action, click the **...** menu on the block and select **Delete**.

### Variables

Variables let you pass data from the trigger and from previous action outputs into later steps. By default, actions do not have access to the output of earlier steps — you need to explicitly reference variables to connect them.

For example, in a LinkedIn-enhanced cold email Workflow, the trigger collects a **Name** and **Email address**. These become variables you reference in later actions like "Summarize LinkedIn Profile" and "Write Company Description."

<Frame caption="Trigger inputs become variables you can reference in later actions">
  <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/variables-trigger.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=0f76a3dbb60a8a468fe69e69124af518" alt="Trigger block showing Name and Email address inputs that become variables" width="1499" height="662" data-path="images/workflows/variables-trigger.png" />
</Frame>

To insert a variable, type **#** or click **Insert Variable** while editing an action's prompt or input field. A dropdown appears showing all available variables from the trigger and previous actions.

<Frame caption="Map action inputs to variables from earlier steps">
  <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/variables-map.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=14298cd4830381d37bd100f92a417d24" alt="Action input field with a variable reference dropdown showing trigger inputs" width="1490" height="392" data-path="images/workflows/variables-map.png" />
</Frame>

Each action's output becomes a new variable. In the final step, you can combine outputs from multiple earlier steps — for example, referencing both a profile summary and a company description to generate a personalized email.

<Frame caption="Combine variables from multiple steps in a prompt">
  <img src="https://mintcdn.com/cassidy/fKT2RiTD5Kge6TLJ/images/workflows/variables-prompt.png?fit=max&auto=format&n=fKT2RiTD5Kge6TLJ&q=85&s=6d1e2bb6b909f5d18084ad7e9184282b" alt="Generate Text prompt referencing variables from two previous actions" width="1471" height="833" data-path="images/workflows/variables-prompt.png" />
</Frame>

<Tip>Need metadata about the run itself? Use [utility variables](/workflows/advanced/utility-variables) to access the run ID, timestamp, user name, and more.</Tip>

### Control flow

For branching logic, use [Paths](/reference/actions/paths) to route your Workflow based on conditions — like routing a support question to different [Agents](/agents/overview) depending on the product mentioned. For repeating steps, use [Loops](/reference/actions/loop). For pausing execution, use [Wait/Delay](/reference/actions/wait-delay) or [Request Approval](/reference/actions/request-approval).

## Run view and Interface (Manual-style Workflows)

For Manual-style Workflows, use the **Interface** tab to change what the **Run** tab looks like for people who run the Workflow after it is published—header, description, form fields, run button, and optional highlighted **Outputs**.

<Frame caption="Interface tab with preview and settings: branding, inputs, and outputs configured for the Run tab.">
  <img src="https://mintcdn.com/cassidy/Mm6DAjguZrGyO5A4/images/workflows/interface-tab-configured.png?fit=max&auto=format&n=Mm6DAjguZrGyO5A4&q=85&s=4e4e0daa5190c44976a5939ad35c6c3d" alt="Interface tab showing preview and sidebar with Customize, Inputs, and Outputs configured" width="1000" height="1024" data-path="images/workflows/interface-tab-configured.png" />
</Frame>

Full walkthrough: [Customize the Workflow run view](/workflows/interface).

## Use the Workflow Copilot

The Workflow Copilot is an AI-powered building partner that helps you configure Workflows using plain language. Instead of editing each setting manually, describe what you want and the Copilot generates or updates the Workflow for you — including triggers, actions, prompts, and variable mappings.

You can use the Copilot at any point: when creating a new Workflow from scratch, when starting from a template, or when refining an existing Workflow.

<Warning>Do not manually edit the Workflow while the Copilot is working — your changes will be overwritten.</Warning>

### Access the Copilot

* **When creating a new Workflow**: The Copilot opens automatically if you choose **Custom Workflow**.
* **When editing an existing Workflow**: Click the wand icon in the top toolbar of the Workflow editor.

<Frame>
  <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/copilot-wand.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=e94e6ab68bf0865725f64c439de02316" alt="Wand icon in the Workflow editor toolbar for accessing the Copilot" width="662" height="218" data-path="images/workflows/copilot-wand.png" />
</Frame>

### How the Copilot works

<Steps>
  <Step title="Describe what you want">
    Tell the Copilot what you want to automate in plain language. For example: *"When a new Zendesk ticket arrives, summarize it using our product knowledge base and draft a reply."* The Copilot plans its approach and begins building.

    <Frame>
      <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/copilot-planning.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=cf24a6dd07b5eda4f33761930eef09dd" alt="Copilot showing its planning process and building the first version" width="2850" height="1464" data-path="images/workflows/copilot-planning.png" />
    </Frame>
  </Step>

  <Step title="Review the initial version">
    The Copilot generates a complete Workflow. You can see the steps that were changed or added, along with a message from the Copilot explaining what it did.

    <Frame>
      <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/copilot-review.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=7bef3e9b70e682e64f4c6b7d97ac8eba" alt="Copilot showing the completed Workflow with a summary of changes" width="2842" height="1584" data-path="images/workflows/copilot-review.png" />
    </Frame>
  </Step>

  <Step title="Continue iterating">
    Send follow-up messages to refine further. You can ask the Copilot to add steps, modify existing steps, swap models, adjust prompts, or connect different integrations.

    <Frame>
      <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/copilot-iterate.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=7a4b217d12d42df75d2f434b78bbde2b" alt="Copilot conversation showing follow-up refinements to the Workflow" width="1090" height="980" data-path="images/workflows/copilot-iterate.png" />
    </Frame>
  </Step>

  <Step title="Test the result">
    Once you are satisfied, [test the Workflow](/workflows/running-and-testing) to verify it produces the output you expect.
  </Step>
</Steps>

### Copilot controls

| Control                | What it does                                                |
| ---------------------- | ----------------------------------------------------------- |
| **Regenerate**         | Try a different approach for any Copilot message            |
| **Edit message**       | Modify your prompt and resubmit                             |
| **Restore checkpoint** | Revert the Workflow to the version before a specific change |
| **New chat**           | Start a fresh Copilot conversation                          |
| **Chat history**       | Browse and return to earlier Copilot conversations          |

### Using the Copilot with testing

When [testing your Workflow](/workflows/running-and-testing), you can send test results directly to the Copilot for analysis:

* **Add to Copilot** — Click this icon on any test run to attach the outputs to the Copilot chat. Ask the Copilot to improve results or make tweaks based on actual performance data.
* **Fix in Copilot** — If a step produces an error during testing, click this icon to bring the error into the Copilot's context so it can debug and resolve the issue.

<Frame>
  <img src="https://mintcdn.com/cassidy/MZZYXYVeCvthpwjt/images/workflows/copilot-add-test.png?fit=max&auto=format&n=MZZYXYVeCvthpwjt&q=85&s=e70813937a66e87971b420f2e3b803db" alt="Test results with Add to Copilot option for sending outputs to the Copilot" width="1120" height="1060" data-path="images/workflows/copilot-add-test.png" />
</Frame>

## Next steps

<CardGroup cols={2}>
  <Card title="Customize the run view" icon="palette" href="/workflows/interface">
    Style the Run tab, Manual inputs, and highlighted outputs from the Interface tab.
  </Card>

  <Card title="Run and test your Workflow" icon="flask-vial" href="/workflows/running-and-testing">
    Execute your Workflow and use the testing interface to debug each step.
  </Card>

  <Card title="Process data in bulk" icon="table" href="/workflows/bulk-runs">
    Import a CSV or use Smart Import to run your Workflow across a full dataset.
  </Card>

  <Card title="Share and deploy" icon="share-nodes" href="/workflows/sharing-and-deployment">
    Manage permissions, publish versions, organize into folders, and deploy externally.
  </Card>

  <Card title="Advanced: Structured outputs" icon="list-check" href="/workflows/advanced/structured-output-fields">
    Define specific output fields for consistent, machine-readable results.
  </Card>
</CardGroup>
