Classifying Tweets, a Path to Wisdom…

Twitter is truly ubiquitous. Twitter presence spans industries, and within  companies it spans departments. It’s used both by companies and by customers to express their opinions about those companies. Customers are influencing other potential customers by sharing their experiences and Tweeting to each other. Everyone is talking!

Twitter’s “About Us” page quoted them as having 175 million registered users as of last March. (The number has since been removed from the site.) Even if those users are not all active, the unpublished count of active users is still massive, and is growing.

This all adds up to a staggering amount of raw data in the Twitter ecosystem. Even with TweetRoost’s  excellent search monitor feature to automatically find and select search terms about your company, brand, industry or competitors -  and if you’re reading all of them, it can be very difficult to extract meaning from so much data.

According to Russell Ackoff, a systems theorist and professor of organizational change, the content of the human mind can be classified into five categories:

1. Data: symbols

2. Information: data that are processed to be useful; provides answers to “who”, “what”, “where”, and “when” questions

3. Knowledge: application of data and information; answers “how” questions

4. Understanding: appreciation of “why”

5. Wisdom: evaluated understanding.

How can we extract the meaning of a Tweet into short symbols so we can be on the road to wisdom?  The use of tags (keywords) can help us in this effort. Tags are nothing new to web-based applications, but they are not something that is provided by Twitter itself. (The ‘tag’ being discussed is not to be confused with the  #hashtag imbedded in many Tweets). When you are editing a saved item (which can be a Tweet, Mention, Message, Retweet, etc.) in TweetRoost, you can assign tags to it.  These tags are only seen and used internally within TweetRoost, and allow you to classify what you read. For example, a customer rant about your product might get the tag “dislike”. A rave could be tagged “like.”  Highlighted in yellow below is the interface for adding and removing TweetRoost tags:

When reading Tweets in TweetRoost, think about the meaning of what you are reading, and how it should be classified. Are you supporting a product? Use tags like ‘feature request’, ‘bug’, ‘happy customer’ or ‘complaint’ to categorize the information. Since everything is saved in the permanent TweetRoost database, you can always pull up all saved Tweets about a given topic by  querying that  tag. TweetRoost also provides a ‘tag cloud’ (TweetRoost Items -> Tag Cloud in the navigation bar),  so you can see which tags are being used the most (and least) over time. What might you learn from this?

Think about how tagging can be used in your Twitter workflow, and how you can start to gain knowledge from seeing your Tweets organized in this way. Your team can agree in advance that certain tags will represent different meanings, and then begin consistently using those tags – there are a lot of possibilities.

Please let us know in a comment, would tagging be  more valuable to you if TweetRoost could automatically tag saved items with terms that it thought pertained to the Tweet, instead of you doing it on your own?


Twitter Metrics & Analytics | Followers Over Time

When you use TweetRoost to manage your Twitter presence, it  automatically captures your Twitter account’s historical Following and Followers counts over time. This means that you can look backwards and see a graph of this data over a given time period. Here is what this looks like:

Followers Metric

The yellow line represents the Following count, and the red line represents the Followers count. Hovering the mouse over each data point  shows the actual number of Followers or Followings for a given day.

This information can be useful to cross-reference with marketing campaigns or other business activities over a given time period, in order to analyze how  the number of people following you has been affected. It can provide a valuable  data point to determine the ROI of a social media campaign.

The Follower/Following information is just one metric of many offered by TweetRoost. TweetRoost also has metrics that show the number of saved TweetRoost items over time, which can be further filtered to limit to Tweets, Messages, Mentions, or Retweets. (Saved items in TweetRoost can be assigned to TweetRoost users, and saved items also have a status associated with them that can be either Open or Closed.) TweetRoost metrics can show counts of Open and Closed items by assignee, and lists of Open items by assignee.

Are there any other metrics that you would like to see TweetRoost offer? If so, leave a comment and let us know!


Twitter for Financial Services Industry & Financial Advisors | Social Media Policy & Compliance

About a month ago, there was an article on Mashable about how Morgan Stanley brokers were given the go-ahead to market themselves on Twitter. You can read that article, here:

The next day, the Wall Street Journal followed up on this announcement, saying that Morgan Stanley’s approach to Twitter was well meaning, but pointless.

The Wall Street Journal studied the press release carefully and focused on these words:

In addition to the compliance component, we will also have a tool for Advisors to distribute Firm approved research and content, providing you with a powerful way to share our unique intellectual content with clients and prospects. You will have the ability, with the click of a button, to share pre-approved “status updates” or “tweets” with your social and professional networks.

Brokers were only given permission to push out pre-approved, or canned content to Twitter — not to author their own content, or reply to clients. This was much less groundbreaking than it initially sounded. A key to using social media effectively is to understand that it is about listening, engaging, and building 2-way relationships. It is not about  repeatedly blasting out content from PR to as many contacts as possible.

Ensuring compliant employee use of social media is a daunting task. A Google search on “social media policy” will turn up lots of sample  policies, policies used by other companies, and advice on writing policy. Specific to the financial services industry, in 2009, the Financial Industry Regulatory Authority released the Regulatory Notice 10-06, detailing guidelines on communications for Blogs and Social Networking Web Sites.

In a nutshell, these regulations (summarized from here) include:

  • Archive – All communications via social networks must be retained.
  • Supervise – Employees must receive training on the firm’s written policies and procedures before engaging in social media.  Static content must be pre-approved by the firm, while real-time interactive communications need to be “supervised.”
  • Include Disclaimers – Although not required, it is recommended to add a disclaimer to remove any doubt about the organization’s affiliation with third party opinions expressed within the social media platform.
  • Avoid Recommendations – Company representatives should not advise or endorse financial investments via social media. Warning: This DOES apply to the “Like” feature on Facebook, and ReTweeting on Twitter, both of which could be considered entanglement.

TweetRoost is a great tool for helping to comply with these guidelines, because all of your communication on Twitter is permanently archived in the TweetRoost database. Even better, we’ve got “Supervise” done right. Instead of only allowing employees to Tweet pre-approved content, employees can author and submit their own draft content for approval by authorized individuals. One or multiple compliance officers (“Approvers” in TweetRoost lingo) can be responsible for verifying that employee-submitted content complies with the company’s social media policy, and in one click, approve it so that it is sent out to Twitter.

Is your company doing social media right? Why not Improve your Twitter management process with assignment and approval workflow by using TweetRoost?


Handling Duplicate Tweets and Retweets

We just introduced a great new feature into TweetRoost which will save you an enormous amount of energy if you do much monitoring of Twitter for customer interaction. Let’s say you are monitoring your brand’s hashtags or keywords with TweetRoost’s Search Monitor, and let’s say your brand has a frequently-used tagline — like “Just do it” — or you just had an article which produced many Tweets or Retweets, or a Tweet about your brand gets many Retweets. These types of situations can produce hundreds of Tweets or Retweets which are exactly or almost exactly the same.

And if you are monitoring via Twitter directly, those Tweets can ‘clog’ the works: You’ve got to scan your multiple Searches and your Mentions by hand; and you have to filter out the duplicates by hand (and eye). This is not only tedious, it is error prone.

If you have been using TweetRoost Search Monitors, all Tweets and Retweets matching the Search parameters are automatically brought into the permanent TweetRoost archive. Nice. You can review these during your working hours, not miss them when they fly by, or when you’re at lunch or if they come in at midnight. But there has been a lurking problem: Multiple duplicate Tweets and Retweets were simply saved to the archive and displayed with no indication that they were duplicates. Additionally, if assigning had been turned on, a lot of extra emails were sent. But now…

In the latest version of TweetRoost, duplicate Tweets and Retweets are archived, but when the Saved Items are displayed, the first Tweet or Retweet from a set of duplicates is the only one displayed! This Saved Item has a count of the number of Similar (duplicate) Items, and a link so you can see the complete list of duplicates if you want. Here is an example:

Screen shot of 'Similar' Item List

Note how each of the two items — which had matched the Search Monitor for the hashtag #trsupport — have a count of the duplicate similar items (3 and 4 items), and that count is a link to display those duplicates.

And while this can be a tremendous time saver when viewing items to ‘work on’ — like responding to customers or potential customers — it also saves time when assignment and email is turned on. If you are being emailed on each new Search Monitor match, duplicates are not emailed.

And here is a real life example: We had a case where an article was published about a product which a TweetRoost user was Monitoring, and the article caused hundreds of Tweets and Retweets. This created hundreds of Saved Items in the main working list, and hundreds of emails. Bad. With our newly-introduced Duplicate Management, while the Tweets and Retweets will be saved, they will not clog up the main Saved Items list and no extra emails will be sent. #yes.



TweetRoost goes live with Twitter Site Streams

TweetRoost is now using Twitter Site Streams in Production for paid users. We are very excited about this: It gives much better performance for a Twitter client like TweetRoost, especially for an organization with more than a few users simultaneously signed onto one Twitter Account.

So what, you ask, are Twitter Site Streams? They are a new way to gather data from Twitter by allowing a client such as TweetRoost to open one persistent connection between Twitter and TweetRoost, which ‘asks’ Twitter to send all data for people who we manage as a single stream. Instead of making hundreds or thousands of REST API calls, with Site Streams Twitter simply sends the appropriate data stream to TweetRoost after a Site Stream connection is opened, and TweetRoost saves that data locally for the time it is needed. Twitter’s overhead to support applications becomes much lower since one open connection is much cheaper for Twitter than thousands of API calls. And TweetRoost can get data for screens like the Home Timeline from its local disk instead of calling Twitter over the internet, so this is a much faster and more reliable method.

We started to program the Site Streams API a few months ago. We open a stream, and announce which users we want to get data for. As the data arrives, it has to be saved to disk super-fast. That’s all that the stream ‘consumer’ does — it reads Tweets in real time and saves them locally. Then, when data needs to be displayed by TweetRoost, it can read its local disk, and display the data as if it got it directly from Twitter.

Here is an outline of how this works and the work involved: First, calls need to be made to the Site Streams API with a list of Twitter Accounts to be managed via the Streams. For us, this means going through all customers in our main mysql database, determining which Twitter Accounts they connect to, and then starting the Stream going. Next we read the arriving data in the stream and classify them into Tweets, Mentions, Messages, etc, determine which Twitter accounts they are for, and we save all this immediately to the local fast database (in sqlite). Then when a user makes a request to TweetRoost for something, like a timeline, or all their mentions, etc, TweetRoost reads the fast database — which is in the same format (more or less) as the data from the usual REST API, and the data is shown onscreen.

That was the (pretty) easy part. This part is harder: If a new customer signs up (paid) or a paid user adds a Twitter Account for management via TweetRoost, a Stream needs to be opened for that new user or new account. Since Site Streams allow any number of accounts in the data stream (even 1), a new Stream for even one user or account can be opened. But Site Streams specs require that many Streams not be kept open for a long time. Also, the Site Stream connection needs to be tested periodically so we know that it hasn’t gone down. Otherwise, those Tweets would be lost. And the sqlite database would grow forever as the Site Streams just keep dumping data into the database, so there is a maintenance/cleanup function required. Lastly, when Tweets are deleted, their space needs to be given back.

To implement this part, we used cron. (cron is a background process which can be scheduled to run whenever you like). We wrote a master cron which runs every minute. First, it checks if the main Streams process is running. If not, it starts it. This handles bootup time and also when a Twitter Streams connection to our Streams has failed. At 4am, it checks the processes running on the servers, and it kills all Streams (including those temporary Streams for a new paid user). Then it goes through the sql-lite database and trims out any Tweet list over 800 entries (this sounds costly, but it is only one or two sql statements, and it is very fast). Then it ‘vacuums’ the database to give back freed up space. Also fast. The first time we ran this on some test accounts (in test mode, so it was not 4am), the database size went from 130megs to 9megs! Then it starts a new main Streams reader which picks up the new paid accounts.

So why is this really good? There are few reasons: First, you get the data much faster. If you want your home timeline for instance, TweetRoost with Site Streams just reads the local disk ‘fast database’ with one simple sql call (no fancy over the internet API calls to Twitter). Second, if Twitter is intermittently down, but the Site Streams are up (which happened earlier this week), you won’t be affected adversely; when that happened, TweetRoost’s Site Streams connection was working perfectly. Third, if Twitter and the Site Streams are both down, you can still see the most recent data in Twitter which is important to you, since we saved it to our disk before Twitter went down. And last, but also important: More people using Site Streams means that Twitter will be more stable and fast in general which is good for everyone.

You can try out TweetRoost at, see how saved Tweets, long Tweets, Roles, Scheduling, etc can help your organization.



TweetRoost and Long Tweets

We’ve been intrigued by allowing people to send Tweets which are longer than 140 characters, especially since anyone looking to help customers might need more ‘space’ to help. And we saw many cases like this.

So we looked into implementing this in TweetRoost. It is not too difficult to do, and after a lot of hard discussion and soul-searching, and also after seeing the problems of writers who often couldn’t easily make sense in 140 characters — we decided to do it.

Here is what we’ve done: TweetRoost pay-for customers and evaluators who Tweet, Retweet, or Reply will see the usual 140 count, always counting down, but you’ll also see a note: “140 character+ supported”. When your count goes over 140, you’ll see the count go negative, but TweetRoost will handle your message anyway! Obviously, if you go a character or two over, you’ll probably just want to shorten a word or two. But if you have a communication which really won’t fit into 140 characters, you can keep going – TweetRoost will accept the submission and it will put a link at the end of the Tweet to a page containing the entire long Tweet.

Here is an example of what a long tweet looks like: “@msk914 Yes, long tweets in TweetRoost are interesting, since you can click the link in TR or directly in Twitter…(cont)” … where the is a link, both in TweetRoost and in Twitter, to a page which shows the full Tweet.

Sign up for TweetRoost today. It is in the cloud, no downloads needed, and you’ll be able to see how this works for yourself.



Twitter and Customer Support

I was reading an interesting blog post by Zendesk yesterday. It touches very closely on what we are doing with TweetRoost and customer support, so I thought I would comment about Twitter and its relationship to Customer Support.

Twitter has hundreds of millions of users, billions of Tweets every week, and people use Twitter to express satisfaction and dissatisfaction with products and brands. Only those companies who are listening to the Twittersphere can help those people.

With our background in Customer Service we can see the benefits of listening to customers on all channels, including new ones like Twitter. In fact, our own first experiences with Twitter were reading the interesting articles about Delta Airlines and how @deltaAssist was setup and manned by a full staff to help people who needed help. It sure paid off for Delta and its customers during blizzards over the past years.

Since Comcast has gotten a name as a company who uses Twitter for customer help, I did some searching last week: @comcastcares is the main support Twitter Account, and Comcast service desk technicians with handles like @comcastWill, @comcastMelissa, and others, are handling tens of thousands of customer issues for Comcast. It is very impressive.

With TweetRoost, companies like these and yours too can talk to customers on Twitter, handling multiple Twitter accounts all from within one interface and login. You can also have TweetRoost automatically find Tweets about your company and brand using our Search Monitor feature, and the input from customers and your responses are saved forever in TweetRoost. Furthermore, to make coordination easy, Tweets can be assigned in round robin to service desk people, or they can be assigned based on skills. You can see who is working on what, how long they are taking, have records of support activities, and your customers will love you for it. And you’ll be able to manage this support function.

Go to the MediaRoost Homepage, sign up for a free trial – no downloads are needed – and see how it can help you and your customers.


1 Comment

Twitter Archiving in action

Recently we’ve been at some conferences like TSIA Service Revolutions and TechCrunch Disrupt. I looked occasionally at the Twitter hashtags for these conferences to keep in touch with people and read about what was going on which I might have otherwise missed.

But then I realized afterwards that I have no permanent record of those tweets, but I have just the tool – TweetRoost – to save those tweets for me so that I and others can look at them whenever we want.

We’ll be at 140conf in NYC this week, June 15th and 16th. Many people are tweeting with the hashtag #140conf. To make it easy for everyone to follow what’s going on both during and after the conference, I’ve set up a special TweetRoost site. It is called It has a Search Monitor running looking for the hashtag #140conf, and it saves all tweets with that hashtag to the permanent TweetRoost database. Taking advantage of TweetRoost’s role capabilities we’ve made a guest userid which lets anyone read and search through all of these archived tweets. That user can also email specific tweets to anyone they want. Anyone can use this facility for free:

Go to Login as guest, password is guest140. All the tweets and retweets with the #140conf hashtag are shown as Saved Items. To see only Tweets (but not Retweets), select the ‘Type’ box, and instead of ‘All’, choose ‘Tweets’, then click Filter. To look for a phrase in any of the Tweets, put that phrase in the ‘Text’ box and click Filter. Also, next to the ‘Saved Items’ words are two icons – one is for setting up an RSS feed of Saved Items, the other allows you to Print a list of Saved Items. Note that this site was setup for only archiving those #140conf tweets, so Timelines, Scheduling, Reports, etc are not active.


If you become a TweetRoost customer, you’d get much more – the Timeline, Scheduling, Activities, Reports, etc are all active, and they’d be active for all your real twitter accounts.

Sign up for free to your own TweetRoost site and check it out.


1 Comment

Annoying DM issue

Anyone else annoyed at this?

Someone you follow sends you a DM. You need to get back to them, but you cannot: They do not follow you!!!

You do not have their email address, and you do not want to send out a public tweet — but you need to contact them. Too bad. You either find their email address somewhere online and hope it is right (sigh) or you send a tweet [mention] (begging for them to follow you so you can DM) and hope they see the tweet.

This is not good. There has to be a better way.



TweetRoost says Hello to Traditional Media

A recent article about MediaRoost from the May 25, 2011 issue of the The Home News Tribune…

The Home News Tribune

I was interviewed a few weeks ago by Bob Makin of the Home News Tribune face to face. It was a business story, not a technical article, so it was not about features and functions, it was about the business plan, our business backgrounds, and how TweetRoost could help customers.

It was different, and it reminded me of the ‘good old days.’ Bob and I sat across the meeting room table, we spent a few minutes talking about his newspaper — I’ve had a subscription for years — and we talked about my time on the local Board of Education, which Bob has covered over the years.

We talked about my business background, why we started MediaRoost after selling our last company, and we talked about Twitter and social media use, especially by the younger people (his kids).  It was a great hour together. I realized that I cannot remember the last face to face press meeting I’ve had — and I’ve had many phone (or even email) ‘interviews’ of the past years. It was so worthwhile, by seeing each other and getting to know a bit about our backgrounds, we could connect much better.

And Bob got it right when he wrote the article, I am very pleased: He captured what we are trying to do, why, and our business goals. Thanks!