Creating a Better Customer Service Workflow: Part 3 – Synchronized Text Expansion with AutoHotKey & Dropbox

In part one of this series about creating a better customer service system, I wrote about the problems with our existing customer service setup, in part two I wrote about our new solution using Google Apps Gmail. In this last post of the series I’m going to cover how we use AutoHotKey and Dropbox to synchronize text expansion across our company.

What is Text Expansion?

Text expansion is one of those things that’s somewhat difficult to explain, but once you see it or try it you instantly realize the value of it. Lifehacker did a great feature on text expansion last year. Here’s how they define it:

Text expansion utilities monitor your typing and trigger rules when you type a predefined phrase or key combination. When you type one of those pre-defined phrases, your text expansion utility removes your short version and replaces it with a longer phrase without requiring you to type the entire thing – saving you loads of keystrokes and time.

One of the things that I say over and over at the end of customer service emails is “Let me know if you have any other questions and I’ll be happy to help.” Now I haven’t actually written that phrase in years. What I type instead is “lmk+” and then {Tab} and text expansion takes care of the rest. I like using “+” followed by {Tab} at the end of my “trigger” to ensure that there’s absolutely no way that text expansion will be triggered by mistake.

Here’s a quick video I put together that shows just how fast I can respond to certain emails.

The beauty of text expansion is that I can piece together several different canned responses to create a unique email without ever actually typing anything more than a series of short triggers that I’ve memorized.

I also love text expansion because I only have to think about a reply once. I get a lot of technical questions from non-technical customers. These questions require that I create a thorough response that resolves the issue and is also simple to understand, which can take some time and effort to craft. Once I get the wording correct, I can just add it to my text expansion script and the next time it arises I won’t have to think through that “perfect wording” again.

Using AutoHotKey With Dropbox

When I first wrote about text expansion back in 2009, I was using a product called Texter. Texter was created by the Lifehacker team several years ago (the last update was in 2007). It sort of works in Windows 7, which was good enough for me until we went on this customer service initiative and we needed a way for everyone to have access to the same database of standard responses.

After doing a little research I learned that AutoHotKey was the gold standard. I was a bit intimidated because it isn’t really a piece of software in the typical sense, it just runs in the background and allows you to write Windows scripts that can do all sorts of things, text expansion being one of them. I shouldn’t have been intimidated though – it took me all of 15 minutes to download it, install it, and get my text expansion up and running exactly the way I had it on Texter. I wouldn’t even bother using Texter. AHK is far more flexible and really simple to use. Their documentation is thorough, yet easy to read even for a non-programmer.

During my research I read a comment on Lifehacker by someone who used Dropbox to sync their AHK scripts across their computers. That was what I was looking for to tie all of this together. I downloaded it and installed it myself, and the AHK script ran fine from the Dropbox folder. Then I set Greg up with AHK and our Dropbox account and we tried modifying the AHK file on one computer and it synced perfectly across our computers. If one person creates a new standard response it’s instantly available to everyone in our company!

We created a cheat-sheet on our wiki so that everyone would have a simple way to look up each trigger and it’s purpose, as opposed to having to open and navigate through the long AHK file.

Another great thing about AutoHotKey is that you can run as many scripts as you want. We have a shared script, but I also have a personal script for some of my own salutations or standard responses for things that the other guys won’t ever need (like when someone asks me to review a book on my blog they get hit with “bookreview+”).

It’s an Investment

Text expansion is amazing. After using it for a few years, I can’t imagine using a computer without it. It is however, an investment, and like any investment it takes a little time to truly pay off.

In the beginning, it’s quicker to just type a reply, hit send, and move on to the next email. It takes an additional minute or two to standardize the response, add it to AHK, test it, and add it to the wiki.

After you start getting used to it a bit, it becomes just about as fast as copying and pasting from a standard responses document. You still have to look up the trigger on the wiki or by opening the AHK file, which takes just as much time as copying and pasting does.

The real benefit comes once you’ve memorized all of your commonly used triggers. Then you can piece together emails rapidly like I did in the video. You don’t need to type any part of the actual reply, you don’t need to think about wording it, and you don’t need to leave your inbox. You just answer emails really fast. Even if you do need to customize part of the email, you can freely flow from normal typing to text expansion without even thinking about it.

That concludes my three-part series on Creating a Better Customer Service Workflow. While our system is far from perfect, it’s a massive improvement from what we were doing before. We’re all able to work faster and more efficiently now, and even more importantly we’re in a position where we feel confident about plugging a new employee into our system.

