When evaluating helpdesk solutions for small-to-medium businesses (SMBs), we need to distinguish between ticket management systems (like ZenDesk) and development issue trackers (like JIRA). The ideal solution should:
- Handle customer support requests efficiently
- Include asset tracking capabilities
- Scale for SMB operations
- Offer self-service portals
- Support multiple communication channels
After testing several solutions, these stand out for technical teams:
1. osTicket (PHP/MySQL)
This mature solution offers excellent ticket management with a clean API for integrations. Sample API call to create a ticket:
POST /api/http.php/tickets.json
{
"name": "John Doe",
"email": "john@example.com",
"subject": "Printer not working",
"message": "Getting error code 0x6100004a",
"topicId": "1"
}
Includes basic asset tracking through plugins like AssetTrack
.
2. UVDesk (Symfony/PHP)
A modern alternative with built-in asset management. Example of their YAML configuration for asset tracking:
uvdesk:
asset_tracking:
enabled: true
categories:
- name: Hardware
fields:
- { name: "Serial Number", type: "string" }
- { name: "Purchase Date", type: "date" }
- name: Software
fields:
- { name: "License Key", type: "encrypted" }
For teams comfortable with DevOps:
Solution | Hosting | Asset Tracking | API |
---|---|---|---|
osTicket | Self-hosted | Via plugins | REST |
UVDesk | Both | Native | GraphQL |
Zammad | Both | Limited | REST |
When deploying these solutions, consider these technical factors:
- Database requirements (MySQL vs PostgreSQL)
- PHP version compatibility
- LDAP/Active Directory integration needs
- Web server configuration (Nginx rules often needed)
For Docker deployments, here's a sample compose snippet for osTicket:
version: '3'
services:
osticket:
image: osticket/osticket
ports:
- "8080:80"
environment:
MYSQL_HOST: db
MYSQL_USER: osticket
MYSQL_PASSWORD: secret
MYSQL_DATABASE: osticket
Remember to evaluate based on your specific workflow requirements rather than just feature lists. The open-source nature allows customization that commercial solutions can't match.
Many developers confuse helpdesk systems with bug trackers like JIRA. While both handle tickets, helpdesk software specializes in:
- Customer-facing ticket portals
- SLA management
- Knowledge base integration
- Multi-channel support (email/chat/phone)
- End-user self-service options
After evaluating 15+ systems, these stand out for SMBs:
# Sample API call to OSTicket (Python example)
import requests
api_url = "https://yourdomain.com/api/tickets.json"
headers = {
"X-API-Key": "your_api_key",
"Content-Type": "application/json"
}
payload = {
"name": "John Doe",
"email": "john@example.com",
"subject": "Printer issue",
"message": "Unable to connect to network printer",
"topicId": "1"
}
response = requests.post(api_url, json=payload, headers=headers)
print(response.json())
For IT teams needing hardware/software inventory:
Software | Native Asset Tracking | Integration Methods |
---|---|---|
GLPI | Yes | Built-in inventory system |
OSTicket | No | Requires plugins like AssetTracker |
UVDesk | Partial | REST API for custom solutions |
When deploying open-source helpdesk solutions:
- Check PHP version requirements (most are PHP-based)
- Evaluate mobile responsiveness for field technicians
- Test CSV import functions for migrating existing tickets
- Verify LDAP/Active Directory compatibility
Adding custom fields in OSTicket:
-- SQL for adding custom asset tracking fields
ALTER TABLE ost_ticket__cdata
ADD COLUMN asset_id VARCHAR(32) AFTER priority_id,
ADD COLUMN warranty_expiry DATE;
-- Then modify the ticket creation form in
-- /include/client/tickets.inc.php
At ~50,000 tickets, consider:
- MySQL query optimization
- Implementing Elasticsearch for full-text search
- Scheduled ticket archiving
- Redis caching for frequent queries
For teams needing more enterprise features, the paid versions of Zammad or UVDesk offer better scalability while maintaining open-source roots.