Skip to content

Contacts

A Contact is a person, typically attached to an Account but also valid standalone for individuals you correspond with (consultants, partners, applicants).

Core fields

  • Name, title, department
  • Primary and secondary email
  • Phone (work / mobile)
  • LinkedIn URL
  • Mailing address
  • Account (optional: the company they work for)
  • Owner: the person on your team who manages this relationship
  • Custom fields: birthday, preferred channel, language, whatever your org needs

Why contacts matter

In BottleCRM, contacts are the unit that:

  • Receive email sent from the activity timeline.
  • Sign invoices and estimates: every billing doc is addressed to a primary contact.
  • Appear on opportunity stakeholder lists: for multi-threaded deals.
  • Drop into campaigns and segments, once you have email marketing wired up.

Deduplication

The list view warns when a new contact's email matches an existing one. Resolving the duplicate is manual from there: there is no merge endpoint for contacts, and no merge in the interface either. Edit the record you are keeping and delete the other, which is permanent.

Import

CSV import is two steps, POST /api/contacts/import/preview/ then POST /api/contacts/import/commit/, so you see what a file will do before it does it. Preview validates and reports per-row errors as {row, field, message} without writing anything. Files are capped at 5 MB.

Neither step is reachable from the web app or the phone yet. The importer is built and tested on the backend and nothing in either client calls it, so importing contacts today means calling the API directly.

Privacy & deletion

A "right to be forgotten" delete (DELETE /api/contacts/<id>/?forget=true) hard-deletes the contact and scrubs PII from its associated activities, leaving the timeline structurally intact for audit but anonymized.

See also