Error reports. They’re everywhere…

You haven’t had much to read about the development of Satisfaction, as we here on the dev side have been a bit too busy building this thing. Yesterday, an idea came to me and the resulting code is something I wanted to share. It is a melding of old ideas into something novel that I think might be helpful for some of you out there.

I find myself spending more and more time on my javascript-fu these days. I’m not alone in this regard as we live in an increasingly Ajax world; one of the consequences of this trend is that a greater burden for “correctness” is pushed onto the browser. As javascript becomes more integral to the function of the page, as opposed to just custom mouse tails for you ebay auction, the cost of building a bullet proof application gets higher. This is nothing new, javascript can be hard to get right across all browsers. With the help of libraries such as prototype, jquery, yui and the like the problems that arise from browser differences are lessened, but are not yet ignorable.

As most of you know, error reporting & logging is essential to catching all of the bugs in your application; testing is a wonderful boon, but having perfect tests that cover all scenarios is just about as likely as building an entire application bug-free on the first try. Your application need to squawk at you when it breaks for one of your users. A bug won’t get fixed unless the code monkeys know about. This is nothing new. Every environment out there has some sort of error logging mechanism. In rails you’ve got your normal logger-based mechanisms, but also wonderful tools like the exception_notification plugin (personally plug here, I wrote a plugin for rails a while back called Exceptional that lets you fine-tune how exceptions are handled in rails). In the case here at satisfaction, any error that occurs in our application that isn’t accounted for gets posted to our campfire chats. This mechanism has been wonderful, but until last night it missed a whole swath of errors that were happening in our application: the client-side javascript.

In last night’s session I hacked together a little script that posts client-side javascript bugs to the same chat room that server-side bugs get posted. Here is the meat of the code, and a screen shot of it in action:

error_occurred = function(msg, url, line, data) {
  try {
    msg = msg != undefined ? encodeURIComponent(msg) : '';
    url = url != undefined ? encodeURIComponent(url) : '';
    line = line != undefined ? encodeURIComponent(line) : '';
    data = data != undefined ? encodeURIComponent(data) : '';

    postData =  "message=" + msg;
    postData += "&url=" + url;
    postData += "&line=" + line;
    postData += "&data=" + data;

    YAHOO.util.Connect.asyncRequest('POST', '/error_reports.js', null, postData);
  } catch(e) {}
  return false;
}

window.onerror = error_occurred;

Nothing particularly fancy, it is even a bit ugly since I’m specifically avoiding calling any library code. Even still, what is posted above isn’t foolproof (namely Safari and Opera don’t support window.onerror), but I’ll elaborate on that in a followup post. Stay tuned for part two, which will be on the more technical side.

The Wisdom of Customer Crowds

This is one of my favorite customer service anecdotes right now, and I can’t seem to stop blabbing about it.

The story tells of how 30Boxes, an infectious social calendar app, abandoned conventional wisdom in their pursuit of extraordinary customer service. It’s a prime example of how embracing chaos can energize a business. (It was originally told to me by Nick Wilder of 30Boxes on my Customer Service is the New Marketing panel)

The Trouble with Trouble Tickets
Nick, along with serial entrepreneurs Narendra Rocherolle and Julie Davidson, started another company a few years ago, the photo-sharing site Webshots, ultimately acquired by CNET. As Webshots’ customer base and support issues began to scale up they did what every proper technology startup does; they installed trouble-ticket software to respond to all the customer issues. They anointed staff as official reps, established a process that worked with the software, and began to answer customers in this ostensibly optimal workflow.

Here’s the first plot twist: they discovered that almost fifty percent of the support issues coming in through that system went unresolved. Consistently. The remainder of the issues were sheperded through this siloed system by the staff, but were rarely viewed by the product developers or managers. Even with this efficiency-focused software, devoted support personnel, and the best of intentions Webshots was unable to rise to the goal of decent customer service.

Closing Issues by Opening Conversations
When the team launched their new startup, 30 Boxes, they decided to try something different. They opted out of trouble ticket systems altogether. Instead, they set up a forum. Just an old-fashioned discussion board, albeit one with a pretty, minimalist design. They didn’t publish an email form, and avoided any of those trumpeted CRM applications we read so much about. It was just a standard open source forum that anyone could post to.

