# Reply contact suggestions


Automatic replies can contain details for the sender, coworkers, or a shared
company contact. Suggestions preserve those distinctions. A coworker's email
cannot be added to the original lead, even when both share a company domain.

| REST operation | MCP tool | Required permission |
| --- | --- | --- |
| `GET /v1/unibox/threads/{threadId}/contact-suggestions` | `listUniboxContactSuggestions` | `unibox:read` |
| `POST /v1/unibox/contact-suggestions/{suggestionId}/apply` | `applyUniboxContactSuggestion` | `lead:update` |
| `POST /v1/unibox/contact-suggestions/{suggestionId}/create-lead` | `createLeadFromUniboxContactSuggestions` | `lead:create`, `lead:update` |
| `POST /v1/unibox/contact-suggestions/{suggestionId}/dismiss` | `dismissUniboxContactSuggestion` | `lead:update` |

List responses include `ownership` (`self`, `coworker`, `company`, `unknown`),
`contactType`, names, evidence, `reviewReason`, `groupKey`, and allowed actions.
Treat `canApply` and `blockReason` as current guidance; writes recheck eligibility.

For a reviewed coworker, send `{"firstName":"Alex","lastName":"Fox"}` to
`create-lead`. It saves all pending details in that coworker's group on one new
lead and returns `leadId`, `saved`, `remaining`, and `emailAddresses`. Creation is
atomic: conflicting ownership or an invalid number rejects the group. It does
not merge existing leads. New leads record `source: "unibox_extraction"`.

Unknown ownership requires explicit human review before sending
`{"confirmOwnership":true}` to `apply`. That action confirms the contact belongs
to the conversation's current lead. Company and coworker contacts are rejected
by `apply`; dismiss details that have no appropriate destination. Resolved
suggestions cannot be applied or created again.

## Workspace automatic saving

`PATCH /v1/settings/organization` accepts
`{"contactSuggestionsAutoConfirm":true}`. This field requires both
`workspace:update` and `lead:update`. The default is false. Only new,
unambiguously sender-owned details with verified first-person evidence qualify;
uncertain contacts remain pending for review. Enabling never applies the existing
backlog, and the policy is rechecked at save time. Coworker creation remains manual.

Extraction runs for each qualifying campaign-linked automatic reply, independently
of Unibox filters. This setting does not enable extraction on ordinary replies.

## Phone extensions

Contact strings preserve an extension as `+14155552671;ext=123`. Contact-point
reads additionally expose `phoneBase`, `phoneExtension`, `contactType`, and
`sourceValue`. Ordered phone arrays and the lead's primary scalar retain the
complete string, including through structured import/export. Distinct extensions
on the same switchboard remain distinct contact points.

Extension dialing is not supported: voice/SMS destinations reject extended
contacts rather than dropping the extension or appending its digits to the base.
Keep the full contact when passing it to another integration; support for dialing
or parsing extensions depends on that integration.

