Skip to content
I don't like checking my email for helpdesk tickets, so I delegated that task to a robot.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
index.js
package-lock.json
package.json
polly.js
sample.env

README.md

Christian SLAter

or: How I Learned to Stop Checking Emails and Still Meet SLA's

Christian SLAter

I'm a web developer who hates checking emails, but our service-level agreement says that I need to respond to helpdesk tickets in my queue within 45 minutes of them being assigned.

That's not GREAT, as having to shift focus from working on a project to checking my email for tickets takes time. It also takes time to fall back into a coding groove.

I really hate checking emails... So I made SLAter to yell at me over a speaker system whenever I get a new ticket in my queue.

The best part is that this is really easy to set up, especially if your team is using DeskPro. Let's dive in:

Materials:

  • Raspberry Pi (I'm using a Pi 3 Model B)
  • Micro USB Power Cable
  • Ethernet Cable
  • Speaker With 3.5 mm Jack
  • An account with AWS (For Text-To-Speech Using Polly)
  • Rad Picture of Christian Slater (Optional)

Setup:

  1. Install Raspbian and Node.JS on your Pi. I used this guide from W3 schools.
  2. Install MariaDB Server onto your pi using this guide and then run mysql-secure-installation to get it configured.
  3. Create a slater database with a ticket_log table using this gist.
  4. Then, create a MySQL user named slater that has read/write access to the above database/table.
  5. Git clone this project anywhere on your Pi. I used the /home/pi/ directory.
  6. Change directory (cd) into SLAter.
  7. Run the npm installer (npm install) to install required packages locally.
  8. Fill sample.env with the values related to your local MySQL database, your DeskPro API, and AWS account then change the file from sample.env to .env.
  9. In index.js change the agent (tech) ID in three spots: in the API call within getTicketsFromAPI(), in the db.queryAsync query in getTicketsFromDB(), and in the db.queryAsync query in writeTicketToDB().

Run:

  1. In a tmux session (so you can close the SSH connection without upsetting Node) run node index.js. SLAter should tell you that he's online and then check for new tickets every 60 seconds.
You can’t perform that action at this time.