Giter Site home page Giter Site logo

employee-support-bot's Introduction

Employee Support Bot

At some point human-human interaction becomes invaluable: it's immediate and provides a clear sense of progress to the customer. The goal of this project is to provide a front-end to that interaction by gathering data from the user, answering any simple questions, and connecting them to an available agent.

Rather than customers calling into an automated system from the get-go and being placed on hold, they begin with chatting with a bot in an attempt to diagnose the nature of the problem. If it's a quick question (e.x. "what are your hours?"), the bot can simply answer. When the bot has identified the nature of the question and which support staff line would be most appropriate to handle it, it will notify the user that it has queued up their number to be addressed by a human staff member and will be called back.

Project Scope & Context

An enterprise application with a private integration into a company's Slack channel:

  • Bot Intent Specifications
  • Contacting HR
  • Employee would initiate a ticket via the bot
    • General info or personal file request
    • Nature (HR: Payroll, health, etc.)
  • Once the intent of the ticket is identified, store the state as pending response
    • The user is prompted that they will be placed in queue and contacted regarding their ticket via phone
    • User can query for their state and estimated fulfillment time
    • User can request phone or textual response
    • Can provide "in the meantime" resources
    • Can cancel request
  • Distinct support staff bot to dequeue tickets, get a summary of the request, and initiate a fulfillment call.

Application System Diagram

A high level system diagram showcasing the Amazon Lex intents, associated data slots, and key Lambda functions.

Key Dependencies

Installation & Deployment

  1. Clone this project.
  2. Create an AWS profile named claudia (used in package.json scripts) with the following IAM programmatic access permissions:
    • AWSLambdaFullAccess
    • IAMFullAccess
    • AmazonAPIGatewayAdministrator
  3. Add the profile keys to .aws/credentials (Reference)
  4. Create a employee-support-executor IAM role with the AmazonDynamoDBFullAccess policy.
  5. Install node 6.10.* to match the Lambda execution environment. Use nvm to manage multiple node versions, if needed.
  6. Make sure you have npm installed globally.
  7. In the command prompt run the following commands.
$ cd `project-directory`
$ npm install
  1. To create all of the cluadia configurations and deploy the Lambda functions with the default config specified in package.json.
$ npm run create
  1. To synchronize any changes to the respective Lambda functions.

Future Work

  • Addressing potential privacy concerns (e.x. scheduling a call with someone else's phone number or looking up if someone has a scheduled call)
  • Integrating with Amazon Cognito for user-specific actions and persistence
  • Support for Amazon Connect contact centers integrations

References

AWS Lex

AWS Lambda

AWS DynamoDB

Claudia

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.