# Meeting follow-up

URL: /workflows/processes/meeting-follow-up · Id: `process:meeting-follow-up`

> Meeting follow-up prepares each booked call, holds it with a transcript, and sends the recap and follow-up Tasks within the hour.

Meeting follow-up prepares each booked call, holds it with a transcript, and sends the recap and follow-up [Tasks](/business/nouns/task) within the hour.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Every booked Meeting has a brief before it starts, and afterwards a recap and follow-up Tasks with owners, or a new time offered when nobody came. |
| Reads | [Meeting](/business/nouns/meeting), [Contact](/business/nouns/contact) |
| Leaves | [Meeting](/business/nouns/meeting), [Task](/business/nouns/task), [Message](/business/nouns/message) |
| On time | Within 1 hour (business hours); the clock never stops. Late Actions go to the [Founder](/agents/founding/founder). |
| Runs in | Each Startup |

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

Responsible: [Sales Lead](/agents/sales/sales-lead).

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

Informed: [Founder](/agents/founding/founder).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | on [`Meeting.booked`](/business/events/Meeting.booked) | [Sales Team](/agents/sales) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | 1. Read the Contact, their Deal and past Meetings, and write the host a brief. | [Sales Lead](/agents/sales/sales-lead) | [Contact.get](/business/nouns/contact/get) | None |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | 2. Send each attendee a reminder with the join link a day before. | [Sales Lead](/agents/sales/sales-lead) | [Message.schedule](/business/nouns/message/schedule) | None |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | 3. Join with a transcript and record the Meeting as held. | [Sales Lead](/agents/sales/sales-lead) | [Meeting.hold](/business/nouns/meeting/hold) | None |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | 4. Send the attendee a recap of what was agreed. | [Sales Lead](/agents/sales/sales-lead) | [Message.create](/business/nouns/message/create) | None |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | 5. File each follow-up as a Task with its owner and due date. | [Sales Lead](/agents/sales/sales-lead) | [Task.create](/business/nouns/task/create) | None |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) | 6. Mark a missed Meeting as a no-show and offer a new time. | [Sales Lead](/agents/sales/sales-lead) | [Meeting.markNoShow](/business/nouns/meeting/mark-no-show) | None |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On [`Meeting.booked`](/business/events/Meeting.booked) | Starts [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) |
| Out | [`Message.scheduled`](/business/events/Message.scheduled) | Raised by step 2 of [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) |
| Out | [`Meeting.held`](/business/events/Meeting.held) | Raised by step 3 of [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) |
| Out | `Message.created` | Raised by step 4 of [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) |
| Out | `Task.created` | Raised by step 5 of [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) |
| Out | [`Meeting.markedNoShow`](/business/events/Meeting.markedNoShow) | Raised by step 6 of [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) |

## Plays
No Play names this Process.

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

## Settings
| Setting | Type | Default | Say | Set with |
| --- | --- | --- | --- | --- |
| `meetings.recapWithin` | `string` | `1h` | Send the recap within an hour of each call | [Setting.update](/business/nouns/setting/update) |

## Failure
A failed step retries; when retries run out, the Action goes to the [Founder](/agents/founding/founder).

| Step | On failure |
| --- | --- |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) 3. Join with a transcript and record the Meeting as held. | `noShow`: Nobody came, so the Meeting is marked no-show and the attendee gets the link to pick a new time. Continues at `rebook`. |
| [Prepare and follow up a call](/workflows/processes/meeting-follow-up/prepare-and-follow-up) 4. Send the attendee a recap of what was agreed. | Times out after 1 hour. Goes to the [Founder](/agents/founding/founder). |

## Loop
| Step | Value |
| --- | --- |
| Hypothesis | A brief before each call and a recap within the hour turn more calls into a next step than notes sent the next day. |
| Measure | [Outside paid Orders](/agents/sales#outside-paid-orders) over 30d, at least 30 observations |
| Learn | The learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant. |

## Code

**Ask**

```text
Turn on meeting follow-up
```

**API**

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

**SDK**

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

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

**CLI**

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

**MCP**

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

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

**Ask**

```text
Send the recap within an hour of each call
```

**API**

```bash
curl -X PATCH https://api.sb/leaseline.app/settings/setting_mfZPXxFQYD \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"1h","key":"meetings.recapWithin"}'
```

**SDK**

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

await $.Setting.update({ id: 'setting_mfZPXxFQYD', value: '1h', key: 'meetings.recapWithin' })
```

**CLI**

```bash
npx startup-builder do Setting.update --json '{"id":"setting_mfZPXxFQYD","value":"1h","key":"meetings.recapWithin"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Setting.update({ id: 'setting_mfZPXxFQYD', value: '1h', key: 'meetings.recapWithin' })"
  }
}
```

## Works with
| With | Links |
| --- | --- |
| Roles | [Founder](/agents/founding/founder), [Sales Lead](/agents/sales/sales-lead), [Success Manager](/agents/customer/success-manager) |
| Systems | [Dispatch](/systems/dispatch), [Mailboxes](/systems/mailboxes), [Notices](/systems/notices), [Phone](/systems/phone), [Scheduling](/systems/scheduling), [Sequences](/systems/sequences), [Work queue](/agents/work-queue) |
| Nouns | [Contact](/business/nouns/contact), [Meeting](/business/nouns/meeting), [Message](/business/nouns/message), [Task](/business/nouns/task) |

## Example
A property manager books an intro call with Leaseline. The [Sales Lead](/agents/sales/sales-lead) sends Dana Okafor a brief the evening before and joins with a transcript. Within the hour it sends the manager a recap and files two Tasks: a trial invite and a follow-up in a week.