Skip to content
A queue, not a funnel diagram

Transform Prospects into Paying Customers

Get leads in, work them down, hand the good ones to an account. BottleCRM does that part properly and does not pretend to do the rest.

Unlimited leads, unlimited users. MIT licensed, self-host it anywhere.

The list is the work

Status, rating, source and the date you said you would call back. Filter it, sort it, and the next hour of your day is decided.

  • Status One field, and it only moves forward once A lead runs assigned, in process, converted or recycled. Converted is one-way: the record has become an account, and the status will not go back.
  • Assignment More than one owner, and whole teams Leads assign to any number of people, or to a team. A single-owner dropdown would quietly drop the others, so the list shows all of them.
  • Follow-up Last contacted, next follow-up Two dates on the record, both filterable. Sort by the next one and the morning call list writes itself.
  • Answering Log the call, the meeting, the WhatsApp Calls, meetings, emails, WhatsApp messages and texts are logged on the lead, the contact and the deal. On the phone, one tap calls or opens WhatsApp, and when you come back the app asks if you want to log it. Every enquiry shows on the timeline, including repeat ones.
  • Speed Who is still waiting, and for how long An unanswered-leads list shows each lead that has had no reply, longest wait first. Each person's response time is measured too; admins see everyone's.
  • Saved views Your filters, back in one tap Filter the list, save it under a name, and open it again with one tap, on the web or the phone. A view saved on one opens on the other, and it is yours alone.
[ APP.BOTTLECRM.IO/LEADS ]
Getting leads in

Every way in is yours

No connector marketplace and no scraping. Your own site posts to your own endpoint, or you bring a file.

Spreadsheet import

From the leads list on the web or the phone. Choose an .xlsx or .csv, match its columns to lead fields, and see who will come in and which rows will be skipped, and why, before anything is written. Up to 5,000 rows at a time.

A form on your own website

Build it in Settings, paste the snippet on your site, and what people fill in arrives here as a lead with its owner, source and tags already set. No account for the visitor and no key in your page. A repeat address updates the lead it already has rather than making a second one.

A webhook per source

Each webhook gets its own URL, with presets for Google Ads lead forms, Tally and Gravity Forms, or a generic field mapping for anything else. A repeat enquiry merges into the lead it belongs to, matched on the source's own id, then email, then phone number, and phone numbers match across formats. Lead sources are yours to edit, and the sub-source and reference follow the lead to its contact and deal. Self-hosters can also forward email to a lead address, with Amazon SES, Postmark or Mailgun.

Forwarded email

Forward the enquiry emails a listing portal or your website sends you to a lead address, and each one becomes a lead, with the enquirer's name, email and phone read from the message. On hosted BottleCRM, Settings makes the address for you. Spam and mail that fails its sender's domain check are dropped, and a repeat enquiry merges into the lead it belongs to.

The API

Every field the form collects is a field the REST API accepts, so anything that can make an HTTP request can file a lead.

By hand

The full form on web and on the phone, with your custom fields rendered alongside the built-in ones, on the form and on the record page.

Duplicate detection

Incoming leads are checked against what you already hold, so an import does not quietly double your list. The new-lead form warns while you type, and two leads that turn out to be one person merge into one, on the web and the phone.

What happens after a lead converts

What BottleCRM does not do

Marketing automation is a different product. This page used to claim most of it. It does not any more, because none of it was ever in the code.

The source is public. Every claim above can be checked against it.

  • Lead scoring, of any kind
  • Nurturing sequences and drip email
  • Follow-ups on a timer, such as a week with no reply
  • Social media capture
  • Behavioural or engagement tracking
  • Dynamic segments
Questions

The ones worth asking

Read it yourself

The lead model, the import and the conversion path are all in the open repository.

Does BottleCRM score leads?

No. There is no scoring engine, no behavioural model and no qualification framework. What you get instead is a rating field you set yourself, hot, warm or cold, alongside status, source, industry and any custom fields you add. If a scoring system matters to your process, the API gives you every field you would need to compute one outside the CRM and write it back to a custom field.

How do leads get in?

Six ways. A spreadsheet import with a preview step, a web form you embed on your own site with no key in the page, a lead webhook per source (with presets for Google Ads, Tally and Gravity Forms), forwarded email to a lead address (made for you on hosted BottleCRM), the create form on web and mobile, and the REST API directly. An import skips a lead you already hold, matched on email, phone or name, and a repeat enquiry from a form or webhook merges into that lead instead of creating a second one.

What happens when a lead converts?

It becomes an account, with an opportunity if you want one, and the lead status is set to converted. That transition is deliberately one-way: the backend refuses to move a converted lead back, because the account it produced is now the record of truth and two live copies of one customer is how data goes wrong.

Is there a board for leads?

Yes, on the web and the phone. A lead pipeline lays leads out in columns by stage, and an admin defines the pipelines and their stages in Settings. Leads that are not in the pipeline sit in a No stage lane, and you can move one back there to take it out of the pipeline. Conversion still happens from the lead itself, not from the board.

Can I export my leads?

Yes. The Export button on the leads list, on the web or the phone, downloads a CSV of the list with your filters applied, and only the leads you are allowed to see.

Can new leads be assigned automatically?

Yes, two ways. A web form can hand its new leads out in turn between members. An admin can also write an automation rule, such as "when a lead is created and its rating is Hot, assign it in turn between three people and create a call task due tomorrow". A rule runs however the lead arrives, through a form, an email or the API, except a spreadsheet import, which sets no rule off.

Can I add fields of my own?

Yes. Custom fields are defined per organisation, in text, number, date, dropdown and checkbox types. They are filterable in the list, they show on every record page and form on both the web and the phone, and they come back through the API, so a field you add is available everywhere rather than only on the screen you added it from.

Stop losing leads in a spreadsheet

No per-seat fee, no lead cap, no trial clock. Host it yourself, or let RunCode run it.

MIT licensed Unlimited leads 100% data ownership