Skip to content

thejuliaguenther/support-genius

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

SupportGenius

SupportGenius turns support tickets into valuable customer insights. Designed for customer success and support managers in data-driven organizations, SupportGenius leverages the power of machine learning to predict how customer and agent actions influence each other and identify similar customers. This, along with statistics such as the most common times that tickets are submitted, allows users to make smarter decisions about customer success and support strategy.

Technical Stack

PostgreSQL, Scikit-learn, NumPy, D3.js, Highcharts.js, Python fake-factory, Python, SQLAlchemy, Flask, JavaScript, jQuery, jQueryUI, AJAX, HTML/CSS, Bootstrap, Mashape Text-Processing API (Sentiment Analysis API)

Data

This is an enterprise software application. In this demo, the data represents the support tickets from October 2015 for a fictitious company that sells to businesses. Thus, the data is reandomly created.

  • Ticket contents were generated using Markov chains in Python creating new text snippets from separate positive and negative text files
  • Agent names are members of Hackbright Cohort 12
  • Company names were created using a random company name generator
  • Customer names were randomly generated using the Python fake-factory library
  • Ticket submission, first response, and resolution times were randomly generated using Python fake-factory library
  • Agents were randomly assigned to tickets; customers were randomly assigned to companies, roles, and tickets; and companies were randomly assigned to different locations, support tiers, and industries. Note: since the data was created randomly, it does not demonstrate strong linear relationships between the independent and dependent variables. Were this data real support data, there may be a stronger linear relationship or not, depending on a number of factors specifc to the organization, the structure of their support team, and their customers

Features

D3.js: Ticket Data Graphs

Highcharts.js: Scikit-learn Machine Learning Graphs

  • Linear regression calculated using scikit-learn: Ticket submission time and response time ![response time regression] (https://cloud.githubusercontent.com/assets/13442273/11617377/ce2a396c-9c42-11e5-9cad-f7057a0279f3.png)
    • Shows the realationship between the time of day a ticket is submitted (the independent variable) and the time it takes an agent to respond to the ticket (the dependent variable)
    • Contains tooltips showing the x and y values for each scatter point
    • Drawn using Highcharts.js as it facilitates linear regression graphs
  • Linear regression calculated using scikit-learn: Agent-customer interactions and resolution time ![agent touches resolution] (https://cloud.githubusercontent.com/assets/13442273/11617388/144bf3fe-9c43-11e5-9439-87d125d03c0e.png)
    • Shows the relationship between the number of agent touches (the number of times the agent reaches out to a customer) and the amount of time it takes to resolve the ticket
    • Contains tooltips showing the x and y values for each scatter point
    • Drawn using Highcharts.js as it facilitates linear regression graphs
  • Meanshift calculated using scikit-learn: Customer clustering ![meanshift bar graph] (https://cloud.githubusercontent.com/assets/13442273/11617232/d21bfa08-9c40-11e5-9349-1cb47772ee60.png)
    • Shows the tickets separated into clusters based on the industry, support tier, and location of the company submitting the ticket; whether or not the company submitting the ticket is a pilot; the agent assigned to the ticket; and the sentiment of the ticket's text according to the text processing API.
    • Contains tooltips showing the total number of positive, negative, and neutral tickets in each cluster

jQuery UI: Cluster Information Box

![cluster info] (https://cloud.githubusercontent.com/assets/13442273/11617306/b4b89362-9c41-11e5-9a0d-41dda5355fc9.png)

  • Box with tabs provides a drilldown into the contents of the clusters identified by the Meanshift algorithm
  • The average percent negative of negative tickets and average percent positive of positive tickets is the average percent certainty that the ticket is positive or negative as determined by the Mashape Text-Processing API

Bootstrap: Ticket Tables and Views

![main ticket view] (https://cloud.githubusercontent.com/assets/13442273/11616046/a4a89d58-9c25-11e5-9a16-05ecd367e479.png)

  • Additionally, view tickets in three different views by clicking the views menu:

  • All bootstrap tables showing tickets built using Jinja templates that allow the tables to update dynamically with information from the database; this allows the tables to update with additional data when it is added.

PostgreSQL Database

  • SupportGenius is a product intended for the enterprise. Large companies that have millions of users will receive thousands of tickets in an hour.
  • PostgreSQL provides enterprise-scaling capeabilities, making it an excellent choice for this app

Testing

  • Included doc string tests; working on unit tests

Next Steps

  • Deployment on Heroku
  • Dig into clusters to see customers in each cluster and get more data for each group of customers; see all the tickets for each cluster
  • Calculate which customers are at risk of discontinuing the service
  • Notifications to managers and agents when a ticket from an at-risk customer is submitted

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published