know.2nth.ai Technology tech frappe helpdesk
tech/frappe · Helpdesk · Skill Leaf

Tickets that live
where your data does.

Frappe Helpdesk is a ticket management system built on the Frappe Framework. SLAs, escalation rules, a customer-facing portal, a knowledge base, and email-to-ticket — all as doctypes on the same engine that powers ERPNext, CRM, and HRMS. It pairs naturally with Frappe CRM but installs and runs standalone.

Live Frappe Framework app AGPL v3 Vue 3 frontend

Self-hosted support, no per-agent fees.

Frappe Helpdesk does what Zendesk and Freshdesk do — receive tickets via email or a portal, assign them to agents, track SLA compliance, and let customers check status — but it's open source, self-hosted, and built on the same Frappe doctype system everything else in the ecosystem uses. That means the same permissions model, the same API surface, and the same hook system.

The frontend is a Vue 3 SPA (like Frappe CRM) rather than the standard Frappe Desk. It provides an agent dashboard, a customer portal, and a knowledge base editor. The backend is pure Frappe doctypes — tickets, agents, SLA policies, canned responses, and knowledge base articles are all documents you can query and manipulate via REST.

Agent-friendly by architecture

Because every ticket is a doctype document with a standard API, an AI agent can triage incoming tickets, auto-assign based on content, draft responses from the knowledge base, and escalate when SLA deadlines approach — all through the same REST calls a human agent's browser makes. No special bot API required.

The data model.

Doctype Purpose Key fields
HD TicketA support request from a customer or internal usersubject, description, status, priority, ticket_type, agent, contact
HD AgentA support team member who handles ticketsuser, agent_name, group
HD Service Level AgreementSLA policy defining response and resolution targetspriority, response_time, resolution_time, support_days
HD Canned ResponsePre-written reply templatetitle, message
HD ArticleKnowledge base article for self-servicetitle, content, category, published
HD Ticket CommentInternal note or customer-visible reply on a ticketcontent, commented_by, is_pinned

REST against the ticket queue.

Create tickets, assign agents, check SLA status, and search the knowledge base — all via the standard Frappe API.

# List open tickets assigned to a specific agent
GET /api/resource/HD Ticket
  ?filters=[["agent","=","[email protected]"],["status","=","Open"]]
  &fields=["name","subject","priority","creation","contact"]
  &order_by=creation asc
  &limit_page_length=25
# Create a ticket from an external webhook
POST /api/resource/HD Ticket
{
  "subject": "Cannot access billing portal",
  "description": "Login returns 403 since this morning.",
  "ticket_type": "Bug",
  "priority": "High",
  "contact": "[email protected]"
}

# Assign a ticket to an agent
PUT /api/resource/HD Ticket/HD-TICKET-00058
{
  "agent": "[email protected]",
  "status": "Open"
}
# Search the knowledge base for self-service
GET /api/resource/HD Article
  ?filters=[["published","=",1]]
  &or_filters=[["title","like","%billing%"],["content","like","%billing%"]]
  &fields=["name","title","category"]

# Add a reply to a ticket
POST /api/resource/HD Ticket Comment
{
  "reference_ticket": "HD-TICKET-00058",
  "content": "We've identified the issue. Deploying a fix now.",
  "commented_by": "[email protected]"
}

Where it gets tricky.

Email configuration is load-bearing

Email-to-ticket is the primary ingest channel. If Frappe's Email Account setup is wrong — wrong IMAP settings, missing domain verification, or the scheduler not pulling — tickets simply don't arrive. Test this before anything else.

SLA clock depends on support days

SLA timers only tick during defined support days and hours. If you don't configure the support schedule in the SLA policy, the clock runs 24/7 — which is either what you want or a silent misconfiguration that makes metrics meaningless.

Customer portal needs website setup

The customer-facing portal is a Frappe website route. It requires the Website module to be active and the portal pages to be properly configured. If you skip this, customers have no self-service view.

Knowledge base is basic

The KB is a simple article list with categories. No search weighting, no article versioning, no analytics on which articles deflect tickets. If you need a serious knowledge base, you may want Frappe Wiki alongside Helpdesk.

Use it for, skip it for.

Use Frappe Helpdesk when

  • You want a self-hosted ticketing system without per-agent SaaS fees.
  • You're already on Frappe and want support data on the same site — same users, same API, same permissions.
  • Your support volume is moderate (tens to hundreds of tickets/day, not thousands).
  • You want an AI agent to triage and respond to tickets via REST without a proprietary bot framework.
  • You need SLA tracking and escalation rules but don't need omnichannel (chat, social, phone IVR).

Where this leaf links.

Go deeper.