Giter VIP home page Giter VIP logo

swift's Introduction

SWIFT

SWIFT provides faster, inexpensive support for employees. The application uses NER (Named-Entity Recognition) to extract relevant details from employee messages and forwards them to the appropriate department or party which can handle the issue.

Abstract

Employee productivity and satisfaction are absolutely essential to businesses. If employees are unable to quickly get support on problems they have, frustrations rise, output drops, and a business's sales will suffer in the long run. In a large company with many employees spread across departments with different responsibilities, it takes time to forward an issue to someone who can address it. A support team may handle an employee support channel in an online workspace, such as Slack. The team must read through all employee messages, decide who to send each message to, and coordinate further actions between the people involved. Much cost and effort is spent to do this.

SWIFT is a Slack plug-in application which will automate the process of sending employee messages to the right people. It looks at individual messages in a Slack support channel and routes the problem to the right people. The app also has a dashboard that can pull stats to help guide the support team's planning and taking proactive actions.

Target Users

Employees of a medium-sized company with a Slack workspace. The company has departments providing different services, such as health, finance, and technician support.

Hill Statement

Who- Any employee that needs to report any issue to the specific department in the organization.

What- A slack plug-in application that automates the process of sending messages or reporting issues to the relavent department in the organization.

Wow Factor- It assures the whole process of sending messages to the appropriate department to be fast, flexible and accurate, so that the problem is fixed as early as possible.

Architecture Diagram

Architecture

Technology Stack

Node JS, Express JS, Slack API, Stanford NER tagger. Slack API Stanford NLP

swift's People

Contributors

cdslabs avatar harshrtrivedi avatar mdhsieh avatar tithi286 avatar

Watchers

 avatar

Forkers

tithi286

swift's Issues

Does swift really need NER and if yes, is Stanford NER a good choice?

Technology choice issue -

  1. NER is a subtask of information extraction that seeks to locate and classify named entity mentions in unstructured text into pre-defined categories such as the person names, organizations, locations, medical codes, time expressions, quantities, monetary values, percentages, etc.

  2. Stanford NER can only support 7 classes - Location, Person, Organization, Money, Percent, Date, Time

Source: Stanford Named Entity Recognizer (NER)

  1. If we look at the above 7 classes and try to find which ones can be used for routing, only two classes seem like good candidates - Person, Organisation and maybe Location. Money, Percent, Date, Time can be used to extract information.

  2. a) But if the user already knows the name fo the person, won't the user directly send an email to the concerned person by looking up the person's name in the organization's directory?

b) From the description of swift, "extract relevant details from employee messages and forwards them to the appropriate department", it appears that it is supposed to work within an organization. So, the user messages to swift will rarely contain the name of another organization. For example, one won't see a Google employee trying to get his payslips from Apple's HR system.

c) That leaves swift only one class, Location, which can be used for forwarding. But, can it be? For example, in the user message - "How can I book flight tickets for my meeting in New York?", Stanford NER would extract "New York" as a location, but how will swift use the extracted information to forward the user message to the company's Travel Department?

  1. Let's assume swift receives the following two messages from User 1 and User 2 respectively -
    a) "My printer stopped working and I have tried restarting it many times"
    b) "What is the process to apply for maternity leave?"

  2. What entities would swift extract from the above two messages (5.a and 5.b) using Stanford NER? It appears that none of the 7 classes supported by Stanford NLP are present in the above two messages and hence Stanford NER would result in an empty set.

  3. If yes, how will swift handle empty set results from Stanford NER? Is it going to perform text lookup?

  4. How will swift perform text lookup? Will swift use a mapping between text, for example, "maternity leave" to departments and/or teams, for example "HR department"?

  5. If yes, how will swift generate these mappings? Will swift manually create these mappings or will it automatically generate them from some dataset?

  6. If swift automatically generates the mappings from some dataset, what algorithm will it use?

  7. If swift uses a hardcoded text lookup mapping approach, how will it handle the many different variants of a user query? For example, all the below user messages are valid variations of 5.b
    a) "I am going to have a baby, how do I apply for leave?"
    b) "I am pregnant, how do I apply for leave"
    c) "How do I apply for childbirth leave"

Queries related to the functioning and scope of operation of the tool:

  1. Once the issue/ticket has been raised, how can the user keep track of it? Does the tool help the user to follow up with responsible parties?

  2. How and where will the data be stored? Will it be stored on Slack itself or will it be stored in a separate database?

  3. Due to lack of examples in the abstract , it is unclear if the user posts the issue as a message in one of the channels, say “support channel” or is it going to be a direct message to a “support chatbot”? In my opinion the chatbot is the better option because if it is going to be a channel message, everyone part of the channel will be able to view it and in some cases that might violate the confidentiality of client data. A minimum of 2 chatbots should be provided by the tool, one for company/organization level which handles general issues related to IT support, facilities, transport, housekeeping ,HR etc and the second one for client account level issues that can be dealt by the people who have the right access and thus maintaining data confidentiality.

Does swift fall short of business value?

Slack is a powerful tool which provides built-in integrations, do companies need to read the conversations to raise support issues when slack built-in integrations allow us to create ISSUES using SLACK-BOT without AI.
Does swift fall short of business value?

Few references,
https://medium.com/@trevor_atx/3-new-ways-to-create-jira-issues-in-slack-3c61ed9a4247

A) Issues created via Bot Mentions,

  1. Example 1: @jira create bug Create Issue not working in unique project BEER in pi-devs site
  2. Example 2 @jira create task Create feature flags for releasing without transition, assign, comment
  3. Example : @jira create bug When I put a long description for an issue — a button with not rounded corners is rendered
    All this is done via slack-bot apis which create issues with a single click.

Above issues will be created directly. To view the demo --> https://api.slack.com/bot-users

B) Companies have a tough time and struggle more with tracking and maintaining these issues Why do we need to track the issues?
2.A) They help to give a real-time status of teams and builds.
2.B) Helps to identify who is doing what
2.C) Set Alerts for the issue

Slack provides business value to organizations because it reduces the effort, time and makes the communication effective and clear.
Will SWIFT be able to create such a business value with the overhead of reading the messages.

Does peeking into information shared by employees violate data privacy of individual employees or customers.

There are many companies which handle highly sensitive data for their end customers from the banking sector and other financial issues. More often than not, companies are made to sign NDAs and very stringent information security contracts as pair of their deals with their customers. Some companies even enforce internet related restrictions on any employee, be it from their own organization or the organization handling their data for them.
There are employees with the varying levels of access into these systems who might face issues while working on projects, products, releases or any support related tasks for their customers. These employees might need to share important information in order to raise issues/bugs and seek resolution for them.
Most big companies have very secure, well-defined systems and processes to raise these issues and get them resolved by other departments. A tool like the one suggested in this project might bring down the pain-points for the targeted end users, but might severely violate contractual obligations that employees have with their customers.
There is also the factor of how secure this tool will be. A plug-in which can essentially read the conversations/messages from an employee handling sensitive information would store the information for a period of time which could be mishandled by users with malicious intent.
The suggested plug-in would be useful in the case of small to medium sized companies, more specifically in a start-up kind of environment where the risk factor of data breaches and security concerns are low/ non-existent.

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.