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

# Workflows & Work Items

> Build and run multi-step workflows and assign work items.

### Add Workflow Step `workflow_add_step`

Add a step to an existing workflow without disturbing the rest. Describe the new step and Simon inserts it where you want it.

| Parameter                  | Type      |
| -------------------------- | --------- |
| `node` **required**        | `object`  |
| `workflow_id` **required** | `string`  |
| `after_step_id` *opt*      | `string`  |
| `before_step_id` *opt*     | `string`  |
| `position` *opt*           | `integer` |

### Assign Work Items `work_item_assign`

Assign workflow tasks to a teammate, or clear an assignment, so review work reaches the right person.

| Parameter                    | Type       |
| ---------------------------- | ---------- |
| `work_item_ids` **required** | `string[]` |
| `assignee_user_id` *opt*     | `string`   |

### Create Work Item `create_work_item`

Add a task to the workflow board for a person to review or approve. Simon creates a card when a step produces something that needs human sign-off.

| Parameter            | Type     |
| -------------------- | -------- |
| `title` **required** | `string` |
| `description` *opt*  | `string` |

### Create Workflow `workflow_create`

Create an automated workflow for recurring tasks, scheduled runs, monitoring, or delivering output to places like email or Slack. Describe the automation you want and Simon builds it.

| Parameter                  | Type                           |
| -------------------------- | ------------------------------ |
| `description` **required** | `string`                       |
| `name` **required**        | `string`                       |
| `nodes` **required**       | `object[]`                     |
| `agent_id` *opt*           | `string`                       |
| `event_trigger` *opt*      | `object`                       |
| `frequency` *opt*          | `enum(Daily, Weekly, Monthly)` |
| `schedule_timezone` *opt*  | `string`                       |
| `scheduled_day` *opt*      | `string`                       |
| `scheduled_time` *opt*     | `string`                       |

### Remove Workflow Step `workflow_remove_step`

Remove a step from a workflow while keeping the remaining steps in order. Ask Simon to drop a step and it updates the workflow.

| Parameter                  | Type     |
| -------------------------- | -------- |
| `step_id` **required**     | `string` |
| `workflow_id` **required** | `string` |

### Reorder Workflow Steps `workflow_reorder_steps`

Change the order of steps in a workflow. Tell Simon the order you want and it rearranges them.

| Parameter                  | Type       |
| -------------------------- | ---------- |
| `step_ids` **required**    | `string[]` |
| `workflow_id` **required** | `string`   |

### Run Workflow `workflow_run`

Run Simon's workflow right now. Ask it to run, kick off, or test the workflow and it starts a fresh run on demand.

| Parameter           | Type      |
| ------------------- | --------- |
| `is_test_run` *opt* | `boolean` |
| `title` *opt*       | `string`  |
| `user_prompt` *opt* | `string`  |
| `workflow_id` *opt* | `string`  |

### Update Workflow `workflow_update`

Change a workflow's settings, such as its name, description, schedule, or trigger, or turn it on or off. Describe the change and Simon updates it.

| Parameter                  | Type                           |
| -------------------------- | ------------------------------ |
| `workflow_id` **required** | `string`                       |
| `description` *opt*        | `string`                       |
| `event_trigger` *opt*      | `object`                       |
| `frequency` *opt*          | `enum(Daily, Weekly, Monthly)` |
| `is_active` *opt*          | `boolean`                      |
| `name` *opt*               | `string`                       |
| `schedule_timezone` *opt*  | `string`                       |
| `scheduled_day` *opt*      | `string`                       |
| `scheduled_time` *opt*     | `string`                       |

### Update Workflow Step `workflow_update_step`

Edit a single step in a workflow, such as its instructions, tools, or data sources, without touching the others. Describe the change and Simon applies it precisely.

| Parameter                  | Type                                                               |
| -------------------------- | ------------------------------------------------------------------ |
| `step_id` **required**     | `string`                                                           |
| `workflow_id` **required** | `string`                                                           |
| `config` *opt*             | `object`                                                           |
| `data_sources` *opt*       | `string[]`                                                         |
| `instructions` *opt*       | `string`                                                           |
| `links` *opt*              | `string[]`                                                         |
| `step_type` *opt*          | `enum(gather-data, process, generate, decision, review, delivery)` |
| `title` *opt*              | `string`                                                           |
| `tools` *opt*              | `string[]`                                                         |
