# Processes

URL: /code/file-conventions/processes · Id: `page:code/file-conventions/processes`

> A folder in workflows/ is one Process, and its index file states the owner Role, the Metric and the target.

A folder in `workflows/` is one [Process](/business/nouns/process), and its `index.mdx` states the owner [Role](/business/nouns/role), the [Metric](/business/nouns/metric) and the target. It implements [how work runs](/workflows).

```text
workflows/
└── renewals/
    ├── index.mdx                  the Process
    ├── notice-at-60-days.mdx      a Workflow, literate
    └── weekly-unanswered.ts       a Workflow, plain TypeScript
```

## Reference
`index.mdx`: frontmatter is the Process; the body says what it is for.

| Key | Type | Holds |
| --- | --- | --- |
| `owner` | Role path | The Role accountable for it |
| `team` | [Team](/business/nouns/team) id | The Team it belongs to; the owner's by default |
| `metric` | Metric id | What it moves |
| `target` | number | The value the owner is judged on |
| `stakes` | `low \| high` | Default stakes for its [Workflows](/business/nouns/workflow) |

## Examples
### Minimal
```mdx title="workflows/renewals/index.mdx"
---
owner: customer/success-manager
---
```

### Leaseline
```mdx title="workflows/renewals/index.mdx"
---
owner: customer/success-manager
metric: renewals.answeredRate
target: 0.95
stakes: low
---
Every resident hears about their renewal at 60 days and answers before the end date.
```

## What it builds
The [StartupBuilder](/code/builders/startup) compiles the folder.

- a `Process` owned by the Role, on its [Dashboard](/business/nouns/dashboard)
- each file beside `index.mdx` as one of its [Workflows](/code/file-conventions/workflows)
- a folder inside the folder as a sub-Process

## Routing
`workflows/renewals/` is `$.renewals` in the SDK and `renewals` in MCP. Each Workflow is a member: `$.renewals.noticeAt60Days`.

## Good to know
- A [Startup](/business/nouns/startup)'s own automations are small Processes. There is no separate folder for triggers.