> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Prepare follow-ups from recorded commitments

> Turn a completed meeting record into a reviewable follow-up draft and next-step proposals.

[Human guide: work with your agent →](https://deepline.com/docs/human/guides/sales-follow-up-automation.md)

Draft follow-ups for a small set of recorded commitments. Verify the owner, due date, and contact before any delivery.

## Before you start

Use an authorized workspace and a small file with stable source IDs.
Have source access and your team's acceptance policy available.
This guide describes customer-authored logic, not an automatically enabled product policy.

## 1. Understand the decision

A summary can identify a proposal without proving the buyer accepted it. Preserve the supporting passage and distinguish stated from inferred dates.

Test this fictional sample before calling providers:

| Case | Expected decision under this example policy |
| - | - |
| Buyer explicitly accepts a next meeting | Include the stated commitment |
| Seller proposes an unaccepted date | Keep it proposed |
| Transcript retrieval failed | Hold drafting and report the error |

## 2. Inspect supported operations

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline auth status --json
deepline search "meeting transcript CRM activities" --type tools,prebuilts --json
```

Inspect a returned ID with `deepline describe <returned-id> --json`.
Compare required identifiers, outputs, access mode, and price.
A similar title does not establish that a contract fits.

## 3. Implement the bounded workflow

Ask your agent to author `sales-follow-up-automation.play.ts` using [Write Plays](https://deepline.com/docs/sdk-v2/plays.md).
Have it declare the CSV input and preserve source IDs.
Reuse existing contracts when they fit the transformation.

Implement these rules explicitly:

1. Confirm that the authorized meeting record and transcript are ready.
2. Extract participants, explicit commitments, and stated dates.
3. Draft the follow-up with supporting source references.
4. Keep unknown owners or dates explicit. Do not send or create CRM tasks in the first pilot.

Keep external changes disabled for the first pilot.
That control belongs in the authored logic, not a universal Play dry-run flag.

## 4. Check and pilot

Prepare `pilot.csv` using [CSV-safe selection](https://deepline.com/docs/sdk-v2/batch-csv.md).
Then check the source:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline plays check sales-follow-up-automation.play.ts
```

Resolve authoring errors first. After reviewing source and price, run only the pilot:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline plays run --file sales-follow-up-automation.play.ts --csv pilot.csv --watch
deepline runs get <run-id> --full --json
deepline runs export <run-id> --out sales-follow-up-automation-review.csv
deepline billing usage --run-id <run-id> --json
```

Use the ID returned by the pilot. Select a returned dataset path when several
exist. Provider-backed execution can incur usage.

## 5. Verify the outcome

Compare the draft with the transcript. Confirm that no inferred deadline became a customer promise and no unverified recipient was selected.

> [!TIP]
>
> Every source ID has a result or explicit exception. The fictional cases follow
> the stated policy, and actual results retain their evidence.

Ask your agent why a record was accepted, held, or rejected.
Correct the rule before expanding input or enabling external writes.

## Continue

[Post-call CRM](https://deepline.com/docs/guides/post-call-crm-automation.md) covers readiness and updates. [Production integration](https://deepline.com/docs/sdk-v2/production-integration.md) covers uncertain external actions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.