# System

URL: /business/nouns/system · Id: `noun:system`

> A System is the headless software for one job, such as CRM or billing, that every Startup runs on shared data.

A System is the headless software for one job, such as CRM or billing, that every [Startup](/business/nouns/startup) runs on shared data.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `job` | `string` | Yes | The one job it does. |

## Object
```json
{
  "$id": "https://api.sb/routewise.dev/systems/system_1",
  "$type": "System",
  "job": "Example job"
}
```

## Relationships
- <a id="rel-connected-via"></a>A System **is connected via** many [Integrations](/business/nouns/integration): an [Integration](/business/nouns/integration) connects an outside [Source](/business/nouns/source) to one System, with credentials at [Studio](/business/nouns/studio), [Startup](/business/nouns/startup) or [Customer](/business/nouns/customer) scope. `connectedVia`, inverse [`connects`](/business/nouns/integration#rel-connects).
- <a id="rel-defines"></a>A System **defines** many [Nouns](/business/nouns/noun): the [Nouns](/business/nouns/noun) a System keeps records of; several Systems can share one Noun. `defines`, inverse [`definedIn`](/business/nouns/noun#rel-defined-in).
- <a id="rel-packaged-as"></a>A System **is packaged as** many [Software Products](/business/nouns/software): [Software](/business/nouns/software) ships Systems to its [Customers](/business/nouns/customer) as one [Product](/business/nouns/product), headless or with an [App](/business/nouns/app). `packagedAs`, inverse [`packages`](/business/nouns/software#rel-packages).
- <a id="rel-run-by"></a>A System **is run by** many [Startups](/business/nouns/startup): a [Startup](/business/nouns/startup) runs its work on headless Systems, such as CRM or billing, that every Startup shares. `runBy`, inverse [`runs`](/business/nouns/startup#rel-runs).
- <a id="rel-runs-on"></a>A System **runs on** many [Capabilities](/business/nouns/capability): a System is built on [Capabilities](/business/nouns/capability), such as [Workflows](/business/nouns/workflow) or Search, that every [Startup](/business/nouns/startup) reaches with one key. `runsOn`, inverse [`runs`](/business/nouns/capability#rel-runs).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| <a id="create"></a>[System.create](/business/nouns/system/create) | Creates a System. Inherited from [Noun](/business/nouns/noun). | None. | `System.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[System.get](/business/nouns/system/get) | Returns one System by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[System.list](/business/nouns/system/list) | Returns Systems, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[System.update](/business/nouns/system/update) | Changes the given properties of a System. Inherited from [Noun](/business/nouns/noun). | None. | `System.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[System.delete](/business/nouns/system/delete) | Deletes a System; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `System.deleted` | One-way: `send`, `do` |

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `System.create` | Yes | Yes | Yes | No |
| `System.get` | Yes | Yes | Yes | Yes |
| `System.list` | Yes | Yes | Yes | Yes |
| `System.update` | Yes | Yes | Yes | No |
| `System.delete` | Yes | Yes | Yes | No |

## Call it

**Ask**

```text
Add a system to LedgerLark.
```

**API**

```bash
curl -X POST https://api.sb/ledgerlark.com/systems \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job":"Example job"}'
```

```json
{
  "api": "https://api.sb/ledgerlark.com",
  "system": {
    "$id": "https://api.sb/ledgerlark.com/systems/system_1",
    "$type": "System",
    "job": "Example job"
  },
  "action": {
    "$id": "https://api.sb/ledgerlark.com/actions/action_1",
    "operation": "System.create",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/ledgerlark.com/actions/action_1"
  }
}
```

**SDK**

```ts
import { $ } from 'startup-builder'

const system = await $.System.create({ job: 'Example job' })
```

**CLI**

```bash
npx startup-builder do System.create --json '{"job":"Example job"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.System.create({ job: 'Example job' })"
  }
}
```

## Example
The CRM System holds [Contacts](/business/nouns/contact), [Deals](/business/nouns/deal), and [Quotes](/business/nouns/quote) for every Startup in the [Studio](/business/nouns/studio), each Startup seeing only its own.