# geni crm enrich (/cli/crm/enrich)



Find and verify contact info for people by running the workspace's enrichment provider waterfalls. Every verb is **paid**: it spends credits per provider call, so each requires `--yes` to run, and a batch is capped at 25 people. Found data saves onto the person's contact points automatically. Run [`geni crm waterfalls`](/cli/crm/waterfalls) first to confirm a capability has a provider wired.

People are passed by id as variadic arguments. A person who already has a verified contact is skipped without spending credits.

## emails [#emails]

```sh
geni crm enrich emails per_01HX per_02AB --yes
geni crm enrich emails per_01HX --retry-unverified --yes
```

Find work emails for people who don't have one yet (email-enrichment waterfall).

| Arg / Flag           | Notes                                                                 |
| -------------------- | --------------------------------------------------------------------- |
| `<personIds...>`     | One or more person ids (max 25).                                      |
| `--retry-unverified` | Re-run people whose only email is unverified, skipping its providers. |
| `--yes`              | Required. Confirms the paid run.                                      |
| `--json`             | Machine-readable output.                                              |

## phones [#phones]

```sh
geni crm enrich phones per_01HX --yes
```

Find mobile numbers for people who don't have one yet (phone-enrichment waterfall). Same flags as `emails`.

## validate [#validate]

```sh
geni crm enrich validate per_01HX per_02AB --yes
```

Verify deliverability of people's saved emails (validation waterfall). Run before sequencing so you don't send to a bad address. Takes `--yes` and `--json`; no `--retry-unverified`.

If a capability has no provider configured, the run spends nothing and each person comes back with status `no_providers`. In table output that's surfaced as an error and the command exits `1`; with `--json` the `no_providers` status is in the results for you to inspect.

## Exit codes [#exit-codes]

* `1` no provider is configured for that capability (table output only).
* `2` invalid args (missing `--yes`, or more than 25 people).
* `4` not found (a person id is not in the active workspace).
* `5` forbidden (the workspace lacks CRM access).
