Round Robin
Note
This is an informational page for the round robin. It may not reflect the way we actually manage the round robin.
If you are looking for information about maintaining round robin, please see Round Robin workflow
How is it triggered
The round robin runs via gitLab Scheduled pipelines using a specific schedule for each Zendesk instance:
- Global: N/A
- US Government: Every 10 minutes between the hours 05xx to 16xx (Pacific time) Monday through Friday (
*/10 5-16 * * 1-5
)
How it works
Zendesk US Government
- Ruby version:
3.2.2
- Gem list:
- CI/CD Images:
curlimages/curl:latest
ruby:3.2.2
Before each job runs, it performs a few actions to setup the image to perform the needed actions:
- Clones the repo at suppport-team to
data/support-team
- Output the response from running the command
ruby -v
- Install the
bundler
gem - Run the
bundle
command - Put the values of the environment variable
SERVICE_CREDS
into the filedata/config.json
After this, the ./bin/round_robin
script is executed.
Using a pre-made view, the script will get alist of tickets to round robin. If there are no tickets, the script will exit with a status code of 0.
The script will then determine the currently available agents by checking the suppport-team information, remove any agents on PTO, and remove any agents not currently within working hours. In the event no agents are available, it will post a notification to a Slack control via a Support controlled Slack incoming webhook (and exit with a status code of 0).
Using the list of currently available agents, it will then determine the current workloads of said agents (this is done by looking at assigned tickets with a status lower than solved) using the Ticket Weight
field on the tickets it locates.
After gathering the tickets in need of being round robin’d (using the Not round robined view), the script will then assign them out to the agent with the lowest workload (incrementing their workload by 1).
Source projects
337af027
)