Contact

A contact is a person associated with one or more parties a business deals with, reachable by name and channel.

Also called Person · Individual · Point of contact · Lead contact

Why it exists

Because businesses transact with organisations but communicate with people, and the two do not map one to one in either direction.

What it means to the business

The contact record is where the relationship actually lives. Companies do not answer emails; people do. Getting the many-to-many right is what lets a business keep serving an account when its buyer changes, and keep a relationship with a buyer who changes accounts.

01Lifecycle — walk the states

Active. Current and reachable.

State 1 of 4

02Relationships — walk the chain

Contact linked to Customer.

Many-to-many, via a link table rather than a field.

Open Customer
03What goes wrong — and why
  • One phone number and one email per company works until the buyer, the accounts payable clerk and the site manager are three different people who need three different messages. Flattening loses all of that and cannot be undone from the data.

Rules that must hold

  • A contact is a PERSON. A customer is a billing party. Conflating them breaks the moment one person buys for two companies, or one company has four buyers.
  • A contact may be linked to several parties, and a party to several contacts. The relationship is many-to-many, not a field.
  • Consent and contact preference belong on the contact, not on the party — a person's opt-out follows the person.

What commonly goes wrong

It gets modelled as a field because at go-live every customer conveniently has one contact. Two years later the data cannot express what the business actually knows about who does what, and reconstructing it means asking every account manager to remember.

Edge cases

  • A person who is a contact at a customer AND a supplier — one record, two links, and any conflict of interest is a human judgement.
  • Shared mailboxes that are genuinely the right destination for invoices, where a role-based address is correct and consent does not apply.
  • Contacts who leave mid-project, taking the working relationship and the undocumented context with them.

How ERPNext models it

DocTypeNote
ContactLinked to parties via Dynamic Link child rows — which is exactly what makes the many-to-many work.
Contact Email / Contact PhoneChild tables, because a person legitimately has several of each with one primary.
Dynamic LinkThe join. One contact row can serve a Customer, a Supplier and a Lead simultaneously.

Last reviewed 2026-08-14

Machine-readable version

We implement this for a living — that’s where the mistakes above come from. See the service or request a discovery briefing