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. POST /api/contacts/<id>/merge/ performs the same kind of merge as accounts: the loser's emails, calls, and references migrate to the winner inside a transaction.

Import

CSV import at POST /api/contacts/upload/ accepts the same shape as the export — first name, last name, email, phone, account name (matched fuzzily). The endpoint reports per-row outcomes (created, updated, skipped, error) rather than failing the batch on a single bad row.

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

  • Accounts — companies these contacts belong to.
  • Custom fields — extend contacts with org-specific data.