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

# Workflows

> A no-code canvas where partner operations builds its own automations: pick a trigger, narrow it to the right partners, add conditions and waits, and choose what Introw does.

export const Tour = ({children}) => {
  const [active, setActive] = useState(0);
  const wrappers = (Array.isArray(children) ? children : [children]).filter(c => c && c.props);
  const frames = wrappers.length === 1 && Array.isArray(wrappers[0].props.children) ? wrappers[0].props.children.filter(c => c && c.props) : [];
  if (frames.length < 2) {
    return <div className="not-prose" data-overview="tour">
        {children}
      </div>;
  }
  const thumb = (frame, index) => <button key={index} type="button" onClick={() => setActive(index)} aria-label={`Frame ${index + 1}`} data-active={index === active ? "true" : "false"} data-index={index + 1}>
      {frame}
    </button>;
  return <div className="not-prose" data-overview="tour">
      <div data-tour="hero">{frames[active] ?? frames[0]}</div>
      <div data-tour="strip">{frames.map((frame, index) => thumb(frame, index))}</div>
    </div>;
};

export const Impact = ({children}) => <div className="not-prose" data-overview="impact">
    {children}
  </div>;

export const Personas = ({children}) => <div className="not-prose" data-overview="personas">
    {children}
  </div>;

export const Pains = ({children}) => <div className="not-prose" data-overview="pains">
    {children}
  </div>;

> A workflow watches for something happening in your program, checks whether it is the case you care about, waits if it should, and then acts on the partner it happened to. You build it by picking from a list, not by writing rules.

## The problem it solves

<Pains>
  | Without Introw                     | With Introw                      |
  | ---------------------------------- | -------------------------------- |
  | The rules live in someone's head   | Written down once, run for all   |
  | Chasing is a calendar of reminders | Nudges anchored to the due date  |
  | Rewarding a partner is a ticket    | Booked the moment it is earned   |
  | A CRM change never reaches them    | A field change moves the partner |
  | Quiet partners are noticed late    | A segment they enter starts it   |
</Pains>

## Impact

A partner cannot tell whether your program is well run until something is late. Workflows is where you make sure it never is, and being easy to work with is mostly that.

<Impact>
  for your business

  * **Cost to run**
    The person who understands the program builds its rules, with no code, no vendor, and nothing to deploy
  * **Live in days**
    A first workflow is a trigger, an action, a rehearsal, and a switch, so it ships the afternoon it was thought of
  * **AI, not admin**
    AI names and describes the workflow from the canvas, and writes the email body of a send step in context

  for your partners

  * **Self-serve**
    The tier, the experience, and the next journey are applied to them the moment they earn it
  * **Enabled**
    A reminder three days before a task is due, on the channel they use, instead of a chase after it slipped
  * **Efficient**
    Their manager is pulled in only when a human is genuinely needed, so nothing sits in a queue

  [A day in the life of your partners](/days-in-the-life)
</Impact>

<Personas>
  * **Partner Operations** - the program's rules built once
  * **Partner Managers** - escalation instead of chasing
  * **Partners** - the right nudge at the right moment
</Personas>

## See it work

