Frappe Helpdesk
AGPL ticketing with agent and customer portals, SLAs, assignment rules and a knowledge base, all reachable over the Frappe REST API.
Ticket management with dual portals, customisable SLAs, auto-assignment, saved replies and a knowledge base. Same Frappe bench stack and Frappe Cloud hosting as Frappe CRM; every HD DocType (tickets, comments, SLAs, articles, canned responses) is a REST resource with token auth.
- I want a support desk with SLAs and a customer portal on our own server, no per-agent fees
- I already run Frappe apps and want tickets in the same bench
- Same bench footprint as Frappe CRM (MariaDB, Redis, Node, Python)
- AGPL-3.0
- DocType names above (HD Ticket, HD Article, HD Canned Response) are from the app's data model; verify field names against your version
Last activity Sep 2, 2026. Fit: adaptable 2, operable 3.
Editions
Self-hosted · Free open source
- Clone
git clone https://github.com/frappe/helpdesk - ImageContainer
Frappe Cloud · Free closed source
- HostedOpen the hosted app
Adaptable: what is yours to change
Make it yours
Config only4 things to edit
Site settings in sites/<site>/site_config.json; SLAs, assignment rules, teams, canned responses and portal branding are records you set in the UI or over REST; docker/docker-compose.yml and docker/init.sh bring up a dev stack. New behavior is a companion Frappe app; the AGPL fork path is rarely needed.
- Env vars
- none
- Config files
sites/<site>/site_config.jsonhelpdesk/hooks.pydocker/docker-compose.ymldocker/init.sh- Prompt files
- none
- Accounts you need
- SMTP/IMAP mailboxFrappe Cloud account (hosted edition)
Source
- github.com/frappe/helpdesk
- AGPL-3.0 license
- Last commit Sep 2, 2026
- 3,353 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. 8 of 9 jobs reachable through the stated interface.
| Job | Through the interface | Evidence |
|---|---|---|
| Create, assign and resolve tickets | Reachable | HD Ticket DocType through /api/resource; assignment through frappe.desk.form.assign_to |
| Reply to customers and add internal comments | Reachable | Communication and HD Ticket Comment DocTypes |
| Define SLAs | Reachable | HD Service Level Agreement DocType |
| Assignment rules | Reachable | Frappe Assignment Rule DocType |
| Knowledge base articles | Reachable | HD Article and HD Article Category DocTypes |
| Saved (canned) replies | Reachable | HD Canned Response DocType |
| Manage agents and teams | Reachable | HD Agent and HD Team DocTypes |
| Customer portal self-service | Not reachable | Portal is a UI for customers; API serves the data but not the experience |
| Set up inbound email accounts | Reachable | Email Account is a standard DocType, creatable through POST /api/resource/Email Account with password-based IMAP/SMTP per the framework REST docs; OAuth-linked mailboxes still need the UI consent step |
Code stack
- Languages
- PythonJavaScript
- Frameworks
- Frappe FrameworkFrappe UIVue.js
- Package manager
- bench + pip + yarn
- Database
- MariaDBRedis
- Hosting target
- Docker (easy-install.py, docker-compose)Frappe Cloud
- Built
- Human-written (recorded, never ranked)
Evidence and confidence
| Field | Where it was seen | Confidence |
|---|---|---|
| formFactor | README: Frappe web app with Vue portals | 95% |
| executionModel | No model SDK in README | 80% |
| operability | docs.frappe.io/framework/user/en/api/rest: 'Authorization: token api_key:api_secret' header (keys generated per User), plus /api/method/login password login and OAuth Bearer; /api/resource/:doctype gives CRUD over every DocType including the HD Ticket, HD Article, HD Canned Response types shipped by frappe/helpdesk. | 95% |
| effort | README Development Setup: docker/docker-compose.yml and init.sh; site_config.json | 80% |
| editions | README: Frappe Cloud managed hosting, self-host easy-install; AGPL | 80% |
| active | GitHub pushedAt 2026-09-02 | – |
| reach | 70% |
Open questions
- Frappe Cloud prices for Helpdesk
- Does Helpdesk ship an AI reply or summary feature that would make executionModel hybrid?
Sources
- github.com/frappe/helpdesk sourcing:smb-ops-crm:curated
- docs.frappe.io/framework/user/en/api/rest sourcing:smb-ops-crm:curated