# Setup checklist

Six steps that get an account from paid to running: a project, an agent connected, a deploy, someone signing in to your app, your own domain and a teammate. Each step is worked out from what the account has already done, so the checklist is always current and there is nothing to mark off by hand. The dashboard shows it as a card on the projects screen; `flatstack status` and the MCP tool `get_activation` return the same object.

## `GET /v1/account/activation`

Who: everyone in the account. Tokens may call it too. A deploy token sees its own project's steps only.

```json
{
  "steps": {
    "firstProject": true,
    "agentConnected": false,
    "firstDeploy": true,
    "firstEndUser": false,
    "customDomain": false,
    "teammateInvited": false
  },
  "done": 2,
  "total": 6,
  "complete": false,
  "dismissed": false,
  "next": {
    "id": "connect-agent",
    "label": "Connect your agent",
    "command": "claude mcp add --transport http flatstack https://api.flatstack.dev/mcp",
    "mcpTool": null,
    "docs": "https://flatstack.dev/docs/apps/mcp"
  }
}
```

| Step | Done when |
| --- | --- |
| `firstProject` | The account has a project |
| `agentConnected` | An MCP client has been connected, or a personal access token has been used (the CLI uses one after `flatstack login`) |
| `firstDeploy` | A deploy has gone live, even if it was later rolled back |
| `firstEndUser` | Someone has signed in to one of your apps |
| `customDomain` | A custom domain is active |
| `teammateInvited` | An invite has been sent, or the account has a second member |

- `next` is the earliest step not done, the way you can take it from a terminal or an agent: a command, an MCP tool, or a docs page. It is `null` once every step is done.
- `dismissed` is `true` once a member has dismissed the card. The steps are still reported.

## `POST /v1/account/activation/dismiss`

Who: any signed-in member. Tokens get `403 forbidden`. Hides the card for everyone in the account and returns the checklist. Dismissing again changes nothing.

## Onboarding emails

Owners and admins get up to three emails about setup, on the `onboarding` [notification topic](notifications.md):

- A welcome when the account is created.
- On day 2, only if nothing has been deployed.
- On day 7, only if fewer than three steps are done.

Each goes at most once per account, and never to a member who turned the topic off.