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

# Workflows overview

> Build an automation on a canvas (a trigger, some steps, some branches) and watch leads run through it.

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

Workflows is the list of every workflow in this workspace: each one's status, how many enrollments it has run, and the controls to open, activate, duplicate or delete it without opening the builder.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Outreach<span className="pl-path__sep">→</span>Workflows</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Read access to Workflows <code>read-workflows</code>. Admin, Member and Viewer have it by default.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">To create or change</div>
    <div className="pl-availability__value"><code>create-workflows</code> to add one, <code>update-workflows</code> to change one, on top of the permission above.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

A workflow is something you design yourself, on a canvas: a trigger decides who enters, then blocks that send, wait, branch, enrich a lead's record or hand off. That's a different mechanism from an [AI agent](/en/ai-agents/overview), which works continuously off its own settings rather than a canvas you build block by block. [Workflows FAQ](/en/workflows/faq) covers how the two behave when they reach the same lead. A lead entering a workflow creates one [enrollment](/en/workflows/enrollments-and-lead-journey): that lead's journey through that workflow, tracked separately from every other lead running the same one.

## The banner and the KPI strip

A banner heads the page, repeating the **New workflow** button that also sits above the table. Under it are three numbers: **Total enrolled**, **Active** and **Completed**.

They add up the workflows currently loaded in the table below rather than the whole workspace, so a search or a status filter changes the numbers along with the rows underneath them. The table pages only once a workspace holds more workflows than one page fits, which is why the strip reads as a true total for most of them.

**Active** counts an enrollment as running whether it is mid-step right now or suspended: on a timer, on an event it is waiting for, or on your sending window. Everything that has finished, failed, exited or been cancelled drops out of it.

## Finding and reading a workflow

**Search workflows** matches on name and applies when you press Enter, not as you type. Beside it, **Filter by status** narrows the table to **Active**, **Draft** or **Archived**, with **All** to clear it again. A **Refresh** icon forces a fresh read of the list; without it the table is served from a short-lived cache, so a change made in another tab or by someone else doesn't always show up right away. Rows are ordered by when each workflow was last updated, newest first.

<Screenshot id="workflows/overview--list" url="/workflows" alt="The Workflows table: rows showing a workflow's name and description, a status pill, a block count, three enrollment counters, and a last-updated time" caption="Total enrolled, Active and Completed are links on every row. Click one to open the leads behind it." marks={[{ n: 1, x: 18, y: 28 }, { n: 2, x: 60, y: 28 }]} />

Each row (1) names the workflow, with a subtitle underneath: its description, or (if you didn't give it one) how many blocks its canvas holds. A status pill follows: **Draft** while it has never been turned on, or has been switched back off; **Active** while it is running; **Archived** once it is retired. Then a **Blocks** count, and three counters (2): the same **Total enrolled**, **Active** and **Completed** as the strip above, for this one workflow. Each counter is a link while it is above zero, and opens the leads list filtered to that workflow's enrollments; a zero is plain grey text with nothing behind it. Clicking anywhere else on a row opens that workflow in the builder.

## Row actions

<Screenshot id="workflows/overview--row-menu" url="/workflows" alt="A workflow row with its four action icons in view: the Activate/Deactivate toggle, View stats, Duplicate and Delete" caption="Three of these four need their own permission, so what a row offers depends on your role." marks={[{ n: 1, x: 93, y: 50 }]} />

Up to four icons (1) sit at the right of a row. The three that write are each gated on their own permission and hidden rather than shown disabled: **Activate**/**Deactivate** needs `update-workflows`; **Duplicate** needs `create-workflows` (the same permission the **New workflow** button needs); **Delete** needs `delete-workflows`. Because the three are independent, a custom role can hold one without the others. **View stats** carries no permission of its own, so the default Viewer role, which has read access to Workflows and nothing more, sees that icon on its own; [Workflow stats](/en/workflows/workflow-stats) covers what it opens.

Turning a workflow on from here compiles it first. If something in the canvas stops it running, nothing changes and the error names the first blocking problem instead of failing generically. [Validate, test with AI and activate](/en/workflows/validate-test-and-activate) covers what gets checked.

Switching one off sends it back to **Draft**, not **Archived**, and the toast says so. It disables the workflow's triggers, so no new leads enter; enrollments already in flight run on to their end. **Delete** opens a confirmation dialog naming the workflow: nothing to type, and it can't be undone.

## When there are no workflows yet

With nothing built and no search or status filter narrowing the list, the banner, KPI strip and table are all replaced by one invitation.

<Screenshot id="workflows/overview--empty" url="/workflows" alt="The Workflows page with none built yet: an illustration, the heading No workflows yet, and a New workflow button" caption="A filter that matches nothing leaves the banner and the numbers on screen; an empty workspace replaces them." />

**No workflows yet** reads the heading, with a **New workflow** button that opens the builder, hidden if your role can't create one. A search or status filter that comes up empty behaves differently: the banner and the KPI strip stay, counting zero, and only the table is replaced, by **No workflows match these filters** and a **Clear filters** button that shows whatever your role.

## Where each part is explained

<CardGroup cols={2}>
  <Card title="The builder: canvas, blocks palette and inspector" icon="layout-grid" href="/en/workflows/canvas-palette-and-inspector">
    What opens when you click a row or **New workflow**: adding and connecting blocks, and configuring one in the inspector.
  </Card>

  <Card title="Triggers reference" icon="zap" href="/en/workflows/triggers-reference">
    Every way a lead can enter a workflow, and how each trigger's audience filter narrows who qualifies.
  </Card>

  <Card title="Validate, test with AI and activate" icon="circle-check" href="/en/workflows/validate-test-and-activate">
    What actually gets checked before **Activate** turns a workflow on.
  </Card>

  <Card title="Workflow stats" icon="chart-line" href="/en/workflows/workflow-stats">
    What **View stats** opens: a step funnel, conversion and average time for one workflow.
  </Card>
</CardGroup>

## Related

<CardGroup cols={2}>
  <Card title="Build your first workflow from a template" icon="sparkles" href="/en/workflows/build-your-first-workflow">
    Start from a ready-made flow, point it at an email account, save it and turn it on.
  </Card>

  <Card title="Enrollments and the lead journey" icon="route" href="/en/workflows/enrollments-and-lead-journey">
    Follow one lead through a workflow: where it is now, which branch it took and why it stopped.
  </Card>

  <Card title="Workflows FAQ" icon="circle-question-mark" href="/en/workflows/faq">
    Whether workflows replace an AI agent, and what happens when both reach the same lead.
  </Card>

  <Card title="AI Agents overview" icon="cpu" href="/en/ai-agents/overview">
    The other outreach surface a workflow sits beside: its own list, its own KPI strip.
  </Card>
</CardGroup>
