mothermachine

Browse / SMB ops and CRM

Frappe Helpdesk

AGPL ticketing with agent and customer portals, SLAs, assignment rules and a knowledge base, all reachable over the Frappe REST API.

AdaptableOperable Business appWeb app Deterministic PythonJavaScript API License: AGPL-3.0

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.

Use it when
  • 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
Gotchas
  • 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

  • Clonegit clone https://github.com/frappe/helpdesk
  • ImageContainer

Frappe Cloud · Free closed source

For agents: JSON · Markdown

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.json helpdesk/hooks.py docker/docker-compose.yml docker/init.sh
Prompt files
none
Accounts you need
SMTP/IMAP mailboxFrappe Cloud account (hosted edition)

Source

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.

Docs
docs.frappe.io/framework/user/en/api/rest

Reach

Partial coverage. 8 of 9 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Create, assign and resolve ticketsReachableHD Ticket DocType through /api/resource; assignment through frappe.desk.form.assign_to
Reply to customers and add internal commentsReachableCommunication and HD Ticket Comment DocTypes
Define SLAsReachableHD Service Level Agreement DocType
Assignment rulesReachableFrappe Assignment Rule DocType
Knowledge base articlesReachableHD Article and HD Article Category DocTypes
Saved (canned) repliesReachableHD Canned Response DocType
Manage agents and teamsReachableHD Agent and HD Team DocTypes
Customer portal self-serviceNot reachablePortal is a UI for customers; API serves the data but not the experience
Set up inbound email accountsReachableEmail 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

FieldWhere it was seenConfidence
formFactorREADME: Frappe web app with Vue portals95%
executionModelNo model SDK in README80%
operabilitydocs.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%
effortREADME Development Setup: docker/docker-compose.yml and init.sh; site_config.json80%
editionsREADME: Frappe Cloud managed hosting, self-host easy-install; AGPL80%
activeGitHub pushedAt 2026-09-02–
reach70%

Open questions

  • Frappe Cloud prices for Helpdesk
  • Does Helpdesk ship an AI reply or summary feature that would make executionModel hybrid?

Sources