ERPNext CRM Enhancement Strategy — Plugins, Custom Build, and SaaS Licensing
Date: 2026-03-10
Context: Solanasis ERPNext v16.9.0 running locally via Docker. Planning CRM enhancements that align with the SaaS resale strategy.
Related: open-source-erp-research.md (Sections 7, 9, 15, 18, 20)
The Licensing Reality: Why We Can’t Just Install Frappe CRM
This is the single most important consideration before installing any plugin.
| App | License | SaaS Safe? | Why |
|---|---|---|---|
| ERPNext | GPL-3.0 | Yes | GPL SaaS loophole — no distribution = no source disclosure obligation |
| Frappe Framework | GPL-3.0 | Yes | Same as above |
| Frappe CRM | AGPL-3.0 | NO | AGPL Section 13 closes the SaaS loophole — network users must be offered source code |
| Frappe Helpdesk | AGPL-3.0 | NO | Same AGPL problem |
| Frappe Insights | AGPL-3.0 | NO | Same AGPL problem |
| Frappe WhatsApp (shridarpatil) | MIT | Yes | Permissive license, no restrictions |
| Telephony (frappe) | AGPL-3.0 | NO | AGPL |
| Raven | AGPL-3.0 | NO | AGPL |
Bottom line: Every major “Tier 1” Frappe app except ERPNext itself is AGPL-3.0. If we include any AGPL code in the Solanasis SaaS product, the AGPL’s network-disclosure requirements apply to the combined work, which destroys the entire business model of reselling a white-labeled, proprietary-feeling ERP platform.
Per the original research doc (Section 7):
CRITICAL WARNING: Frappe CRM is AGPL v3. Options: (1) Build your own CRM module on the GPL v3 Frappe Framework instead, (2) Accept AGPL obligations for the CRM component, or (3) Use Frappe CRM internally only (not as part of the client SaaS offering).
Per Dmitri’s answers (Section 18):
Deep UI redesign — completely custom look and feel. The Solanasis platform must be completely unrecognizable as ERPNext.
The Strategy: Two Tracks
Track 1: Internal Use (Solanasis’s Own Pipeline) — Install AGPL Apps Freely
For Solanasis’s own sales pipeline at db.zasage.us / db.solanasis.com, AGPL is irrelevant — we’re the users, not reselling it. We can install:
| App | Purpose | License | Install? |
|---|---|---|---|
| Frappe CRM | Modern pipeline for our own sales | AGPL-3.0 | Yes — internal use only |
| Frappe Insights | Dashboards for our sales analytics | AGPL-3.0 | Yes — internal use only |
| Frappe Helpdesk | Our own customer support | AGPL-3.0 | Yes — internal use only |
| Frappe WhatsApp | WhatsApp outreach | MIT | Yes |
Track 2: Client SaaS Product — Build Custom CRM on GPL Frappe Framework
For the white-labeled SaaS product Solanasis will resell, we build custom Frappe apps (GPL-3.0) that replicate the best aspects of Frappe CRM’s UX. This is where AI coding (Claude) does the heavy lifting.
Per the original plan (Section 20, Item 5):
CRM Module Build Specification — Custom CRM DocTypes (built on GPL v3 Frappe Framework, NOT Frappe CRM), Pipeline stages and workflow, Cold email integration architecture, Lead scoring algorithm design, Email sync and logging approach
What We Should Build as Custom Apps (GPL-3.0)
Study Frappe CRM’s UX, then build equivalents as custom Frappe apps. This is legal — we’re building on the GPL Frappe Framework, not incorporating AGPL code. We’re inspired by, not copying.
solanasis_crm (Custom Frappe App)
Inspired by Frappe CRM’s best features, built from scratch on Frappe Framework:
| Feature to Build | Frappe CRM Reference | Implementation Approach |
|---|---|---|
| Visual pipeline Kanban | /crm pipeline view | Custom Vue.js page using Frappe UI components + drag-and-drop library |
| Unified activity timeline | Deal/Lead detail page | Custom DocType with child table aggregating emails, calls, notes, tasks |
| Deal tracking with stages | CRM Deal doctype | Custom DocType extending ERPNext’s Opportunity with richer metadata |
| Lead scoring | CRM Lead scoring | Custom fields + server script that calculates score based on activity |
| Quick actions (email, call, note) | Sidebar quick actions | Custom Vue component injected via client script |
| Email open/click tracking | Built-in tracking | Custom tracking pixel + link wrapping in a Frappe app |
| Dashboard cards | CRM dashboard | Custom page with eCharts (MIT licensed, same as Frappe Insights uses) |
solanasis_whitelabel (Custom Frappe App)
Already planned in the original research (Section 15):
- Complete UI reskin (Navy #020532, Parchment FEF9F1, Copper C47A3D)
- Custom login page, dashboard, navigation
- Per-tenant theme configuration DocType
- Dark mode
- Command palette (Cmd+K) enhancement
solanasis_comms (Custom Frappe App)
Communication integrations (all MIT/GPL-safe):
| Integration | Approach | License Safety |
|---|---|---|
Use frappe_whatsapp (MIT) or build custom using Meta Cloud API directly | Safe | |
| Email campaigns | Build on Frappe’s built-in email infrastructure | GPL — safe |
| Cold email at scale | Integration layer with external tools (Instantly.ai, Smartlead) via API/webhook | Safe — external service |
| Telephony | Build custom Twilio integration using Twilio’s Python SDK (MIT) directly | Safe — no AGPL dependency |
Plugins Safe to Install NOW (for Both Internal + SaaS)
These have GPL-compatible or permissive licenses:
| App | License | Purpose | GitHub | Stars | Activity |
|---|---|---|---|---|---|
| Frappe WhatsApp | MIT | WhatsApp Business messaging | Active | 392 | v1.0.11 (Nov 2025) |
| ERPNext Whitelabel (built-in) | GPL-3.0 | Basic branding (logo, colors, hide ERPNext branding) | Part of ERPNext | — | Built-in |
That’s it for safe-to-resell plugins. The ecosystem is almost entirely AGPL for anything modern and useful, which is exactly why the custom build strategy exists.
Plugins to Install NOW (Internal Instance Only — Not for Resale)
For our own db.zasage.us / db.solanasis.com instance to make it immediately usable:
| Priority | App | What It Gives Us | License |
|---|---|---|---|
| 1 | Frappe CRM | Modern pipeline, deal tracking, unified timeline | AGPL-3.0 |
| 2 | Frappe Insights | Visual dashboards, sales analytics | AGPL-3.0 |
| 3 | Frappe WhatsApp | WhatsApp outreach from within CRM | MIT |
| 4 | Frappe Helpdesk | Support ticketing (when we have clients) | AGPL-3.0 |
These make our internal instance a fully functional modern CRM immediately, and serve as the reference implementation to study when building the custom GPL apps for resale.
What “Taking the Best of Frappe CRM” Means in Practice
This is the AI coding strategy — what Claude will actually build:
Phase 1: Study & Spec
- Install Frappe CRM on our internal instance
- Document every UX pattern worth replicating (screens, flows, interactions)
- Read the Frappe CRM source to understand the Vue.js component architecture
- Write specs for equivalent custom DocTypes and pages
Phase 2: Custom DocTypes (solanasis_crm app)
Build on Frappe Framework (GPL-3.0), writing original code:
Custom DocTypes to create:
├── Solanasis Deal # Extends concept of Opportunity with pipeline stages, value, probability
├── Solanasis Deal Stage # Configurable pipeline stages with win probability defaults
├── Solanasis Activity # Unified activity log (email, call, note, task, meeting)
├── Solanasis Lead Score # Scoring rules engine
├── Solanasis Email Sequence # Multi-step drip campaign builder
├── Solanasis Call Log # Telephony integration (Twilio SDK, not Frappe's AGPL telephony app)
└── Solanasis CRM Settings # Pipeline config, scoring weights, integration keys
Phase 3: Custom Vue.js Pages
Build modern UI pages using Frappe UI (Vue 3 + Tailwind — both MIT licensed):
Custom pages to build:
├── /app/deals # Kanban pipeline board (drag-and-drop)
├── /app/deals/{id} # Deal detail with unified activity timeline
├── /app/crm-dashboard # Sales analytics with eCharts
├── /app/email-sequences # Visual email sequence builder
└── /app/lead-scoring # Lead scoring configuration
Phase 4: Integrations
- WhatsApp via
frappe_whatsapp(MIT) or direct Meta API - Twilio via Python SDK (MIT) for click-to-call
- Cold email tools via REST API webhooks
- eCharts (Apache-2.0) for dashboard visualizations
License Audit Summary
| Component | License | Can Resell as SaaS? | Notes |
|---|---|---|---|
| Frappe Framework | GPL-3.0 | Yes | Foundation — safe |
| ERPNext | GPL-3.0 | Yes | ERP backbone — safe |
| Our custom apps (solanasis_*) | Proprietary | Yes | Built on GPL framework, SaaS = no distribution |
| Frappe UI (Vue components) | MIT | Yes | Permissive — can use freely |
| Tailwind CSS | MIT | Yes | Permissive |
| eCharts | Apache-2.0 | Yes | Permissive |
| Twilio Python SDK | MIT | Yes | Permissive |
| frappe_whatsapp | MIT | Yes | Permissive |
| Frappe CRM | AGPL-3.0 | NO | Internal use only |
| Frappe Helpdesk | AGPL-3.0 | NO | Internal use only |
| Frappe Insights | AGPL-3.0 | NO | Internal use only |
| Raven | AGPL-3.0 | NO | Internal use only |
| Frappe Telephony | AGPL-3.0 | NO | Internal use only |
Immediate Next Steps
- Build custom Docker image with Frappe CRM + Insights + WhatsApp for our internal instance
- Use the internal instance as both our real sales tool AND a reference implementation
- Begin spec work for
solanasis_crmcustom app — document which Frappe CRM UX patterns to replicate - Start building
solanasis_crmas a custom Frappe app using Frappe Framework + Frappe UI (both GPL/MIT safe)
Discovery Resources
| Resource | URL |
|---|---|
| Awesome Frappe (curated list) | https://github.com/gavindsouza/awesome-frappe |
| Awesome Frappe (searchable) | https://awesome-frappe.gavv.in/ |
| Frappe Cloud Marketplace | https://cloud.frappe.io/marketplace |
| Frappe CRM Docs (study reference) | https://docs.frappe.io/crm |
| Frappe CRM Source (study reference) | https://github.com/frappe/crm |
| Frappe UI Components (MIT — use freely) | https://github.com/frappe/frappe-ui |
| ERPNext CRM vs Frappe CRM | https://frappe.io/blog/frappe-crm/erpnext-crm-vs-frappe-crm-whats-the-difference |
| eCharts (Apache-2.0 — use freely) | https://github.com/apache/echarts |