> ## 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.

# User Stories

> Choose the Deepline SDK workflow by the job you need done: pilot a play, enrich a CSV, schedule a refresh, call from code, or expose a webhook.

Start with the job. Drop into the API reference only when you need the exact
signature.

## I want to pilot one enrichment before scaling

Use a prebuilt play first. Inspect the input contract, run one real record, and
review the output before touching a CSV.

* Guide: [Quickstart](/sdk-v2/quickstart)
* Reference: [Run a named play](/sdk-v2/calling-plays)

```bash theme={null}
deepline plays describe prebuilt/person-linkedin-to-email --json
deepline plays run prebuilt/person-linkedin-to-email \
  --input '{"linkedin_url":"https://www.linkedin.com/in/example-person/"}' \
  --watch
```

## I want to enrich a lead CSV

Use `ctx.csv(...)` plus `ctx.dataset(...).withColumn(...)` so every row has a
stable identity, progress, retries, and exportable columns.

* Guide: [Batch CSV enrichment](/sdk-v2/batch-csv)
* Compiled source example: `docs-examples/sdk-v2/lead-email-waterfall.play.ts`
* Exact API: [`ctx.dataset(key, items)`](/sdk-v2/sdk-reference#ctxdatasetkey-items)

```bash theme={null}
deepline plays check docs-examples/sdk-v2/lead-email-waterfall.play.ts
deepline plays run docs-examples/sdk-v2/lead-email-waterfall.play.ts \
  --csv leads.csv \
  --watch
```

## I want a workflow to run every morning

Put the schedule in the third `definePlay(...)` argument. Keep a manual test
command beside the publish command so you can prove the logic before waiting
for cron.

* Guide: [Webhooks and schedules](/sdk-v2/webhooks-and-schedules)
* Compiled source example: `docs-examples/sdk-v2/nightly-account-refresh.play.ts`
* Exact API: [`PlayBindings`](/sdk-v2/sdk-reference#playbindings)

```bash theme={null}
deepline plays check docs-examples/sdk-v2/nightly-account-refresh.play.ts
deepline plays publish docs-examples/sdk-v2/nightly-account-refresh.play.ts
```

## I want another system to trigger a play

Use a webhook binding for inbound events. Start with a plain webhook only while
testing; add HMAC before production when the sender supports it.

* Guide: [Webhooks and schedules](/sdk-v2/webhooks-and-schedules)
* Compiled source example: `docs-examples/sdk-v2/inbound-lead-webhook.play.ts`
* Exact API: [`definePlay`](/sdk-v2/sdk-reference#defineplay)

```bash theme={null}
deepline plays check docs-examples/sdk-v2/inbound-lead-webhook.play.ts
deepline plays publish docs-examples/sdk-v2/inbound-lead-webhook.play.ts
```

## I want to call Deepline from an app

Use the TypeScript SDK for app code, Python/HTTP for non-TypeScript runtimes,
and the CLI for agent-run workflows.

* Guide: [Call plays](/sdk-v2/calling-plays)
* Python/HTTP: [HTTP and Python](/sdk-v2/http-and-python)
* Exact API: [SDK reference](/sdk-v2/sdk-reference)
