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

# Enrich and reconcile account records

> Produce reviewed firmographic proposals for known accounts without changing CRM fields.

[Human guide: work with your agent →](https://deepline.com/docs/human/guides/account-enrichment.md)

Produce an account review file with stable source IDs, matched company evidence, and explicit exceptions. Use it to decide which records can proceed.

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

Company identity and field acceptance are separate decisions. Establish the account entity before applying freshness and precedence rules.

Test this fictional sample before calling providers:

| Case | Expected decision under this example policy |
| - | - |
| Matching domain and accepted industry | Propose the industry update |
| Parent headcount for a subsidiary | Hold for entity review |
| Provider request failed | Record an operational error |

## 2. Inspect supported operations

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline auth status --json
deepline search "company domain firmographic enrichment" --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 `account-enrichment.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. Resolve the company identifier to the intended account entity.
2. Keep source values, available observation times, and missing fields.
3. Apply field-specific acceptance. Keep parent-company and subsidiary evidence distinct.
4. Return proposals and reasons without overwriting CRM values.

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 account-enrichment.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 account-enrichment.play.ts --csv pilot.csv --watch
deepline runs get <run-id> --full --json
deepline runs export <run-id> --out account-enrichment-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 proposed identity and fields with known records. Preserve null values instead of converting them into zeros.

> [!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

[Company-domain matching](https://deepline.com/docs/guides/company-domain-enrichment.md) covers identity. [CRM repair](https://deepline.com/docs/guides/crm-data-quality-automation.md) covers authorized writes.


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