# Outbound

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

> Outbound reaches Prospects who match the ICP, with a legal basis for contact and within the touch Limit.

Outbound reaches [Prospects](/business/nouns/prospect) who match the [ICP](/business/nouns/icp), with a legal basis for contact and within the touch [Limit](/business/nouns/limit).

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each day’s outreach reaches only Prospects with a legal basis for contact and no Suppression, and every reply reaches the Sales Engineer. |
| Reads | [ICP](/business/nouns/icp), [Prospect](/business/nouns/prospect) |
| Leaves | [Prospect](/business/nouns/prospect), [Contact](/business/nouns/contact), [Message](/business/nouns/message) |
| Runs in | Each Startup |

## Accountable
[Sales Lead](/agents/sales/sales-lead), [Sales Team](/agents/sales).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Outbound sequence](/workflows/processes/outbound/outbound-sequence) | every day | [Sales Team](/agents/sales) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Outbound sequence](/workflows/processes/outbound/outbound-sequence) | 1. Add Prospects only from sources with a legal basis for contact. | [Prospector](/agents/sales/prospector) | [Prospect.create](/business/nouns/prospect/create) | None |
| [Outbound sequence](/workflows/processes/outbound/outbound-sequence) | 2. Drop anyone with a Suppression from any sibling Startup. | [Prospector](/agents/sales/prospector) | [Contact.suppress](/business/nouns/contact/suppress) | None |
| [Outbound sequence](/workflows/processes/outbound/outbound-sequence) | 3. Send the day’s Sequence steps within the monthly touch Limit. | [Prospector](/agents/sales/prospector) | [Message.create](/business/nouns/message/create) | None |
| [Outbound sequence](/workflows/processes/outbound/outbound-sequence) | 4. Route each reply to the Sales Engineer. | [Prospector](/agents/sales/prospector) | [Lead.assign](/business/nouns/lead/assign) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | Every day | Starts [Outbound sequence](/workflows/processes/outbound/outbound-sequence) |
| Out | `Prospect.created` | Raised by step 1 of [Outbound sequence](/workflows/processes/outbound/outbound-sequence) |
| Out | [`Contact.suppressed`](/business/events/Contact.suppressed) | Raised by step 2 of [Outbound sequence](/workflows/processes/outbound/outbound-sequence) |
| Out | `Message.created` | Raised by step 3 of [Outbound sequence](/workflows/processes/outbound/outbound-sequence) |
| Out | [`Lead.assigned`](/business/events/Lead.assigned) | Raised by step 4 of [Outbound sequence](/workflows/processes/outbound/outbound-sequence) |

## Plays
- [Cold email](/workflows/plays/cold-email)
- [LinkedIn outbound](/workflows/plays/linkedin-outbound)
- [Outbound calling](/workflows/plays/outbound-calling)
- [Commission partners](/workflows/plays/commission-partners)
- [Engagement bridge](/workflows/plays/engagement-bridge)
- [Creator partnership](/workflows/plays/creator-partnership)
- [Buying committee](/workflows/plays/buying-committee)

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

## Settings
| Setting | Type | Default | Say | Set with |
| --- | --- | --- | --- | --- |
| `outbound.monthlyTouches` | `integer` | `3` | Contact each prospect at most three times a month | [Setting.update](/business/nouns/setting/update) |

## Failure
A failed step retries; when retries run out, the Action goes to the [Sales Lead](/agents/sales/sales-lead).

## Loop
| Step | Value |
| --- | --- |
| Hypothesis | Prospects chosen by a dated signal buy more often than Prospects chosen by fit alone. |
| Measure | [Play-sourced Customers](/agents/marketing#play-sourced-customers) over 30d, at least 200 observations |
| Learn | The learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant. |

## Code

**Ask**

```text
Turn on outbound
```

**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
Off until someone calls [Process.enable](/business/nouns/process/enable). [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

**Ask**

```text
Contact each prospect at most three times a month
```

**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":3,"key":"outbound.monthlyTouches"}'
```

**SDK**

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

await $.Setting.update({ id: 'setting_1', value: 3, key: 'outbound.monthlyTouches' })
```

**CLI**

```bash
npx startup-builder do Setting.update --json '{"id":"setting_1","value":3,"key":"outbound.monthlyTouches"}'
```

**MCP**

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

## Example
A court-filings API targets litigation-support firms. [Outbound sequence](/workflows/processes/outbound/outbound-sequence) adds 40 firms from a licensed list, drops 3 a sibling [Startup](/business/nouns/startup) has suppressed, and sends day one to the rest. No firm gets more than two touches a month.