/intellagent

Intellagent is a cloud-based help desk software solution for small business, powered by AI and machine learning.

Primary LanguageJavaScriptMIT LicenseMIT

Intellagent hero

Intellagent

Intellagent is a cloud-based help desk automation application, powered by machine learning. It integrates with Twitter and uses text classification to automatically triage incoming customer queries, connecting the customer to the correct agent according to agent's skillset and nature of the query. Intellagent is the result of my final year independent research project at IADT which aimed to examine machine learning and its applications for business process optimisation. This project gave me the opportunity to use new technologies and experiment with machine learning and AI.

Technologies used

Intellagent is a full stack application composed of three main components — frontend, backend and text classifier lambda function.

Frontend

React was used to create the client with Redux for state management. Tailwind CSS and Tailwind UI were used for styling the UI. Other notable technologies include Socket.IO for receiving ticket notifications in real-time from the server and Formik for form validation.

Backend

The server was created with Node and Express using the MVC design pattern. MongoDB was used for the database with the Mongoose Object Data Modelling library. The server provides a RESTful API which is secured with industry-standard encryption using Passport and JSON Web Tokens.

Text Classifier

The text classifier was written in Python and includes a pre-trained text classification model. The model was trained using scikit-learn on a data set containing 21,673 customer queries with each row associated with one of eleven possible categories such as order, refund, delivery, payment and so on. The model was then evaluated for performance on three different estimators with logistic regression yielding the best results. Lastly, the model was integrated into a Flask application and later migrated to Amazon API Gateway and AWS Lambda as a serverless function for use in production

System overview

The system uses an event-driven architecture and monitors Intellagent's Twitter account for incoming tweets and direct messages using the Twitter Account Activity API and webhooks. When a new tweet or direct message arrives, the text within is sent to the text classifier which categorises it as one of eleven predefined customer issues. Our Twitter chatbot sends a direct message to the customer to confirm if the categorisation was correct.

Upon confirmation, the system chooses an agent at random belonging to the team for this particular issue. Next, the system emits a ticket assignment event which the client receives in real-time and a notification is displayed to the agent telling them that a new ticket has arrived. The agent then engages with the customer using the messaging system which uses the Twitter Direct Message API to exchange messages back and forth. Incoming messages from Twitter are captured using webhooks, appended to the ticket and emitted back to the client using Socket.IO. Whereas outgoing messages are sent directly to the customer using the Direct Message API. This means that the agent never has to refresh the page to see new ticket messages. For the customer, the entire interaction is seamless and takes place on Twitter's website or mobile application.