# clients_find_or_create

> Look up a client by contact identifier; create one if none exists.

<!-- Source: https://docs.actuallycare.com/tools/clients/clients_find_or_create -->

Look up a client by contact identifier; create one if none exists. Single-call idempotent path for "promote this contact to a client" intents — prefer this over [`clients_list`](/tools/clients/clients_list) → [`clients_create`](/tools/clients/clients_create) chains. Accepts either contact_id (preferred) or a name/email to resolve against the contact directory first. Returns the client record plus a `created: true|false` flag so the caller can tell whether a new record was inserted. New clients go through the same editable draft flow as [`clients_create`](/tools/clients/clients_create).

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `contact_id` | string | No | Existing contact UUID (preferred). |
| `first_name` | string | No | Given name when resolving by name. |
| `last_name` | string | No | Family name when resolving by name. |
| `email` | string | No | Contact email for lookup/creation. |
| `phone` | string | No | Contact phone for lookup/creation. |
| `client_type` | enum | No | Client type to set when creating (default: buyer). · One of: `buyer`, `seller`, `both` |

## Example prompts

- "If Marcus Lee from my contacts isn't already a client, set him up as a buyer."
- "Promote the contact Priya Shah to a seller client, or pull her file if she exists."

## Safety

**Creates data.** Creates a new record in your CRM and may trigger notifications or webhooks. Running it twice creates a duplicate, so Claude runs it once per request.

## Previous name

This tool was previously published as `find_or_create_client`. Call it by its current name — legacy names are kept here for reference and old links redirect, but they are not callable.
