# Contacts and companies

How people and organizations enter Boni CRM, how Boni decides two records are the same person, and what keeps duplicates out.

## Where contacts come from

A workspace builds one contact book from four routes:

| Route | Behaviour |
|---|---|
| A connected Bow Chat account | People your team already talks to are projected into CRM and stay in sync as the source record changes |
| A connected Bino commerce source | A buyer is resolved onto the existing person by phone or email, then the order outcome appears on that contact's activity timeline |
| Working a deal | Capturing a name and number while creating an opportunity resolves to a contact record, not a loose text field |
| API | Direct writes from your own systems, scoped to one workspace |

Whichever route creates a person, the CRM contact is the single record for that relationship: who they are, which deals are open, what happened, and what should happen next.

## One person, one record

The hard part of a contact book is deciding that two records are the same human. Boni matches on identity, never on spelling:

- **Phone number first.** A number is reduced to a canonical international key before it is compared, so the same person written `+20 10 9096 0865`, `01090960865`, or `201090960865` resolves to one record.
- **Email second**, when no number matches.
- **Never by name.** Two people share a name far more often than they share a number.

When a match already exists but is missing the number you just used, the new number is added to that person rather than starting a second record. One human accumulates their numbers over time.

A number that cannot be understood fails closed: nothing invents an identity for a fragment or a note like `call reception`. The value you entered is always preserved as typed; match keys are derived separately and never overwrite it.

## Names you supply are protected

Messaging platforms often deliver a contact with no profile name. If someone on your team supplies the real name for such a contact, that name is recorded as a deliberate override, and later automatic updates from the source system cannot silently revert it.

A stored name that is only the phone number counts as no name, so filling it in is treated as an improvement rather than a conflict.

## Companies

A company typed while capturing a deal is created or matched as an organization record and linked to both the contact and the opportunity, so the relationship graph is complete from the first capture instead of being reconstructed later.

Organizations carry their own activity history, contact list, and opportunities.

## Message contacts

Select one or more contacts and choose **Message contacts** to open the Messaging CPaaS composer with that audience. The campaign still checks suppression and requires an available sender before it can be sent or scheduled.

## Suppression and removal

A contact can be suppressed to keep it out of outreach while preserving its history. When a source system deletes a person, CRM keeps a cleared record of the relationship rather than a copy of their personal details, so counts and history stay honest without retaining data the source removed.

Canonical: https://docs.boni.one/crm/contacts-and-companies
Version: 2
Updated: 2026-08-18T10:32:58.080Z
