Start from the template
Download a CSV with the right headers so the mapping step has nothing to guess at.
Every person you deal with, searchable in one box, with the fields your business actually uses rather than the ones a vendor decided on.
Unlimited contacts and unlimited users. MIT licensed, self-host it anywhere.
Type a surname, a company, a partial phone number or a city. Then narrow it with filters when one box is not enough.
The part of a CRM migration that goes wrong is the first bulk load. This one shows you the damage before it happens.
Download a CSV with the right headers so the mapping step has nothing to guess at.
The import runs in two halves. Preview tells you what matched, what looks like a duplicate and what will fail, and nothing is saved until you commit.
Incoming rows are compared against your existing contacts on normalised phone numbers and email domains, not on exact string equality.
Download a CSV of what went wrong: row number, field and the reason for each one, so you fix them in your spreadsheet rather than reading a log.
The export gap is the one worth knowing about before you commit a list to us. The API and your own database both give you everything, but there is no download button.
If any of these matter to you, the repository takes pull requests.
The contact model, the importer and the duplicate matcher are all in the open repository.
There is no limit in the software and no per-contact price. You are bounded by the database you run it on, which is Postgres, and by nothing else. Self-hosting means the capacity question is yours to answer rather than ours to bill for.
Yes. Export a CSV from whatever you are leaving, download our template so the headers line up, and run the import. It works in two steps: a preview that shows what matched and what would fail, then a commit. Duplicate detection runs against your existing contacts first, comparing normalised phone numbers and email domains rather than exact text.
Not as a CSV from the interface today, which is a real gap and we would rather say so than imply otherwise. What you do have is the REST API, which returns every contact and every custom field, and direct access to your own Postgres database if you self-host. Your data is genuinely yours, but the one-click export button is not built yet.
Custom fields per organisation, in text, number, date, dropdown and checkbox types. They render in the web and mobile forms, they filter in the list, and they come back through the API. The built-in set already covers job title, department, company, address, LinkedIn, a do-not-call flag and free-text notes.
No per-contact fee, no seat count, no trial clock. Host it yourself, or let MicroPyramid run it.