Skip to content

Ticket Management

This comprehensive guide covers all aspects of ticket management in HelpDesk Pro, from creating tickets to resolving customer issues.

Understanding Tickets

What is a Ticket?

A ticket is a formal record of a customer's support request. Each ticket contains:

  • Unique ID - System-generated identifier
  • Subject - Brief description of the issue
  • Description - Detailed problem description
  • Customer Information - Contact details and history
  • Status - Current state of the ticket
  • Priority - Urgency level
  • Category - Type of issue
  • Assigned Agent - Who is handling the ticket
  • Timestamps - Creation, updates, and resolution times

Ticket Lifecycle

mermaid
graph LR
    A[New Ticket] --> B[Open]
    B --> C[In Progress]
    C --> D[Pending Customer]
    D --> C
    C --> E[Resolved]
    E --> F[Closed]
    F --> G[Archived]

Creating Tickets

Method 1: From Dashboard

  1. Navigate to Tickets → Create Ticket

  2. Fill Out Ticket Form:

    Subject: Brief description of the issue
    Description: Detailed problem description
    Customer: Select existing or create new
    Category: Choose appropriate category
    Priority: Set urgency level
    Department: Assign to department
    Due Date: Set deadline (optional)
  3. Add Attachments (if needed):

    • Click "Add Files" button
    • Select files from your computer
    • Supported formats: JPG, PNG, PDF, DOC, TXT, ZIP
    • Maximum file size: 10MB per file
  4. Submit Ticket:

    • Review all information
    • Click "Create Ticket"
    • System generates unique ticket ID

Method 2: From Customer Profile

  1. Go to Users → Customers
  2. Find the customer
  3. Click "Create Ticket" button
  4. Fill out ticket form (customer info pre-filled)
  5. Submit ticket

Method 3: Public Ticket Submission

Customers can create tickets through your public website:

  1. Visit your support page

  2. Fill out public ticket form:

    Name: Customer's full name
    Email: Valid email address
    Subject: Issue description
    Description: Detailed problem
    Category: Select from dropdown
    Priority: Choose urgency level
  3. Submit ticket (creates customer account if needed)

Managing Tickets

Ticket List View

View Options

  1. Grid View - Card-based layout with visual elements
  2. List View - Compact table format
  3. Kanban View - Drag-and-drop status management

Filtering Tickets

javascript
// Available filters
const filters = {
    status: ['open', 'in_progress', 'pending', 'resolved', 'closed'],
    priority: ['low', 'medium', 'high', 'urgent'],
    category: ['technical', 'billing', 'general', 'feature_request'],
    department: ['support', 'sales', 'billing'],
    agent: ['john.doe', 'jane.smith', 'unassigned'],
    date_range: ['today', 'this_week', 'this_month', 'custom'],
    customer: 'Search by customer name or email'
}

Sorting Options

  • Date Created (Newest/Oldest)
  • Last Updated (Recent/Old)
  • Priority (High to Low)
  • Status (Alphabetical)
  • Customer (A-Z)
  • Agent (A-Z)

Ticket Details View

Ticket Information Panel

php
// Ticket detail structure
$ticket = [
    'id' => 'TKT-2025-001',
    'subject' => 'Login issues after system update',
    'status' => 'in_progress',
    'priority' => 'high',
    'category' => 'technical',
    'customer' => [
        'name' => 'John Smith',
        'email' => 'john@example.com',
        'phone' => '+1-555-0123',
        'company' => 'Acme Corp'
    ],
    'agent' => 'jane.smith@company.com',
    'department' => 'Technical Support',
    'created_at' => '2025-01-15T10:30:00Z',
    'updated_at' => '2025-01-15T14:45:00Z',
    'due_date' => '2025-01-16T18:00:00Z',
    'sla_status' => 'on_track'
];

Quick Actions

  • Reply - Respond to customer
  • Assign - Change ticket assignment
  • Escalate - Move to higher priority
  • Close - Resolve and close ticket
  • Merge - Combine with related tickets
  • Add Note - Internal agent note

Ticket Conversations

Adding Comments

Customer-Facing Comments

  1. Open ticket details

  2. Scroll to conversation section

  3. Type your response in the text editor

  4. Format text using toolbar options:

    • Bold, italic, underline
    • Bullet points and numbering
    • Links and images
    • Code blocks
  5. Add attachments (if needed)

  6. Choose visibility:

    • Public - Customer can see
    • Internal - Agents only
  7. Click "Send Reply"

