Support Ticket System
EMS Software Development / February 2005
Goals
- Create a single, structured system for managing all customer inquiries so support, developers, and translators could work within one shared ticket instead of scattered channels.
- Enable a controlled, state‑based workflow that allowed multiple roles to collaborate efficiently while keeping customer‑visible communication clean and appropriate.
- Improve response times and service quality by enforcing deadlines at both the ticket and workflow‑state levels, ensuring predictable handoffs and faster resolutions.
- Provide a consistent, transparent process for both pre‑sales and post‑sales support, reducing errors and improving the overall customer experience.
The system was built as a thick‑client desktop application that communicated with a centralized backend through SOAP. The client handled most of the interaction logic, while the server exposed structured SOAP endpoints for creating tickets, updating workflow states, exchanging messages, and enforcing SLA rules. This setup kept the interface fast and responsive for support agents and developers while ensuring that all data and workflow logic remained consistent on the server. At its core, the system used a state‑driven workflow model that allowed multiple roles to collaborate on the same ticket without losing context. A ticket moved through a sequence of states such as customer, support, developer, support again, translation, and back to the customer. Each state defined which roles were allowed to act, what actions they could take, and which messages were visible externally. Internal discussions between support, developers, and translators stayed inside the same ticket but were hidden from the customer unless the ticket was in a customer‑facing state. This allowed teams to work together freely while keeping communication with the customer clean and professional. The thick client provided a unified message timeline, state‑aware actions, and automatic tagging of internal versus customer‑visible messages. All participants worked inside the same ticket thread, which eliminated the need for separate email chains or manual tracking. The system also enforced deadlines at two levels: each workflow state had its own response time requirement, and the ticket itself had an overall SLA. The server tracked these deadlines, flagged overdue items, and escalated when necessary. This ensured predictable handoffs between roles and helped the organization respond to customers as quickly as possible. By combining a structured workflow, role‑based visibility, and automated SLA management, the system replaced scattered communication channels with a single, reliable process. Support teams gained full visibility into ticket history, developers received complete context for technical issues, and customers experienced faster, more consistent service across both pre‑sales and post‑sales interactions.
Outcomes
- The support team moved from scattered communication to a single, structured workflow, which eliminated lost messages and made every ticket fully traceable from creation to closure.
- Collaboration between support, developers, and translators became faster and more reliable because all roles worked inside the same ticket with clear state transitions and no need for side channels.
- Response times improved as state‑level and ticket‑level deadlines reduced bottlenecks, cut down on overdue cases, and created a more predictable service process.
- Customers received clearer, more consistent communication, since only customer‑appropriate messages were visible and every handoff happened within a controlled workflow.