<Tour>
  * ![The workflow trigger picker, with triggers grouped under Tasks & journeys, Learning and Partners, and Certificate issued selected.](https://assets.introw.io/docs/features/automation/workflows/guides/build-your-first-workflow/steps/04.png)

    **Pick a trigger**

    Something happening to a partner: a task, a course, a certificate, a segment.

  * ![A delay step configured around a task's due date, with the distance from the due date, its unit and its direction.](https://assets.introw.io/docs/features/automation/workflows/guides/chase-a-task-to-its-due-date/steps/18.png)

    **Wait for the right moment**

    A delay can hang off a due date, so 'three days before' is expressible.

  * ![The Yes branch of a condition, sending an email to whoever the task is assigned to, with the No path running separately.](https://assets.introw.io/docs/features/automation/workflows/guides/chase-a-task-to-its-due-date/steps/37.png)

    **Branch and act**

    One workflow covers the partner who acted and the one who did not.

  * ![The Test workflow dialog with a real partner and contact selected, ready to run a simulated pass that writes nothing.](https://assets.introw.io/docs/features/automation/workflows/guides/build-your-first-workflow/steps/46.png)

    **Rehearse, then switch on**

    Test against one real partner without writing or sending anything.
</Tour>

## How it works

Every partner program has a handful of rules that live in someone's head. When a partner certifies, move them up a tier. When onboarding finishes, pay the sign-up bonus. When a task is about to be late, remind the partner, and if it goes late anyway, tell the partner manager. When a field changes on the partner's account in the CRM, put them on a different portal experience. None of those are hard rules. They are just rules nobody has time to enforce by hand across two hundred partners.

Workflows turns each of them into something Introw does. You start from a trigger. A task assigned or completed. A partner or contact created or updated. A journey or a course started or finished. A certificate earned. A partner entering or leaving a segment. You narrow it, so the workflow only runs for the partners and the events you actually mean. Then you lay out what happens. Write fields on the partner, move them to another portal experience, add them to a segment, or enroll them in a journey. Give them or your own team a task, issue a certificate, or book a commission line. Email their contacts, post a Slack or Teams nudge, or log a note on their CRM record.

Between those actions you can wait and you can branch. A wait can be a plain pause, or it can be anchored to a due date. That is what makes "three days before it is due" and "two days after it was due" expressible at all. A branch splits the flow in two, so one workflow covers both the partner who did the thing and the partner who did not.

Nothing goes live by accident. A workflow saves as a draft, Introw tells you exactly what is still unfinished, you rehearse it against one real partner without writing anything, and only then do you switch it on. Every run afterwards is logged and painted back onto the same canvas, so you can see which path a partner took.

Instead of a partner manager holding a mental checklist and a calendar of follow-ups, the program enforces itself. Introw acts on the moment worth acting on. The partner hears from you at the right time, on the right channel. The record is updated on both sides. And the manager is pulled in only when a human is genuinely needed.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
flowchart LR
  headRules["Rules in someone's head"] --> missed["Missed nudges and late rewards"]
  event["Something happens to a partner"] --> workflow["Workflow checks and waits"]
  workflow --> acted["Partner nudged, updated, rewarded"]
  acted --> escalate["Manager involved only when needed"]
```

## Going deeper

<CardGroup cols={2}>
  <Card title="How to" icon="screwdriver-wrench" href="./technical">
    Setup, configuration, and all how-to guides.
  </Card>

  <Card title="API reference" icon="code" href="/general/introduction">
    Endpoints and code.
  </Card>
</CardGroup>

**Works with**

<CardGroup cols={2}>
  <Card title="Built-in Automation" icon="bolt" href="/features/automation/built-in-automation">
    Start with what already runs, and build a workflow only for what is left.
  </Card>

  <Card title="Segments" icon="users" href="/features/partners/segments">
    A segment decides which partners a workflow is for, and entering one can start it.
  </Card>

  <Card title="Journeys" icon="users" href="/features/partners/journeys">
    Finishing a journey starts a workflow, and a workflow puts the next partner on one.
  </Card>

  <Card title="Certificates" icon="graduation-cap" href="/features/courses/certificates">
    Certify a partner the moment they finish a course, without anyone issuing it by hand.
  </Card>

  <Card title="Commission Lines" icon="hand-holding-dollar" href="/features/commissions/commission-lines">
    Book a one-off reward that still goes through your normal approval and payout run.
  </Card>

  <Card title="Tasks" icon="users" href="/features/partners/tasks">
    Chase a task to its due date, and create one for your own team when it slips.
  </Card>

  <Card title="Partner Management" icon="users" href="/features/partners/partner-management">
    Start from a partner appearing or a field changing, and write fields back.
  </Card>

  <Card title="CRM" icon="plug" href="/features/integrations/crm">
    React to a CRM change, and write properties and notes back onto the record.
  </Card>

  <Card title="Notifications" icon="bell" href="/features/engagement/notifications">
    Send the messages only your own program needs, on your own timing.
  </Card>
</CardGroup>