This time the results were dramatically different. Right away users began to post questions, bugs, product ideas, company praise, and whatever else was on their minds. All this interaction from customers and the company was public, not hidden away in a private database like before, and each day the vibrant interactions pulled even more users into the conversation. All this hubbub created interest and involvement, stoking the passions of the customer community.

Now here’s the second plot twist: Instead of half of customer issues withering away unresolved in a trouble ticket system, on the 30Boxes forum almost 50% of customer issues were resolved by other users! Of the remaining issues, the vast majority were handled quickly by the 30Boxes product team which monitors the forum closely, not as their job, but because they’re eager for user feedback. And the biggest pain point of any customer service system–answering the same questions over and over again–mostly vanished now that all answers were posted publicly instead of sent to a private email inbox.

Just like magic.


New Rule: Wherever you can, keep your conversations with customers public

How to run a call center that doesn’t suck

zappos.gifAgainst all odds Zappos has emerged as one of the most revered online retailers, almost solely thanks to its unusual approach to customers. Their CEO Tony Hsieh is crystal clear on their philosophy of customer service: every interaction is a branding opportunity. The message is that the sales and post-sales activities are of equal importance. His company puts their toll-free number in the upper left-hand corner of every page, above the logo, promising 24/7 response. And its repeated all over the site. They’re practically begging us to call them.

Of course, this flies in the face of conventional wisdom for an e-commerce company. After all, customer calls are one of the biggest enemies of ye olde profit margin. In fact, the standard call center thesis may well be “every interaction is a cost to be avoided.” Why would any smart businessperson actually encourage customers to get in touch?

But this is just the beginning for Zappos. Because really, lots of companies display a support number, even if they don’t advertise it like a clearance sale. It’s usually just an invitation to phone tree hell. At Zappos, if you call you’re in for a surprise…starting with zero wait time. More importantly, you’re going to have a warm, personal conversation with someone who knows the finer details of the giant catalog of products. Many customers who’ve been through it say the experience is unlike anything they’ve experienced outside of a family run boutique.

How do they do it? They start by banning all scripts, the building block of a more traditional call center. Because Zappos knows that if they forced their service reps to live by a script they implicitly distrust them to operate without one. Zappos service is anything but automated. As their tagline puts it, they are “Powered by Service.” This commitment means letting their front-line people use their good judgement and–gasp!–their genuine personalities to engage with customers. Phone staff can do and say whatever they need to in the process of delivering satisfaction, whether that means giving away free overnight shipping or reading site content out loud to sight impaired customers.

They elevate the role of customer service to something so valuable that every manager in the company must participate:

…Every new employee that we hire in our corporate office is required to go through 4 weeks of Customer Loyalty training (answering phones in our call center) before starting the actual job that he/she was actually hired for. To us, customer service isn’t just a department — it is the entire company.

Given the incredible leeway they extend to their staff, it’s no wonder that Zappos avoids all the traditional metrics for success. The most important of these metrics is time per call, a number that by the sheer fact of its collection would undermine the mandate to do “whatever it takes” to woo people at all stages of customerhood. Zappos management opts instead for trust, occasionally listening in on calls, but generally focused on the broader measurement of satisfaction (98% positive according to BizRate) and return business.

The result is that Zappos is creating some of the most passionate customers of any online retailer. These customers are incredibly vocal, and the company’s projected 2007 annual sales of $800 million can be credited largely to the word-of-mouth their amazing service inspires. This earns them a seat of honor in our Hall of Fame.

passion_chart.png
Zappos reminds us that companies that embrace customer interactions create evangelists for their cause. It’s not that reaching this coveted place where engagement and passionate fervor meet is so hard or expensive–it may in fact be the cheaper and easier path in the long run. But as we’ve seen, it does require relinquishing control to the chaos of real human interactions. That is revolution for most companies.


NEW RULE #1: No scripts for customer service
NEW RULE #2: Eliminate average call length as a measure of success

Why Customer Service is the New Marketing

