Skip to content

Lead management

Leads are top-of-funnel records. People or companies that have shown some interest but are not yet qualified accounts. BottleCRM tracks leads through capture, qualification, and conversion.

Capturing leads

Four intake paths are supported out of the box:

  1. Manual entry in the web app at /leads/new.
  2. CSV upload via POST /api/leads/upload/, the parser de-duplicates on email and reports row-by-row errors instead of failing the whole batch.
  3. A web form embedded on your own site, built in Settings and pasted in as one line of HTML. The visitor needs no account and the snippet carries no credential. See Web forms.
  4. API ingestion: POST /api/leads/ from a marketing tool or a script.

The list view supports filtering by status, source, assignee, and any filterable custom field.

Lead lifecycle

A lead's status walks through:

new → assigned → contacted → qualified  →  converted
                                       ↘   lost

Status transitions are validated server-side. You cannot mark a lost lead as converted by hacking the UI. When a lead is converted, the system creates a matching Account, Contact, and (optionally) Opportunity in one transaction.

Kanban view

There is a GET /api/leads/kanban/ endpoint and it works, and no client draws it. The web app's leads route is a list, and the phone's is a list. Vertical packs define named lead pipelines with stages, those rows are really created, and nothing renders them either. A lead carries a status; it does not sit in a column you can drag.

Bulk operations

There are none for leads. No bulk assign, no bulk tag, no bulk delete and no export: the endpoints do not exist and the list view offers no multi-select. Bulk actions in this product are a tickets feature (bulk/update/ and bulk/delete/ under /api/cases/).

See also