Internal Notes

  1. Click "Add Internal Note"

  2. Type private note for other agents

  3. Set note type:

    • General note
    • Escalation reason
    • Resolution steps
    • Customer feedback
  4. Save note

Conversation Thread

Timeline View

  • Chronological order of all interactions
  • User avatars for easy identification
  • Timestamps for each message
  • Message types clearly labeled
  • Attachment indicators

Rich Text Editor Features

html
<!-- Supported formatting -->
<b>Bold text</b>
<i>Italic text</i>
<u>Underlined text</u>
<a href="url">Links</a>
<img src="image.jpg" alt="Image">
<code>Code snippets</code>
<ul><li>Bullet points</li></ul>
<ol><li>Numbered lists</li></ol>

Ticket Status Management

Available Statuses

Default Statuses

  • Open - New ticket, awaiting assignment
  • In Progress - Agent is working on the ticket
  • Pending Customer - Waiting for customer response
  • Resolved - Issue fixed, awaiting customer confirmation
  • Closed - Ticket completed and archived

Custom Statuses

You can create additional statuses:

  • Awaiting Approval - Needs manager approval
  • On Hold - Temporarily paused
  • Escalated - Moved to senior support
  • Duplicate - Similar to existing ticket

Changing Ticket Status

Method 1: Quick Status Change

  1. In ticket list view
  2. Click status dropdown on ticket card
  3. Select new status
  4. Add optional comment
  5. Confirm change

Method 2: From Ticket Details

  1. Open ticket details
  2. Click "Change Status" button
  3. Select new status
  4. Add status change reason
  5. Notify customer (optional)
  6. Save changes

Status Change Rules

php
// Status transition rules
$statusRules = [
    'open' => ['in_progress', 'closed'],
    'in_progress' => ['pending_customer', 'resolved', 'closed'],
    'pending_customer' => ['in_progress', 'closed'],
    'resolved' => ['closed', 'in_progress'],
    'closed' => ['open'] // Reopen if needed
];

Ticket Assignment

Assigning Tickets

Method 1: Quick Assignment

  1. In ticket list view
  2. Click "Assign" button
  3. Select agent from dropdown
  4. Add assignment note (optional)
  5. Confirm assignment

Method 2: From Ticket Details

  1. Open ticket details

  2. Click "Assign Ticket" button

  3. Choose assignment method:

    • Manual - Select specific agent
    • Auto-assign - System chooses based on workload
    • Department - Assign to department head
  4. Set assignment reason

  5. Notify agent (optional)

  6. Save assignment

Auto-Assignment Rules

Workload-Based Assignment

php
// Auto-assignment algorithm
$assignmentRules = [
    'workload_balance' => true,
    'skill_matching' => true,
    'department_routing' => true,
    'priority_handling' => true,
    'max_tickets_per_agent' => 10
];

Skill-Based Assignment

  • Technical Issues → Technical Support Team
  • Billing Questions → Billing Department
  • Feature Requests → Product Team
  • General Inquiries → General Support

Reassigning Tickets

When to Reassign

  • Agent is unavailable
  • Issue requires different expertise
  • Customer requests different agent
  • Escalation to senior support

Reassignment Process

  1. Click "Reassign" button
  2. Select new agent
  3. Add reassignment reason
  4. Transfer ticket history
  5. Notify both agents
  6. Update ticket status

Ticket Priority Management

Priority Levels

Default Priorities

  • Low (Green) - Non-urgent issues
  • Medium (Yellow) - Standard requests
  • High (Orange) - Important issues
  • Urgent (Red) - Critical problems

Priority Guidelines

php
// Priority assignment guidelines
$priorityGuidelines = [
    'urgent' => [
        'description' => 'System down, security breach',
        'sla_time' => '1 hour',
        'escalation_time' => '30 minutes'
    ],
    'high' => [
        'description' => 'Major feature broken',
        'sla_time' => '4 hours',
        'escalation_time' => '2 hours'
    ],
    'medium' => [
        'description' => 'Standard support request',
        'sla_time' => '24 hours',
        'escalation_time' => '12 hours'
    ],
    'low' => [
        'description' => 'Minor issues, questions',
        'sla_time' => '72 hours',
        'escalation_time' => '48 hours'
    ]
];

Changing Priority

Method 1: Quick Priority Change

  1. In ticket list view
  2. Click priority indicator
  3. Select new priority
  4. Add priority change reason
  5. Confirm change

