Frappe CRM
AGPL CRM on the Frappe Framework; every DocType is reachable through the framework's REST API.
Leads, deals, kanban, custom views, notes, tasks and calls, with built-in Twilio and Exotel calling and an ERPNext bridge for invoicing. Runs on a Frappe bench (Python and MariaDB); Frappe Cloud is the Builder's paid hosting. Any Frappe app exposes /api/resource/<DocType> and /api/method with token auth, so an agent gets the whole data model.
- I already run ERPNext and want a clean sales pipeline that invoices through it
- I want unlimited users on a simple CRM and our agent updating deals through a REST API we already know
- Needs a Frappe bench: Python, MariaDB, Redis, Node; not a single container
- Branch main is v1.x stable; develop is v2 unstable
- AGPL-3.0
- CRM Enrichment Settings suggests an enrichment feature; provider not documented in README
Last activity Sep 3, 2026. Fit: adaptable 2, operable 3.
Editions
Self-hosted · Free open source
- Clone
git clone https://github.com/frappe/crm - ImageContainer
Frappe Cloud · Free closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only6 things to edit
Site-level settings live in sites/<site>/site_config.json (db, redis, mail) and in settings DocTypes editable in the UI or over REST: FCRM Settings, CRM Global Settings, CRM Twilio Settings, CRM Exotel Settings, ERPNext CRM Settings, CRM Enrichment Settings. crm/hooks.py wires the app. Adding fields and pipeline stages is in-product; new logic is a Frappe app of your own rather than a fork.
- Env vars
- none
- Config files
sites/<site>/site_config.jsoncrm/hooks.pycrm/fcrm/doctype/fcrm_settings/fcrm_settings.jsoncrm/fcrm/doctype/crm_global_settings/crm_global_settings.jsoncrm/fcrm/doctype/crm_twilio_settings/crm_twilio_settings.jsoncrm/fcrm/doctype/erpnext_crm_settings/erpnext_crm_settings.json- Prompt files
- none
- Accounts you need
- Twilio or Exotel (calling, optional)SMTP providerFrappe Cloud account (hosted edition)
Source
- github.com/frappe/crm
- AGPL-3.0 license
- Last commit Sep 3, 2026
- 3,457 stars
Operable: what an agent can drive
Interface
OfficialAPIpublished by the builderremote or local
How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.
Reach
Partial coverage. 5 of 9 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create and update leads and deals | Reachable | Frappe REST: /api/resource/CRM Lead and CRM Deal with token auth |
| Notes, tasks and call logs on a record | Reachable | CRM Note, CRM Task, CRM Call Log DocTypes through /api/resource |
| Move deals through pipeline stages | Reachable | Status field update on CRM Deal through REST |
| Add custom fields | Reachable | Custom Field DocType is writable through the same API |
| Send and log email | Reachable | Communication DocType and frappe.core.doctype.communication.email.make through /api/method |
| Place and record calls (Twilio, Exotel) | Undetermined | Integrations are built in; API-triggered calling not documented in README |
| WhatsApp messaging | Undetermined | Uses the third-party frappe_whatsapp app |
| Kanban and custom views | Not reachable | Views are UI; CRM View Settings DocType stores them but the board is a front-end feature |
| Invoice from a deal | Undetermined | Requires ERPNext integration (erpnext_crm_settings) |
Code stack
- Languages
- PythonJavaScript
- Frameworks
- Frappe FrameworkFrappe UIVue.js
- Package manager
- bench + pip + yarn
- Database
- MariaDBRedis
- Hosting target
- Docker (easy-install.py)Frappe Cloud
- Built
- Human-written (recorded, never ranked)
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: Frappe Framework web app with Vue front end | 95% |
| executionModel | No model SDK in README; domain_enrichment module exists (unverified) | 70% |
| operability | Frappe Framework REST API docs; CRM DocTypes under crm/fcrm/doctype | 90% |
| effort | crm/hooks.py and settings DocType JSON files in the repo tree | 80% |
| editions | README: Frappe Cloud managed hosting, self-host easy-install; AGPL | 80% |
| active | GitHub pushedAt 2026-09-03 | – |
| reach | 75% |
Open questions
- Frappe Cloud prices for CRM
- What does crm/domain_enrichment call?
- Is there an official Frappe MCP server yet? None found on the frappe org
Sources
- github.com/frappe/crm sourcing:smb-ops-crm:github
- frappe.io/crm sourcing:smb-ops-crm:github