Skip to main content
The ticket management system is the core of Frappe Helpdesk, providing a complete workflow for handling customer support requests from creation to resolution.

Overview

Tickets are the primary entities in Frappe Helpdesk. Each ticket represents a customer support request and contains all communication, metadata, and history related to that request.

Creating Tickets

Tickets can be created through multiple channels:

Email

Tickets are automatically created when customers send emails to configured support addresses

Customer Portal

Customers can create tickets directly through the self-service portal

Agent Portal

Agents can manually create tickets on behalf of customers

API

Programmatically create tickets via REST API integration

Ticket Fields

Each ticket contains essential information:

Basic Information

  • Subject: Brief description of the issue
  • Description: Detailed explanation of the problem
  • Raised By: Email address of the person who created the ticket
  • Status: Current state of the ticket (Open, Resolved, Closed, etc.)
  • Priority: Urgency level (Low, Medium, High, Critical)
  • Ticket Type: Category of the issue (Bug, Question, Feature Request, etc.)

Assignment & Routing

  • Team: The support team assigned to handle the ticket
  • Assigned To: Specific agent(s) responsible for the ticket
  • Contact: Associated contact record
  • Customer: Linked customer account

SLA Tracking

  • SLA: Service Level Agreement applied to the ticket
  • Response By: Deadline for first response
  • Resolution By: Deadline for resolution
  • Agreement Status: Current SLA compliance status

Response Metrics

  • First Responded On: Timestamp of first agent reply
  • First Response Time: Duration to first response
  • Average Response Time: Mean time between communications
  • Last Agent Response: Most recent agent activity
  • Last Customer Response: Most recent customer activity

Ticket Lifecycle

1

Creation

A ticket is created via email, portal, or agent action. The system automatically sets default values for priority, type, and status.
2

Assignment

Tickets are assigned to teams and agents based on assignment rules or manual selection. Agents receive notifications when assigned.
3

Communication

Agents and customers exchange messages. All communication is tracked in the ticket timeline.
4

Resolution

Agent marks the ticket as resolved when the issue is addressed. SLA timers are stopped.
5

Feedback & Closure

Customer can provide feedback. Tickets can be automatically closed after a configured period.

Agent Ticket View

The agent ticket interface provides comprehensive tools for managing tickets:

Communication Panel

  • Email Replies: Send formatted email responses to customers
  • Internal Comments: Add notes visible only to agents
  • Activity Timeline: View complete history of ticket changes
  • Attachments: Upload and manage files

Ticket Actions

Assign

Assign or reassign tickets to specific agents

Split

Create a new ticket from part of the conversation

Merge

Combine duplicate tickets into one

Close

Mark ticket as closed when fully resolved
  • Ticket Details: Edit priority, status, type, and team
  • Contact Information: View and update customer details
  • SLA Status: Monitor response and resolution deadlines
  • Custom Fields: Access template-specific fields
  • Related Tickets: View similar or related tickets

Customer Ticket View

Customers have a simplified interface focused on communication:
  • View ticket status and details
  • Reply to agents via the ticket conversation
  • Upload attachments
  • View response time estimates
  • Close tickets when satisfied
  • Provide feedback on resolved tickets

Ticket Status Management

Tickets progress through various statuses:

Status Categories

Status categories determine ticket behavior:
  • Open: Tickets requiring attention
  • Resolved: Issues addressed, awaiting confirmation
  • Paused: Temporarily on hold
  • Closed: Completed and archived
Custom statuses can be configured per category to match your workflow.

Advanced Features

Ticket Templates

Create reusable templates with:
  • Pre-filled subject and description
  • Custom fields specific to issue types
  • Automated assignments

Ticket Splitting

When a ticket contains multiple issues:
1

Identify Secondary Issue

Recognize that the ticket contains more than one problem
2

Split Ticket

Create a new ticket containing the secondary issue
3

Maintain Context

Original conversation is copied to the new ticket

Ticket Merging

Combine duplicate tickets:
  • Link one ticket to another as primary
  • All communication is preserved
  • Merged ticket is marked and linked to primary

Auto-Close Rules

Tickets can automatically close after:
  • A configured number of days without response
  • Customer confirms resolution
  • Specific status conditions are met
Configure auto-close settings in HD Settings to reduce manual ticket maintenance.

Email Integration

Incoming Emails

  • Emails to support addresses automatically create tickets
  • Replies to ticket emails update existing tickets
  • Email threading is preserved
  • Attachments are automatically captured

Outgoing Emails

  • Agent replies are sent as emails to customers
  • Email templates can be customized
  • Email headers maintain conversation threading
  • Optional acknowledgment emails on ticket creation

Email Accounts

Multiple email accounts can be configured:
  • Different accounts for different teams
  • Automatic routing based on recipient
  • Support for custom email templates per account

Permissions & Access Control

Ticket access is controlled through:

Role-Based Permissions

  • Agents: Can view and update tickets in their teams
  • Agent Managers: Full access to team tickets
  • System Managers: Complete access to all tickets
  • Customers: Access only their own tickets

Team-Based Restrictions

Enable team restrictions in settings to limit agents to viewing only tickets assigned to their teams.

Custom Permission Rules

  • Tickets visible to assignees even outside their team
  • Customers can access tickets they raised or are linked to
  • Guest users cannot access tickets (except via special links)

Search & Filtering

Quickly find tickets using:
  • Full-text search: Search across subject, description, and comments
  • Filter by fields: Status, priority, team, agent, customer, date range
  • Saved filters: Create reusable filter combinations
  • Quick filters: Common filter presets (My Tickets, Unassigned, etc.)

Notifications

Stay informed with real-time notifications:
  • Assignment notifications: When a ticket is assigned to you
  • Mention notifications: When mentioned in comments
  • Reaction notifications: When a ticket is reopened
  • Real-time updates: Live updates when viewing tickets
Notifications are delivered both in-app and via email based on your preferences.

Analytics & Reporting

Track ticket metrics:
  • Total tickets created, resolved, and closed
  • Average response and resolution times
  • SLA compliance rates
  • Agent performance statistics
  • Ticket volume trends

Best Practices

Each ticket should address a single issue. Use ticket splitting for unrelated problems mentioned in the same conversation.
Keep ticket status current to maintain accurate SLA tracking and reporting.
Add notes for other agents using internal comments rather than customer-visible replies.
Create ticket templates for common issue types to ensure consistency and capture required information.
Don’t leave resolved tickets open indefinitely. Use auto-close rules or manual closure.

API Access

Tickets can be managed programmatically via the REST API:
# Create a ticket
ticket = frappe.get_doc({
    "doctype": "HD Ticket",
    "subject": "Unable to login",
    "description": "Customer cannot access their account",
    "raised_by": "[email protected]",
    "priority": "High"
})
ticket.insert()

# Update ticket status
frappe.db.set_value("HD Ticket", ticket.name, "status", "Resolved")

# Add a reply
ticket.reply_via_agent(
    message="Please try resetting your password.",
    to="[email protected]"
)
All API operations respect role permissions and team restrictions.

Build docs developers (and LLMs) love