Help desk software is priced per agent, and agents are exactly what a growing support team adds. At some point a manager notices that the tool costs more than the coffee for the people using it and asks what the alternatives are. This post follows a support manager evaluating osTicket, the long-running open-source help desk, on MassiveGRID PaaS, which is built on Virtuozzo Application Platform, formerly Jelastic, against the Zendesk subscription it would replace.
The company is an electronics components distributor we will call Voltaic Supply: 20 support agents, 900 tickets a week arriving by email and web form, warranty claims that need attachments, and customers who expect a portal to check status. The osTicket package installs osTicket on a PHP application server with the IMAP and GD extensions and a MariaDB database, with the installer completed.
What osTicket does, mapped to what Zendesk did
osTicket routes requests from email, web forms and its API into a single ticket queue with departments, teams and agents; it has SLA plans with due dates and escalation alerts, canned responses, ticket filters that auto-assign by rule, custom forms and fields, internal notes, a knowledge base and a customer portal where clients open and follow tickets. That list covered every Zendesk feature Voltaic's agents actually used. The manager listed the ones it did not: Zendesk's built-in chat widget, its reporting dashboards, its marketplace of integrations, and its mobile app. She weighed each: chat was being handled elsewhere anyway, reports could be built from osTicket's database, the two integrations that mattered (LDAP for agent login and a chat-notification plugin) exist as osTicket plugins, and agents work from desks.
Email in, email out
Support lives on email, and this is where a self-hosted desk earns or loses trust. osTicket fetches mail from each support mailbox over IMAP on a schedule, or accepts mail piped directly from a mail server, and turns each message into a ticket or a reply on an existing one by matching its threading headers. Outbound replies go through the company's SMTP relay with the ticket number in the subject. The manager configured three mailboxes (sales support, technical support, warranties), each routed to its department by a ticket filter, with the IMAP fetch running from the platform's cron every two minutes rather than on page loads. Attachments, the warranty photographs, are stored in the database by default; osTicket's S3 plugin or filesystem storage are the alternatives when volume grows, and the manager chose filesystem storage on the node's persistent disk with a disk load alert.
The comparison the finance director saw
| Item | Zendesk (hosted) | osTicket on PaaS |
|---|---|---|
| Licence | Per agent per month, tiered | None (GPL) |
| 20 agents, growing to 30 | Bill rises with every agent | No change |
| Hosting | Included | PHP node and MariaDB node, per cloudlet-hour |
| Email channels, SLAs, portal, canned replies | Yes | Yes |
| Live chat, native mobile app | Yes | No; third-party chat, responsive web |
| Data location | Vendor's regions | London or Frankfurt, chosen by Voltaic |
| Ticket data export | Via API and export tools | It is your MariaDB |
The osTicket environment for 20 agents and 900 tickets a week is small: a PHP node at 6 to 10 cloudlets during the day and a MariaDB node at 4 to 6 (a cloudlet is 128 MiB of RAM plus 400 MHz of CPU), averaging about 12 cloudlets an hour, or roughly $29 a month before discounts at MassiveGRID's published $0.003372 per cloudlet-hour, plus the attachments disk. The Zendesk line for 20 agents on the tier with SLAs and the portal was a four-figure monthly sum, and the finance director noticed that the osTicket figure did not change when the manager added ten agents to the projection.
Migration weekend
osTicket has no Zendesk importer, so the manager's IT contractor exported open and recent tickets from Zendesk through its API and loaded them into osTicket through its own API, keeping ticket numbers in a custom field and attaching the original conversation as notes. Closed tickets older than a year were archived as a searchable export rather than migrated. Customers received one email explaining that the portal had moved and that their open tickets were intact; the reply address stayed the same, because the mailboxes did not move, only what read them. The contractor rehearsed the whole import twice on a clone of the osTicket environment before running it on production, and deleted the clones afterwards.
Keeping it running
The operational list is short. The Database Backup/Restore add-on dumps MariaDB nightly to a backup storage node, and the attachments directory is archived by a scheduled job to the same node. The Let's Encrypt add-on keeps the certificate for support.voltaic.example renewed. osTicket releases are applied by cloning, upgrading the clone (copy the new release over the old files, run the upgrader, check the plugins), then production. The platform's load alerts have fired once, when a customer attached a 200 MB video to a warranty ticket and the PHP upload limit needed raising in the node's configuration.
What the agents said
The agents' verdict after a quarter was that the queue view was plainer than Zendesk's and the search was better; that canned responses and SLA alerts worked the same; and that the customer portal produced fewer "what is the status" emails because customers could see the status. The manager's verdict was a help desk that will not get more expensive when the company hires, held in a region the company chose, with its ticket history in a database the company can query.
Frequently Asked Questions
Can osTicket authenticate agents against Active Directory or LDAP?
Yes, through the official LDAP plugin, for both agents and, optionally, portal users. Configure it against your directory over the internal network or VPN and agents log in with their company credentials.
How many agents and tickets can one osTicket environment handle?
osTicket runs help desks with hundreds of agents and tens of thousands of tickets a month on a single PHP and database pair. Raise the cloudlet limits as volume grows; the database is the component that grows with ticket history, and the platform's storage expands from the dashboard.
Is there a hosted osTicket if we do not want to self-host?
osTicket's developers offer a hosted service priced per agent. The self-hosted Community edition is the free one and is what the marketplace package installs; MassiveGRID's managed support plans can take over the operations if your team would rather not.
A help desk that does not charge for hiring
The osTicket package installs osTicket with a PHP server and MariaDB in one click on MassiveGRID PaaS, in the region you choose, billed per cloudlet-hour with no per-agent licence. Free 14-day trial, no credit card.
osTicket on MassiveGRID PaaS