Social media conversations revisited

Adding more context to social media conversations.

The urge to view social media conversations in a linear message thread is a natural impulse as we’ve been trained to do so from years of using email and message groups. Threads of conversations help us extract meta-information quickly. As an example, we can visually see for how long the conversation has been going on, sometimes a signal of its importance. We can at times assess the mood of the conversation, and tag it mentally as being constructive and helpful, or perhaps low in content and the product of a troll.

Repustate has re-imagined the conversation thread in the context of social media. Using our natural language toolkit and semantic tagging abilities, Repustate augments conversations with metadata that helps you gauge the quality of a conversation, its content, and its direction in a few seconds. Rather than tell you, let’s show you:

View a Twitter Conversation

Very quickly, you can see important information about this thread. You can see how old it is, you can see how many messages there are, and perhaps most pertinent to customer service, you can see the mood of the person you’re having a conversation with. Since Repustate lets you examine a conversation at any point in time, you can view the sentiment of the other person change over time (hopefully they’re getting happier over time!). Perhaps best of all, you can report on how long it takes for each reply to occur, yet another guage of customer service success.

More metadata will be added to the conversation viewer over time as we receive feedback, but we’re quite happy with this first version of it.

Using MongoDB to manage user permissions

We recently introduced the ability to configure which members of your team have access to which data. Now this isn’t so much a security concern as it is a workflow concern. Let’s say you work for Verizon and you’re doing customer service over their Twitter account @VerizonSupport. Repustate can funnel all questions about FIOS pricing to one tab in your dashboard and then funnel questions about cable TV problems to another. This way, customer service reps can specialize in one area and improve their knowledge. They can also rotate from day to day and learn about all aspects of the company’s offerings bit by bit.

To control who sees what, we use objects in a MongoDB collection. Let’s start with a few definitions. The primary data stream in Repustate is called a data source. A data source is a rule or set of rules which describes how to retrieve data. For example, “Any mentions of pizza on Twitter” can be a data source. Each data source has a unique ID and its own collection which contains its permissions.

We further subdivide the data within a data source by categories. One category is complaints, anoother is questions, another is positive mentions or compliments. You can create as many as you like, but those are the basic ones Repustate creates automatically.

So let’s take a look at how the permissions are stored for a given user and data source:

{'user_id':100, 'all':True, 'question':False, 'complaint':True, 'spanish':True}, ...

A permission collection will have many of these MongoDB objects. In fact, one for each user. The keys ‘all’, ‘question’, ‘complaint’ etc. correspond to the name of a category within a data source. To check for a given data source whether or not a user has permission, it’s just one quick find_one query. Is the value for a category True? If so, show the data in that tab, otherwise, hide it.

Fast, simple, easy to maintain.