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

# Define the Workflow

> Choose a trigger, then add actions and logic to build your workflow

Every workflow starts with a **trigger**. Your first node defines how the workflow begins.

## 1. Open the node selector

Click the **Create first node** button in the center of the canvas (or **Add Step** in the bottom toolbar). This opens a menu of node types grouped into triggers, actions, and logic.

<Tabs>
  <Tab title="Triggers">
    <Frame caption="Triggers tab — pick how the workflow should start.">
      <img src="https://mintcdn.com/glorium/eqWkhSfBUec9afZU/images/applications/app-add-step-picker-triggers.png?fit=max&auto=format&n=eqWkhSfBUec9afZU&q=85&s=5f3809718cb5553aa95da484c8800848" alt="Add Step picker showing triggers" width="1440" height="1200" data-path="images/applications/app-add-step-picker-triggers.png" />
    </Frame>
  </Tab>

  <Tab title="Actions">
    <Frame caption="Actions tab — Ask AI, App Action, HTTP Request, Execute Code, and more.">
      <img src="https://mintcdn.com/glorium/eqWkhSfBUec9afZU/images/applications/app-add-step-picker-actions.png?fit=max&auto=format&n=eqWkhSfBUec9afZU&q=85&s=ceae267ba967c9bf9109a76b019f1947" alt="Add Step picker showing actions" width="1440" height="1200" data-path="images/applications/app-add-step-picker-actions.png" />
    </Frame>
  </Tab>

  <Tab title="Logic">
    <Frame caption="Logic tab — Condition, Multi-Condition, Loop, Pause, and Wait & Combine.">
      <img src="https://mintcdn.com/glorium/eqWkhSfBUec9afZU/images/applications/app-add-step-picker-logic.png?fit=max&auto=format&n=eqWkhSfBUec9afZU&q=85&s=3e8287fa59c44dcef38d4cf3b88b63fd" alt="Add Step picker showing logic nodes" width="1440" height="1200" data-path="images/applications/app-add-step-picker-logic.png" />
    </Frame>
  </Tab>
</Tabs>

## 2. Choose a starting trigger

Pick one based on how you want the workflow to start:

| Trigger               | Use it when...                                                  |
| --------------------- | --------------------------------------------------------------- |
| **Start**             | You want to run manually while building and testing             |
| **Scheduled Trigger** | You want it to run on a schedule                                |
| **Webhook**           | Another system needs to send you data to start the workflow     |
| **App Trigger**       | You want to start from an event in a connected app              |
| **AI Trigger**        | You want AI to decide when incoming data matches your condition |

Once your trigger is on the canvas, connect it to your next node to keep building the workflow.

<CardGroup cols={3}>
  <Card title="Trigger nodes" icon="bolt" href="/nodes/triggers/overview">
    Learn every way to start workflows.
  </Card>

  <Card title="Action nodes" icon="play" href="/nodes/actions/overview">
    Do the work: AI, apps, HTTP requests, files, and more.
  </Card>

  <Card title="Logic nodes" icon="code-branch" href="/nodes/logic/overview">
    Branch, loop, pause, and wait for approvals.
  </Card>
</CardGroup>

## 3. Pass data between nodes

A crucial concept in CogniAgent is that each node can access the output variables generated by all preceding nodes in the workflow. This ensures continuous, logical data movement.

<Info>
  To access data from a previous step, use the format: `{{node_key.output_name}}`
</Info>

For example, data entered in a Start node is accessed as:

```
{{on_start_1.startingInputData}}
```
