Motivation
Improve the matching and suggestion flows
Boost database performance
Provide access to real time data about agents availability, suggestion queue, active assignments
Main changes
Re-implemented the ticket lifecycle in two main services- Matching Service, Suggestion Service and Assignments Service
Introduced Different types and number of databases
No UI changes
Ticket:
The ticket flow from the point it was triggered by the user- requesting a service through the app, going through the phase where its been matched and suggested to agents who can handle based on their tiers and certification, till the point the ticket is completed and closed.
below is a diagram to show the ticket lifecycle nodes.
Trigger: trigger the ticket from multiple sources (system, app-x [stuff app, web app, etc...]), the trigger should carry the needed data to create the ticket based on the request<>user details
Create: after triggering the ticket, the system generate a new ticket inside the system, with the relevant ticket type, and user request request to move it to the matching step
Match: in this step, the created ticket will be matched to the relevant available (online) agents that holds certificate/s that make them eligible to handle this ticket type
Suggest: ticket will be stored in the suggestion databases according to the matching results, and these tickets will be suggested to agents based on some configurations
Assign: ticket will be assigned to a specific agent to handle it and start working on it
Close: last step of handling the ticket, based on multiple triggers to close it, including User marking ticket as complete.