Contacts and companies
Keep people and the businesses they work for as real records, link them, merge duplicates safely, and turn a contact into a paying customer in one step.
Sales lives or dies on knowing who you talked to and where they work. ERPClaw has built-in Sales, so the people you are selling to live in the same system as the orders and invoices they eventually generate. No export to a separate CRM, no re-keying the customer when the deal closes.
Say it the way you would out loud:
“Add Jane Smith from Acme Corp, she is their operations head, email jane at acme dot com.”
People and businesses are separate records
A contact is a person. A company is a business. Jane can move from Acme to a new employer without losing her history, and Acme can have five contacts without you typing its details five times. Link a person to their company with a role, and mark who the primary contact is.
“Link Jane to Acme Corp as their head of operations, she is our main contact there.”
Emails are checked for duplicates as you add people, and company domains the same way, so “acme.com” cannot quietly become two different companies with two different histories.
Find them again
“Show me everyone at Acme Corp.”
“Which of our contacts are still just leads?”
Lists filter by company, by lifecycle stage, or by a search across names. For a search across everything at once, including deals and customers, see saved views and search.
Merge the duplicates you find anyway
Every contact list grows duplicates: one from a trade show import, one typed by hand. Merging keeps the record you choose, moves everything the duplicate was attached to over to it, and does the whole thing in one step so a half-merged contact can never exist.
“Jane Smith and J. Smith are the same person, merge them, keep the first one.”
The step that pays for all of it
When a contact becomes a buyer, promote them:
“Jane just signed. Make her a customer.”
That one request creates the real customer record your quotes, orders, and invoices post against, carried over from the contact you already maintained. If anything goes wrong mid-way, the whole step is rolled back rather than left half-done. This is the point of built-in Sales: the pipeline ends in the same books the rest of the business runs on.
Common questions
Do I need a separate CRM subscription for this? No. Contacts, companies, deals, and tasks are part of ERPClaw. Free forever, self-hosted, same install.
What happens to a contact when I remove them? Removal is soft. The record is retired rather than destroyed, and its links are cleaned up, so history stays intact for anything that referenced them.
Can two contacts share an email address? Not within the same company records. Email is checked without caring about capitalisation, which is how most duplicates sneak in.
What does merging actually move? Everything attached to the duplicate: links, roles, and references are reassigned to the record you keep, in one atomic step.
Does promoting a contact copy them or move them? It creates the customer record from the contact and keeps the contact linked, so the sales history and the billing history stay connected.
Can I bring in my existing contact list? Yes, from a spreadsheet. See CSV import and export.
Reference: the actions behind this page
You never have to type these. They are what ERPClaw runs when you ask, and they are here for anyone calling the API or MCP surface directly, or reading a log.
add-crm-contact --name "Jane Smith" --email [email protected] --job-title "Head of Operations"
add-crm-company --name "Acme Corp" --domain acme.com
link-contact-to-company --crm-contact-id <id> --crm-company-id <id> --role-title "Head of Operations" --is-primary
list-crm-contacts --crm-company-id <id>
merge-crm-contacts --primary-contact-id <keep> --duplicate-contact-id <merge-away>
promote-contact-to-customer --crm-contact-id <id>
update-crm-contact / get-crm-contact / remove-crm-contact
update-crm-company / get-crm-company / list-crm-companies
Contact email and company domain are unique per company, checked case-insensitively.