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

# Workflows

> A workflow is a list of steps for completing a specific business process.

For detailed documentation, please see [Workflows API Reference](../api-reference).

## Definition

A workflow is a list of steps that should be executed to complete a specific business process.

Workflows are versioned with each edit for auditing purposes.

## Objects

There are two objects to be aware of:

1. `Workflow`: a container for a list of workflow versions.
2. `WorkflowVersion`: a specific version of a workflow.

### Workflow

This is the top-level object that contains a list of workflow versions.

* `name`: str -- the name of the workflow
* `description`: str -- a description of the workflow
* `slug`: str -- a unique identifier for the workflow

### WorkflowVersion

This is a specific version of a workflow.

* `versionNumber`: int -- the version number of the workflow
* `status`: str -- the status of the workflow version (`draft` or `published`)
* `triggerType`: str -- the trigger type of the workflow version (`manual` or `schedule`)
* `scheduleExpression`: str -- the schedule expression of the workflow version
* `configuration`: dict -- the configuration of the workflow version

## Lifecycle

Currently, workflows are created by the Kinetic team. Please [contact us](mailto:support@kineticsystems.ai) to get started. In the near future, you will be able to create workflows yourself.

* **Create**: POST `/api/workflows` creates the workflow and publishes version `1`.
* **Update**: PATCH `/api/workflows/{id}` creates a new version of the workflow with the edited fields.
* **Delete**: DELETE `/api/workflows/{id}` deletes the workflow, all associated versions, and all associated executions.

## Current Limitations

TODO -- add limitations
