# Dashboard

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

> A Dashboard is one unified view of a scope, rendered as Markdown for Agents, screens for Humans, and JSON for native clients.

A Dashboard is one unified view of a scope, rendered as Markdown for [Agents](/business/nouns/agent), screens for [Humans](/business/nouns/human), and JSON for native clients.

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `scope` | `string` | Yes | What it views, such as a Studio, a Startup, a Team, or a Role. |

## Object
```json
{
  "$id": "https://api.sb/tutorloop.com/dashboards/dashboard_1",
  "$type": "Dashboard",
  "scope": "Startup"
}
```

## Relationships
- <a id="rel-presented-in"></a>A Dashboard **is presented in** one [App](/business/nouns/app): an [App](/business/nouns/app) opens on Dashboards for the people signed in to it. `presentedIn`, inverse [`presents`](/business/nouns/app#rel-presents).
- <a id="rel-shows"></a>A Dashboard **shows** many [Metrics](/business/nouns/metric): a Dashboard reads out [Metrics](/business/nouns/metric), each computed from [Events](/business/nouns/event) and never typed in. `shows`, inverse [`shownOn`](/business/nouns/metric#rel-shown-on).
- <a id="rel-views"></a>A Dashboard **views** one [Thing](/business/nouns/thing): a Dashboard summarizes one scope, such as a [Studio](/business/nouns/studio), a [Startup](/business/nouns/startup), a [Team](/business/nouns/team), or a [Role](/business/nouns/role). `views`, inverse [`dashboards`](/business/nouns/thing#rel-dashboards).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Dashboard.ask](/business/nouns/dashboard/ask) | Ask answers a plain-language question with a query over the Startup’s records and shows the query beside the result. | [Analyst](/agents/marketing/analyst) | [`Dashboard.asked`](/business/events/Dashboard.asked) | Two-way: `try`, `send`, `do` |
| [Dashboard.schedule](/business/nouns/dashboard/schedule) | Schedule sends a Dashboard on a cadence to a Mailbox, a Channel or an Agent’s context, rendered for each. | [Analyst](/agents/marketing/analyst) | [`Dashboard.scheduled`](/business/events/Dashboard.scheduled) | Two-way: `try`, `send`, `do` |
| <a id="create"></a>[Dashboard.create](/business/nouns/dashboard/create) | Creates a Dashboard. Inherited from [Noun](/business/nouns/noun). | None. | `Dashboard.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Dashboard.get](/business/nouns/dashboard/get) | Returns one Dashboard by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Dashboard.list](/business/nouns/dashboard/list) | Returns Dashboards, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Dashboard.update](/business/nouns/dashboard/update) | Changes the given properties of a Dashboard. Inherited from [Noun](/business/nouns/noun). | None. | `Dashboard.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Dashboard.delete](/business/nouns/dashboard/delete) | Deletes a Dashboard; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Dashboard.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` |
| --- | --- | --- | --- | --- |
| `Dashboard.create` | Yes | Yes | Yes | No |
| `Dashboard.get` | Yes | Yes | Yes | Yes |
| `Dashboard.list` | Yes | Yes | Yes | Yes |
| `Dashboard.update` | Yes | Yes | Yes | No |
| `Dashboard.delete` | Yes | Yes | Yes | No |
| `Dashboard.ask` | Yes | Yes | Yes | No |
| `Dashboard.schedule` | Yes | Yes | Yes | No |

## Call it

**Ask**

```text
Ask my dashboard.
```

**API**

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

```json
{
  "api": "https://api.sb/patentpad.com",
  "query": "Example query",
  "rows": {},
  "dashboard": {
    "$id": "https://api.sb/patentpad.com/dashboards/dashboard_1",
    "$type": "Dashboard",
    "scope": "Startup"
  },
  "action": {
    "$id": "https://api.sb/patentpad.com/actions/action_1",
    "operation": "Dashboard.ask",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/patentpad.com/actions/action_1"
  }
}
```

**SDK**

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

const { query, rows, dashboard } = await $.Dashboard.ask({ question: 'Example question' })
```

**CLI**

```bash
npx startup-builder do Dashboard.ask --json '{"question":"Example question"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Dashboard.ask({ question: 'Example question' })"
  }
}
```

## Example
The [Founder](/agents/founding/founder) Dashboard of a tutoring marketplace shows bookings, open tutor hours, and runway. An [Agent](/business/nouns/agent) reads it as Markdown in its context, and the founder reads the same view on a phone.