Method 2: From Ticket Details

  1. Open ticket details
  2. Click "Change Priority" button
  3. Select new priority level
  4. Add justification
  5. Update SLA deadline
  6. Save changes

Ticket Categories and Types

Managing Categories

Default Categories

  • Technical Issues - System problems, bugs
  • Billing Questions - Payment, invoices, refunds
  • Feature Requests - New functionality requests
  • General Inquiries - Questions, information
  • Account Issues - Login, profile problems

Creating Custom Categories

  1. Go to Settings → Categories

  2. Click "Create Category"

  3. Fill out category form:

    Name: Category name
    Description: Brief description
    Parent Category: Main category (optional)
    Department: Assigned department
    Color: Visual identifier
    Icon: Category icon
  4. Set category rules:

    • Auto-assignment rules
    • SLA requirements
    • Escalation procedures

Ticket Types

Default Types

  • Incident - Something is broken
  • Service Request - Request for service
  • Change Request - System modification
  • Problem - Root cause analysis

Type-Specific Workflows

php
// Type-specific handling
$typeWorkflows = [
    'incident' => [
        'priority' => 'high',
        'sla' => '4 hours',
        'escalation' => '2 hours'
    ],
    'service_request' => [
        'priority' => 'medium',
        'sla' => '24 hours',
        'escalation' => '12 hours'
    ],
    'change_request' => [
        'priority' => 'low',
        'sla' => '72 hours',
        'approval_required' => true
    ]
];

Ticket History and Audit Trail

Viewing Ticket History

Complete Timeline

  1. Open ticket details
  2. Click "History" tab
  3. View chronological events:
    • Ticket creation
    • Status changes
    • Assignments
    • Comments added
    • Attachments uploaded
    • Priority changes
    • Category updates

History Event Types

php
// History event types
$historyEvents = [
    'ticket_created' => 'Ticket was created',
    'status_changed' => 'Status changed from X to Y',
    'assigned' => 'Ticket assigned to agent',
    'reassigned' => 'Ticket reassigned to different agent',
    'priority_changed' => 'Priority changed from X to Y',
    'category_changed' => 'Category changed from X to Y',
    'comment_added' => 'Comment added by user',
    'attachment_added' => 'File attached',
    'escalated' => 'Ticket escalated',
    'closed' => 'Ticket closed',
    'reopened' => 'Ticket reopened'
];

Audit Trail Features

Detailed Logging

  • User actions - Who did what
  • Timestamps - When actions occurred
  • IP addresses - Where actions came from
  • Change details - What exactly changed
  • Reason codes - Why changes were made

Export History

  1. Click "Export History" button
  2. Choose export format:
    • PDF report
    • Excel spreadsheet
    • CSV data file
  3. Select date range
  4. Download file

Bulk Operations

Selecting Multiple Tickets

Selection Methods

  • Individual selection - Click checkboxes
  • Select all - Select all visible tickets
  • Filter selection - Select by criteria
  • Range selection - Select ticket range

Bulk Actions Available

php
// Available bulk operations
$bulkActions = [
    'change_status' => 'Update status for multiple tickets',
    'change_priority' => 'Update priority for multiple tickets',
    'assign_agent' => 'Assign tickets to agent',
    'change_category' => 'Update category for multiple tickets',
    'add_tag' => 'Add tags to multiple tickets',
    'export' => 'Export ticket data',
    'delete' => 'Delete multiple tickets',
    'merge' => 'Combine related tickets'
];

Performing Bulk Operations

Example: Bulk Status Change

  1. Select multiple tickets
  2. Click "Bulk Actions" button
  3. Choose "Change Status"
  4. Select new status
  5. Add bulk operation reason
  6. Confirm changes
  7. Review results

Bulk Assignment

  1. Select tickets to assign
  2. Choose "Assign Agent"
  3. Select target agent
  4. Set assignment reason
  5. Confirm assignment
  6. Verify assignments

Advanced Ticket Features

Ticket Merging

When to Merge Tickets

  • Duplicate tickets from same customer
  • Related issues that should be handled together
  • Multiple tickets about same problem
  • Customer submitted same issue multiple times

Merge Process

  1. Select tickets to merge
  2. Click "Merge Tickets"
  3. Choose primary ticket (keeps original ID)
  4. Set merge reason
  5. Confirm merge operation
  6. Review merged ticket

Ticket Splitting

When to Split Tickets

  • Single ticket contains multiple issues
  • Different departments need to handle parts
  • Customer has multiple unrelated problems
  • Complex issue needs separate tracking

