Hatred is a very strong emotion, and Twitter is a fabulous site for angry customers to let the world know about some unfortunate product or service experience. This creates the possibility of companies losing customers and potential customers if those complaints remain unaddressed.

Now imagine if there were a way to automatically find those complainers, and have your company's Twitter account automatically reply in an appropriate manner. That's what we set out to accomplish with Amy.

Our web dashboard allows you to manage a list of keywords and hashtags that will regularly be scanned to find relevant tweets with negative or positive sentiment. Those tweets will be shown on the dashboard, with each one containing a generated reply, and we can also tweet it for you.

What it does

It uses the Twitter API to find tweets with specified keywords, sends those to the Watson Natural Language Understanding API to determine sentiment analysis scores, and generates appropriate replies based on tweet content. This allows customer support representatives to cut down on the time spent identifying problems and replying to them.

How we built it

We use loopback for our backend API framework, which is accessed by the frontent React+redux dashboard. Loopback connects to Mongodb which acts as our datastore. New tweets are searched at a fixed interval, and when that happens, we first check if it is already stored in Mongo because if it is, there's no need to compute its sentiment analysis score. For sentiment analysis we used the Watson API natural language understanding service.

Challenges we ran into

We didn't want to exceed the Twitter API limits so we limit the number of tweets showing on the dashboard.

Accomplishments that we're proud of

We were able to use Watson, LoopBack, Bluemix and React to make a functional service.

What we learned

How to integrate multiple APIs and programmatically tweet in reply to another tweet.

What's next for Amy

Allow companies to sign up and improve their customer service.

Built With

Share this project: