Skip to content

A chat bot interface that acts as a company HR support front-end.

Notifications You must be signed in to change notification settings

aralshawa/employee-support-bot

Repository files navigation

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

About

A chat bot interface that acts as a company HR support front-end.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages