# Onboarding

URL: /workflows/processes/onboarding · Id: `process:onboarding`

> Onboarding gets every new Customer to first value, by hand until the Startup automates each step.

Onboarding gets every new [Customer](/business/nouns/customer) to first value, by hand until the [Startup](/business/nouns/startup) automates each step.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each new Customer reaches first value, and any setup done by hand three times becomes an Issue. |
| Reads | [Customer](/business/nouns/customer) |
| Leaves | [Tenant](/business/nouns/tenant), [Issue](/business/nouns/issue) |
| Runs in | Each Startup |

## Accountable
[Onboarding Specialist](/agents/customer/onboarding-specialist), [Customer Team](/agents/customer).

Responsible: [Onboarding Specialist](/agents/customer/onboarding-specialist).

Consulted: [Designer](/agents/product/designer).

Informed: [Success Manager](/agents/customer/success-manager).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) | on `Customer.created` | [Customer Team](/agents/customer) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) | 1. Provision the new Customer’s Tenant. | [Onboarding Specialist](/agents/customer/onboarding-specialist) | [Tenant.provision](/business/nouns/tenant/provision) | None |
| [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) | 2. Do the setup for the Customer: keys, imports, and first calls. | [Onboarding Specialist](/agents/customer/onboarding-specialist) |  |  |
| [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) | 3. Rescue a failing start once, with one Message. | [Onboarding Specialist](/agents/customer/onboarding-specialist) | [Message.create](/business/nouns/message/create) | None |
| [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) | 4. Record the Customer as activated at first value. | [Onboarding Specialist](/agents/customer/onboarding-specialist) | [Customer.activate](/business/nouns/customer/activate) | None |
| [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) | 5. Open an Issue for any step done by hand three times. | [Onboarding Specialist](/agents/customer/onboarding-specialist) | [Issue.create](/business/nouns/issue/create) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On `Customer.created` | Starts [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) |
| In | On `Customer.created` | Wakes this Process, the first time only. The first Customer signs up. |
| Out | [`Tenant.provisioned`](/business/events/Tenant.provisioned) | Raised by step 1 of [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) |
| Out | `Message.created` | Raised by step 3 of [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) |
| Out | [`Customer.activated`](/business/events/Customer.activated) | Raised by step 4 of [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) |
| Out | `Issue.created` | Raised by step 5 of [Onboard a Customer](/workflows/processes/onboarding/onboard-customer) |

## Plays
- [Keyless signup](/workflows/customer/plays/keyless-signup)
- [Run beside](/workflows/customer/plays/run-beside)
- [Starter setups](/workflows/customer/plays/starter-setups)
- [Product-led growth](/workflows/plays/product-led)
- [Agent-to-agent selling](/workflows/plays/agent-to-agent)

## Controls
No Control names this Process or a Workflow of it.

## Settings
| Setting | Type | Default | Say | Set with |
| --- | --- | --- | --- | --- |
| `onboarding.doneForYou` | `boolean` | `true` | Do the setup for every new customer | [Setting.update](/business/nouns/setting/update) |

## Failure
A failed step retries; when retries run out, the Action goes to the [Onboarding Specialist](/agents/customer/onboarding-specialist).

## Loop
| Step | Value |
| --- | --- |
| Hypothesis | A Customer guided to first value in the first session activates more often than one left to explore. |
| Measure | [Activation rate](/agents/product#activation-rate) over 14d, at least 50 observations |
| Learn | The learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant. |

## Code

**Ask**

```text
Turn on onboarding
```

**API**

```bash
curl -X POST https://api.sb/leaseline.app/processes/process_1/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

**SDK**

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

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for every Product Template. [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

**Ask**

```text
Do the setup for every new customer
```

**API**

```bash
curl -X PATCH https://api.sb/leaseline.app/settings/setting_1 \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":true,"key":"onboarding.doneForYou"}'
```

**SDK**

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

await $.Setting.update({ id: 'setting_1', value: true, key: 'onboarding.doneForYou' })
```

**CLI**

```bash
npx startup-builder do Setting.update --json '{"id":"setting_1","value":true,"key":"onboarding.doneForYou"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Setting.update({ id: 'setting_1', value: true, key: 'onboarding.doneForYou' })"
  }
}
```

## Example
A recruiting agency signs up for a candidate-matching [SaaS](/products/templates/saas). The Customer Team provisions its [Tenant](/business/nouns/tenant) and imports 40,000 candidates by hand. When the first shortlist returns, the agency counts as activated, and the import step is automated next.