Split Process

  1. Open ticket to split
  2. Click "Split Ticket" button
  3. Select content to move
  4. Create new ticket
  5. Set new ticket details
  6. Confirm split operation

Ticket Templates

Creating Templates

  1. Go to Settings → Templates

  2. Click "Create Template"

  3. Fill out template:

    Name: Template name
    Subject: Default subject
    Description: Template content
    Category: Default category
    Priority: Default priority
    Department: Default department
  4. Save template

Using Templates

  1. Click "Create Ticket"
  2. Select "Use Template"
  3. Choose template
  4. Customize content
  5. Submit ticket

SLA Management

SLA Configuration

Setting SLA Times

php
// SLA configuration example
$slaSettings = [
    'urgent' => [
        'first_response' => '1 hour',
        'resolution' => '4 hours',
        'business_hours' => true
    ],
    'high' => [
        'first_response' => '4 hours',
        'resolution' => '24 hours',
        'business_hours' => true
    ],
    'medium' => [
        'first_response' => '24 hours',
        'resolution' => '72 hours',
        'business_hours' => false
    ],
    'low' => [
        'first_response' => '72 hours',
        'resolution' => '168 hours',
        'business_hours' => false
    ]
];

SLA Monitoring

  • Response time tracking - Time to first response
  • Resolution time tracking - Time to close ticket
  • Breach alerts - Notifications when SLA is at risk
  • Performance reports - SLA compliance metrics

Escalation Rules

Automatic Escalation

php
// Escalation rules
$escalationRules = [
    'time_based' => [
        'trigger' => 'SLA breach imminent',
        'action' => 'Notify manager',
        'time' => '30 minutes before breach'
    ],
    'priority_based' => [
        'trigger' => 'Urgent ticket not assigned',
        'action' => 'Auto-assign to senior agent',
        'time' => '15 minutes'
    ],
    'customer_based' => [
        'trigger' => 'VIP customer ticket',
        'action' => 'Immediate notification',
        'time' => 'Immediate'
    ]
];

Best Practices

Ticket Management Best Practices

For Agents

  1. Respond Quickly - Meet SLA requirements
  2. Use Clear Language - Professional communication
  3. Update Status Regularly - Keep customers informed
  4. Add Internal Notes - Document your actions
  5. Follow Up - Ensure customer satisfaction

For Managers

  1. Monitor Performance - Track team metrics
  2. Review Escalations - Handle complex issues
  3. Provide Training - Improve team skills
  4. Optimize Workflows - Streamline processes
  5. Analyze Trends - Identify common issues

For Customers

  1. Provide Clear Information - Detailed problem description
  2. Include Relevant Details - System info, error messages
  3. Attach Files - Screenshots, logs, documents
  4. Respond Promptly - Answer agent questions quickly
  5. Rate Service - Provide feedback on resolution

Common Mistakes to Avoid

Agent Mistakes

  • ❌ Not updating ticket status
  • ❌ Using unclear language
  • ❌ Not following up with customers
  • ❌ Ignoring SLA requirements
  • ❌ Not documenting actions

Customer Mistakes

  • ❌ Vague problem descriptions
  • ❌ Not providing contact information
  • ❌ Submitting duplicate tickets
  • ❌ Not responding to agent questions
  • ❌ Not rating service quality

Troubleshooting

Troubleshooting Common Issues

Ticket Not Appearing

  1. Check filters - Ensure ticket isn't filtered out
  2. Verify permissions - Confirm access rights
  3. Refresh page - Clear browser cache
  4. Check assignment - Verify ticket assignment

Email Notifications Not Working

  1. Check SMTP settings - Verify email configuration
  2. Review notification preferences - Check user settings
  3. Check spam folder - Look for blocked emails
  4. Test email delivery - Send test message

Performance Issues

  1. Clear browser cache - Refresh page data
  2. Check internet connection - Verify connectivity
  3. Reduce ticket list size - Use filters to limit results
  4. Contact administrator - Report persistent issues

Getting Help

Support Resources

  • Documentation - Comprehensive guides
  • Video Tutorials - Step-by-step instructions
  • Community Forum - User discussions
  • Email Support - Direct assistance

Contact Information

Next Steps

  1. Explore Live Chat for real-time communication
  2. Learn Knowledge Base for self-service support
  3. Set up AI Features for intelligent automation
  4. Review Analytics for performance insights

Master Ticket Management to provide exceptional customer support. Start with basic operations and gradually explore advanced features as you become more comfortable with the system.

Released under the MIT License.