8 comments on Creating a Better Customer Service Workflow: Part 3 – Synchronized Text Expansion with AutoHotKey & Dropbox

  1. [...] problem with the way we did things previously. In part two, I’ll go over our solution, and in part three I’ll outline one of the major changes that has drastically increased the speed at which we [...]

  2. Rob says:

    Given the system you’ve got planned for this, do you need your CS people to actually be present in the warehouse? Do you need them to even be in the US? Will they be working fixed hours, or a ROWE, or helping out with general crap when they’re not on emails?

    • Adam McFarland says:

      This is a really good question, one we’ve been grappling with quite a bit.

      We’re likely going to have this next person spend most of their time in the warehouse. When someone changes an order it’s much easier to physically walk outside and change it rather than having to communicate to the warehouse staff. We’re also going to be having this person manage returns and damages, both of which require some warehouse time. Plus we’d like to train them as a warehouse backup so that we have to be the backup less often :) Long term though, there’s the potential to have them working anywhere.

      In terms of fixed hours or ROWE, that’s something we’ve yet to figure out. In the beginning we’ll likely spell things out very specifically, and then become more flexible over time. My partner Greg always preaches that it’s much easier to do that than to be lax and get tougher later on, something I agree with completely.

      • Rob says:

        Sounds like a fine plan. I wholeheartedly agree with Greg – I think it could be very tricky to go the other way…

        How much time is actually spent on CS at the moment? What will the time freed by taking on a new employee allow you to do instead?

        • Adam McFarland says:

          My best guess is that customer service would average out to be a 30 hour a week job. The problem is that some weeks it would be 15 hours and other weeks it would be 60. So we’ve got to cross-train this next person on some other stuff for when they have down time. If there’s a 60+ hour week of CS, it’s easy for one of us to jump in and help. To be honest, mostly the time freed up by taking this person on will just be increasing our sanity. When it spikes to 60 hours right now it causes chaos in our lives. I think everyone just wants to work a more balanced week without having to worry about the day to day quite as much. With this person in place we shouldn’t have to be involved every single day like we are now. We could all use more free time on the weekends, more vacations, etc. This year has really pushed us and we’ve had a great year, but no one wants to work like this for the long term. I want to make more money, but I also want the flexibility to work less. This person will probably impact the “working less” a lot more than the “making more” part of that statement.

          • Rob says:

            Yeah, 60hrs/week on CS doesn’t sound fun! How’s your mix of phone vs online support at the moment? Do you think that will change when you take someone on?

            Also – how much of the CS you’ve got can you not automate or is it not worth automating? Presumably things fall into broad categories like Customer error / Customer question / Shipping company error / Stockout / Customer too lazy to check order status online so emails to ask and so on…

          • Adam McFarland says:

            We do almost no phone support right now. Any voicemails we do get we try to answer via email. Maybe 1 in 10 voicemails actually require a call back, which we do. My thought as of right now is not to change that with an employee. We made the decision that phone support isn’t worth our time (lots of 45 min calls with no sales or a $15 purchase), so I don’t really think it’s worth our employee’s time either. Maybe some day we’ll have enough $ to staff someone full time on the phones and have it justify their salary…but that time is not now for sure.

            The automating is a trickier question. I think we’ve gotten it 95% of what we want “automated” – either inline FAQs before they contact us or simply solving the problem with a website fix. You can always take it a step further (say, scanning their text for common phrases and suggesting FAQs prior to allowing them to submit the question). I feel like we make it difficult enough to contact us that I don’t want to add another step to frustrate those legit contacts. We do have another round of revising to the FAQs prior to hiring someone, but that’s only like a half day project.

            The one thing we struggle with is whether or not to allow customers to modify their own orders (add/remove products, cancel the order, etc). We’ve decided not to. We have the programming in place that makes it easy for us to do it on the backend. One reason is that many times after an order has been processed we can still physically add the item to it prior to it leaving the warehouse, whereas if they had the feature it would have to stop working prior to being processed. We were going to do it once, and we still may eventually. When we sat down to map out the features we ran into lots of little scenarios that we didn’t like – such as the one above, modifying coupon codes, shipping charges, splitting heavy orders into 2 boxes, etc – that we decided to keep it the way we have it so we can control those things. Eventually though, it may save us enough money to make it worthwhile to build a system.

            For what it’s worth, there’s also a good will that we build with the customers when we help them quickly. It’s one of our best marketing tools. So while I want to minimize customer service, I also don’t want to make it so hard to contact us that we don’t get the opportunity to impress our customers.

  3. [...] my next post I’m going to discuss how we use synchronized text expansion to speed up our response time. [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

Commenting Rules

Wow. I'm honored that you found this post interesting enough to leave a comment. Before posting, I have a few ground rules:

  • Please keep your comments as relevant to the post as possible.
  • No personal attacks or any other nastiness.
  • Your first comment is subject to my approval.

Thanks!