OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

BottleCRM

Django CRM with deal pipelines, a support desk and invoicing on one record, plus a REST API and mobile app

Open source alternative to

Visit BottleCRMGitHubDocumentation

Main features

  • Leads with duplicate detection and conversion to contacts and accounts
  • Drag-and-drop deal pipelines with stalled-deal warnings and weighted totals
  • Web forms that create leads or support tickets
  • Support tickets with SLA timers, macros, escalations and a help center
  • Invoices, estimates and recurring billing with PDF output
  • Custom fields on every entity, saved views and CSV import and export
  • Signed outbound webhooks
  • JWT REST API with OpenAPI schema and personal access tokens
  • Flutter mobile app for iOS and Android
  • Multi-tenancy enforced by PostgreSQL Row-Level Security

What BottleCRM does

BottleCRM is the current name of the long-running Django-CRM project maintained by MicroPyramid. It follows one record through the customer lifecycle: a lead becomes a contact at an account, the account carries deals, a won deal becomes an invoice, and a later support ticket already knows the customer’s history. Leads arrive by hand, by CSV import or from web forms embedded on your site, with duplicate detection along the way.

Deals sit on a drag-and-drop pipeline board with stages you define. Each stage can carry an expected number of days, so deals that sit too long are flagged as stalled, and the board shows both the total value and a figure weighted by each deal’s probability. Every deal displays its next open task, and a deal with nothing scheduled is flagged.

Support and billing in the same CRM

What separates BottleCRM from most open source CRMs is the scope of its other modules. The support desk turns email or web form submissions into tickets that reply as threaded email, with SLA timers, approvals, escalations, macros, time tracking, satisfaction figures and an optional public help center. Invoicing covers estimates, invoices and recurring billing with PDF output, partial payments and an accounts-receivable aging report. Custom fields work on every entity, signed webhooks notify tools such as Slack, Zapier or n8n, and a documented REST API with personal access tokens lets scripts or AI agents act with a user’s own permissions.

The project’s feature page is unusually direct about gaps. It says there is no lead scoring, nurturing or workflow automation, no reminders or recurring tasks, no calendar feed and no payment processor integration. There are only two roles, Admin and User.

Self-hosting BottleCRM

The repository ships a Docker Compose stack: PostgreSQL 16, Redis 7, the Django API, a Celery worker, Celery beat and the SvelteKit frontend. PostgreSQL is mandatory, because tenant isolation relies on its Row-Level Security; each organization’s data is separated by the database itself, so one deployment can serve a single company or many client organizations. A manual setup needs Python 3.12, Node.js 24 and pnpm. The documentation says plainly that it has no benchmarked hardware sizing guide. Email uses a console backend until you configure Amazon SES, and Google sign-in and Sentry are optional. The Flutter mobile app has to be built and signed from source.

Hosted version

The website’s sign-up buttons lead to a hosted app at app.bottlecrm.io. MicroPyramid also sells managed hosting, priority support and data migration as a service priced after a conversation, alongside custom development. The developer states that the software is the same in every option and has no seat counter or paid features.

Limitations

The lack of any automation is the main gap compared with Pipedrive, Salesforce or HubSpot: follow-ups, assignments and reminders all depend on people. The role model is simple, which helps small teams but not organizations needing fine-grained permissions. Running six services including Celery and Redis is more work than a single PHP application, and the mobile app needs your own build.

Who it suits

BottleCRM suits small businesses, agencies and consultancies that want sales, support and invoicing in one MIT-licensed system, and Python teams who want to extend a Django codebase. Agencies hosting a CRM for several clients will find the database-level multi-tenancy useful. Teams that rely on automated sequences should compare it with Frappe CRM or EspoCRM in the CRM guide.

License details

MIT. No paid tier in the code; the developer sells managed hosting, support and custom work as services.

Technical details

Self-hosting needs

  • PostgreSQL
  • Redis

Built with

  • Python
  • Django
  • SvelteKit
  • Flutter

GitHub topics

  • cpq
  • crm
  • crm-software
  • django
  • django-crm
  • django-rest-framework
  • flutter
  • helpdesk
  • invoice-management
  • invoicing
  • lead-management
  • multitenancy
  • open-source
  • python

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.