For most companies “marketing” is all the stuff they say to people to make a sale. It’s a practice that involves running prime time TV ads, distributing glossy brochures, even flying planes over stadiums pulling banners just to get us lathered up to buy their wares. Marketing is sexy–they make those funny Super Bowl ads, everyone in their department is hot, and they really know how to use their expense account. But so often there’s a monster gap between the images they project and the dispiriting experience of being their customers. Kathy Sierra shows the disparity as something like this:


Before the Sale

Image by Tangent
After the Sale

If a company hustles me with smoke and mirrors alone, not only am I going to find out, I’m going to tell everyone I know with a giant bullhorn called the Internet. In our brave new world attention is shifting away from the pre-sales hype towards post-sales experience, because this is what people ultimately talk about. And email their friends about. And blog about. The result is that customer service is the new marketing.


But companies spend an inordinate amount of time hiding from their customers after the sale. In call centers all around the world, customer service reps are fed pre-digested scripts for every imaginable interaction (except, usually, the messy ones that actually occur). They’re automated, monitored, measured and modeled, all with the goal of constraining interactions (i.e. call times) with customers to a minimum.

Some companies have been known to institutionalize bad service precisely to deter unnecessary communication. It’s not (always) an accident we spend so much time pulling our hair out on the support lines.


Image by Giveawayboy
Still, all this hiding from customers is expensive. So expensive that 3% of U.S. employees are engaged in customer support-related jobs. Imagine the entire population of Florida doing customer support and you’ll have an idea of the scale of the problem. And this doesn’t count the many, many more supporting us in Canada, India and around the world.

Image by TheCapt'nBut wait, not all customer service sucks. It’s not hard to think of businesses that knock our socks off with amazing experiences from start to finish. For instance, every talented restaurant worker instinctively knows how to deliver great customer service. Then it’s magnified and rewarded by the patrons who write about them on Yelp.

Apple re-imagined tech support as a private club, i.e. the Genius Bar, and now we’re happy to wait patiently for a bit of highly qualified attention. Apple’s online discussions site extends this spirit into their customer community…as they’ve done since the old Mac User Group days, .

JetBlue and Southwest have been mastering the art of the apology. What’s so surprising is the extent to which they’re encouraging customers to talk back online in independent channels such as YouTube. Uncensored, unmoderated, out of control.

Nintendo gives its phone reps the latitude to use common sense. Last month a Nintendo customer, Saska, wrote about her broken Wii console. When she called for support, the rep discovered that Saska lived near the company’s Seattle headquarters. Without checking with her manager she invited Saska to bring the broken unit in to the office and have it fixed while she waited rather than deal with shipping it back in through official channels. She had her Wii fixed in less than an hour. Saska’s blog post about her amazing experience was Digged, influencing thousands of present and future Nintendo customers.

So here’s the big idea that we see over and over–great service turns customers into evangelists, and the Internet magnifies their enthusiasm.

Now here’s the prescription: to create great service, companies are LETTING GO of control, LETTING GO of fear of embarrassment, LETTING GO of perfection. Relaxing these things gives customers the opportunity to help companies in amazing ways, as their passions feed back into the products and services they use. It allows companies to be real instead of defensive when things go wrong. It transforms customer service from a cost to be controlled into the most meaningful, viral, cost-effective marketing imaginable.

[This is a pimped out version of my introduction to my South by Southwest Interactive panel, Customer Service is the New Marketing. Over the next several days I will post case studies based on the customer service secrets of my fellow panelists from Zappos, 30Boxes and Flickr]. Thanks to Union Square Ventures for the phrase of which this panel and post takes its name.

Community Tip: Start with a greeting

Stewart Butterfield on CNN, responding to the question “What makes online communities work?”

A lot of our success came from George, the lead designer, and Caterina. Both of them spent a lot of time in the early days greeting individual users as they came in, encouraging them and leaving comments on their photos. There was a lot of dialogue between the people who were developing Flickr and their users to get feedback on how they wanted Flickr to develop. That interaction made the initial community very strong and then that seed was there for new people who joined to make the community experience strong for them too.

Thanks to Citizen Agency for the transcription.