PodSearch

Developing Perspective

#98: Practical Helpdesk

 

00:00:00 ◼   ► Hello and welcome to Developing Perspective. Developing Perspective is a podcast discussing

00:00:04 ◼   ► news of note and iOS development, Apple and the like. I'm your host, David Smith. I'm

00:00:08 ◼   ► an independent iOS and Mac developer based in Herndon, Virginia. This is show number

00:00:12 ◼   ► 98, and today is Tuesday, December 4th. Developing Perspective is never longer than 15 minutes,

00:00:17 ◼   ► so let's get started.

00:00:18 ◼   ► All right, so the topic I'm going to talk about today deals with a practical approach

00:00:24 ◼   ► to doing help desk support.

00:00:29 ◼   ► And this is a good beginning,

00:00:32 ◼   ► sort of a bit deep in the weeds,

00:00:33 ◼   ► a little bit practical if you're developing an app.

00:00:35 ◼   ► This will probably be very helpful,

00:00:38 ◼   ► but it's definitely going to be more of

00:00:39 ◼   ► an actionable kind of a walkthrough talk.

00:00:40 ◼   ► So just a heads up, if that doesn't interest you,

00:00:44 ◼   ► by all means, skip it.

00:00:46 ◼   ► But this is basically, this is how I set up

00:00:47 ◼   ► help desk support for any of my apps.

00:00:50 ◼   ► This is the process I go through

00:00:52 ◼   ► whenever I'm building a new app,

00:00:49 ◼   ► how I do it practically whenever I'm actually doing the work, and how that process works.

00:00:54 ◼   ► So hopefully, if this is something you've been thinking about, it will be helpful.

00:00:58 ◼   ► So the first thing you're going to want to do, and this is part more of even just the branding of your application

00:01:02 ◼   ► and all that kind of a process, is you're going to want to get a domain for your application.

00:01:07 ◼   ► This may be a domain for your business, it may be a domain for this application specifically,

00:01:11 ◼   ► but you'll need some domain somewhere to do it.

00:01:16 ◼   ► say checktheweather.co is the domain I got for Check the Weather.

00:01:21 ◼   ► I've got one for my recipe book.

00:01:25 ◼   ► I have one for audiobooks.

00:01:27 ◼   ► I've got a bunch of different domains.

00:01:28 ◼   ► I tend to partition them by app as much as I can,

00:01:30 ◼   ► and that's mostly just because domains are fairly inexpensive.

00:01:34 ◼   ► It's $8 to $10 or something for a domain these days.

00:01:38 ◼   ► And it allows you to partition later,

00:01:42 ◼   ► so you can apply rules and filters and do some clever stuff on the backend.

00:01:45 ◼   ► and it lets you also let you potentially divert messages

00:01:49 ◼   ► to different people.

00:01:51 ◼   ► So once you have your domain--

00:01:53 ◼   ► typically I use Google Apps for my actual email hosting.

00:01:56 ◼   ► This is a free thing Google provides.

00:01:58 ◼   ► So Google will question the benefit

00:02:00 ◼   ► of Google Apps for your actual personal email,

00:02:03 ◼   ► for your business.

00:02:04 ◼   ► But personally, like support, I found

00:02:06 ◼   ► it to be very, very helpful.

00:02:07 ◼   ► They have a lot of built-in things

00:02:08 ◼   ► that I'll talk about later that make it really fast.

00:02:11 ◼   ► It's available everywhere.

00:02:12 ◼   ► You can access it anywhere.

00:02:13 ◼   ► Their infrastructure is very reliable.

00:02:15 ◼   ► Their spam filtering is excellent.

00:02:17 ◼   ► So I choose Google Apps.

00:02:19 ◼   ► I think you just go to like google.com/a, I think,

00:02:23 ◼   ► or just start Google for Google Apps.

00:02:24 ◼   ► I'm sure they'll help you set it up.

00:02:26 ◼   ► And you go through this little dance,

00:02:27 ◼   ► and you prove that you own the domain,

00:02:29 ◼   ► and you have to set some DNS records.

00:02:31 ◼   ► And I mean, it's a little fiddly, but it's not too bad.

00:02:34 ◼   ► And there's little walkthroughs based on different registrars

00:02:36 ◼   ► and stuff.

00:02:36 ◼   ► So it's a fairly easy process to go through.

00:02:39 ◼   ► But if you're sophisticated enough to build an app,

00:02:41 ◼   ► I'm sure you can handle it.

00:02:43 ◼   ► And once you've set it up-- so say, for example, in this case,

00:02:45 ◼   ► I have support@checktheweather.co.

00:02:49 ◼   ► And that's the email address that I'm

00:02:50 ◼   ► going to have people be sending their emails to.

00:02:54 ◼   ► And so the next thing I need to do

00:02:56 ◼   ► is put that address out in places

00:02:58 ◼   ► that people can access it.

00:03:00 ◼   ► So almost all of my apps, I have a contact me, or email support,

00:03:06 ◼   ► or get help, or whatever I want to call it in the app,

00:03:09 ◼   ► whatever makes sense in its context.

00:03:12 ◼   ► I put a button that pops up a standard Compose window.

00:03:16 ◼   ► And this is a standard--

00:03:17 ◼   ► I think it's the MP Message View Controller, something

00:03:21 ◼   ► like that.

00:03:21 ◼   ► But it's a very standard control,

00:03:24 ◼   ► and you can just find it easily and insert it.

00:03:25 ◼   ► Basically, it's just a little pop-up

00:03:27 ◼   ► that gives them a native email address form.

00:03:32 ◼   ► One thing that I really recommend you do

00:03:34 ◼   ► is in the bottom of that--

00:03:36 ◼   ► so you can pass, I think, an HTML blob

00:03:39 ◼   ► into the compose window, which then will be shown to the user

00:03:43 ◼   ► when they're actually going to start typing in.

00:03:46 ◼   ► And what I always do is I insert maybe like 10 or 12 new lines.

00:03:50 ◼   ► And then I have a little section that says app and device information.

00:03:54 ◼   ► And in there, I include whether it's an iPhone or an iPod Touch, the iOS

00:03:57 ◼   ► version, the app version, and exactly which app it is.

00:04:01 ◼   ► And so that's based on-- so say if I have a paid and a light version,

00:04:04 ◼   ► I'll say check the weather light or check the weather.

00:04:08 ◼   ► I'll include all those, everything that will help me debug it later.

00:04:11 ◼   ► The most important is the iOS version and the app version.

00:04:16 ◼   ► Those two things together are invaluable in trying to debug problems.

00:04:20 ◼   ► So often I'll get somebody who's like, "Hey, I'm setting this bug."

00:04:23 ◼   ► And I'm like, "Really? I thought I fixed that like two versions ago."

00:04:26 ◼   ► And then I can look down and be like, "Oh, you haven't updated."

00:04:28 ◼   ► And it's the best thing to just be able to say to the user,

00:04:30 ◼   ► "Hey, there's a version that fixes this. Go to the App Store, install it."

00:04:33 ◼   ► And honestly, a lot of times that almost feels magical to users

00:04:36 ◼   ► because it's as though I was able to immediately just solve

00:04:40 ◼   ► their problem.

00:04:41 ◼   ► And obviously, it's something that I did weeks ago,

00:04:43 ◼   ► but often the response I get from that is great.

00:04:45 ◼   ► So that's just something that you want to do.

00:04:47 ◼   ► You pop the Compose window.

00:04:49 ◼   ► It's pre-formatted with your support address.

00:04:51 ◼   ► They'll send you an email, and off you go.

00:04:54 ◼   ► So when you're actually going to then work on that email support--

00:04:58 ◼   ► and perhaps maybe it's good to take a step back and say,

00:05:00 ◼   ► why do you email support?

00:05:03 ◼   ► Telephone support is completely impractical for a small app.

00:05:06 ◼   ► and don't do it.

00:05:07 ◼   ► Though, funny story, there was a period of time

00:05:09 ◼   ► when Google's Android market was getting set up

00:05:12 ◼   ► that by default they published your contact phone number.

00:05:16 ◼   ► Totally unbeknownst to me, and I started getting

00:05:19 ◼   ► these random calls from people asking for help desk

00:05:22 ◼   ► to my cell phone, 'cause that was my main phone number.

00:05:25 ◼   ► Let's just say that was the quickest thing,

00:05:27 ◼   ► time I ever was able to sort of run to the Android portal

00:05:31 ◼   ► and turn that off, 'cause that was infuriating

00:05:33 ◼   ► to just be getting these random calls at all hours.

00:05:35 ◼   ► But basically, email support works great.

00:05:38 ◼   ► It's nice and asynchronous.

00:05:39 ◼   ► It's nice and universal.

00:05:42 ◼   ► Pretty much everyone has an email address.

00:05:44 ◼   ► You can be fairly responsive with it if you need to be.

00:05:47 ◼   ► But if you're not, things just kind of queue up.

00:05:50 ◼   ► And I find that by having an email button directly

00:05:54 ◼   ► in the app, I get a reasonable volume of email.

00:05:56 ◼   ► It's not a huge volume.

00:05:58 ◼   ► I mean, for most of my apps, or across all my apps,

00:06:01 ◼   ► it's probably somewhere on the order of about 100 emails a day

00:06:04 ◼   ► that are being processed coming in.

00:06:09 ◼   ► And so it's certainly a burden,

00:06:12 ◼   ► but it's not a crazy one,

00:06:14 ◼   ► but I definitely think it helps with my ranking

00:06:16 ◼   ► and with my customer happiness

00:06:18 ◼   ► because people have an avenue to vent

00:06:20 ◼   ► that isn't in the App Store reviews.

00:06:24 ◼   ► And by putting that button front and foremost,

00:06:27 ◼   ► if you hit Help or you hit Settings in any of my apps,

00:06:29 ◼   ► there's a button that says Email Me.

00:06:31 ◼   ► If they're having a problem,

00:06:29 ◼   ► Most people's first reaction is to hit that and then ask me a question,

00:06:33 ◼   ► because that's actually a practical thing that'll probably result in help,

00:06:37 ◼   ► versus if they don't know how to do that and they have to find your contact information somewhere,

00:06:42 ◼   ► I find that a lot of people would just go to the app review area and just say, "Oh, man, the app doesn't work."

00:06:47 ◼   ► When in reality, it probably does, and it probably is just an understanding thing

00:06:51 ◼   ► or an education problem that I need to be working on.

00:06:53 ◼   ► So that's why I do email, and it seems to really work, and overall,

00:06:56 ◼   ► It helps my apps ratings in the store.

00:06:59 ◼   ► So a couple of settings you're going to want to do in your Google apps to make this process

00:07:03 ◼   ► go so much faster.

00:07:05 ◼   ► And these are some of the things that I've learned over time.

00:07:08 ◼   ► At this point, I can burn through my 100 emails when I need to very quickly.

00:07:15 ◼   ► And so basically, the first things you want to do is there's three labs settings in Google

00:07:19 ◼   ► apps that you can set.

00:07:20 ◼   ► And these are, you want to think settings and then labs, which is basically just what

00:07:24 ◼   ► Google calls kind of experimental or non-core features, and you want to turn on auto-advance,

00:07:31 ◼   ► background sending, and send in archive. And I'll walk through those in step. So auto-advance

00:07:37 ◼   ► is a great little feature that when you archive a message, it automatically displays the next

00:07:41 ◼   ► message, and you can choose the order, whether you want to see the newest or the message

00:07:46 ◼   ► newer or the message older, and that just depends on the order, how you tend to work,

00:07:50 ◼   ► or top down or bottom up.

00:07:52 ◼   ► Basically what that does for me is,

00:07:55 ◼   ► as I'm going through, I can very quickly just go through.

00:08:00 ◼   ► There's no navigation.

00:08:02 ◼   ► Background sending you want to enable because it's just a speed thing.

00:08:05 ◼   ► Every time I hit Send, I don't want to wait for it to send.

00:08:09 ◼   ► It's great that it immediately loads the next message

00:08:11 ◼   ► because I have auto advance enabled,

00:08:13 ◼   ► and I can just be plowing through without any delay.

00:08:16 ◼   ► And then Send in Archive is great just as a coordination thing

00:08:19 ◼   ► because whenever I'm sending a message,

00:08:22 ◼   ► I typically want to archive it

00:08:23 ◼   ► so that I'm clearing out the inbox.

00:08:26 ◼   ► 'Cause the way I tend to do it is

00:08:27 ◼   ► rather than doing folders or stuff like that or flags,

00:08:30 ◼   ► if anything in the inbox hasn't been responded to.

00:08:32 ◼   ► Red or unread doesn't mean anything

00:08:34 ◼   ► because often there'll be back and forth.

00:08:36 ◼   ► I read something, then I have to go look something up

00:08:38 ◼   ► and I come back.

00:08:39 ◼   ► But for me and my style, if it's in the inbox,

00:08:41 ◼   ► it needs to be responded to.

00:08:43 ◼   ► And those three features probably increase my productivity

00:08:46 ◼   ► like 50%, 80% maybe even, from the old style

00:08:51 ◼   ► what I used to do.

00:08:52 ◼   ► And I would do all this in the web interface

00:08:53 ◼   ► because I found that to be the most responsive version

00:08:56 ◼   ► of this.

00:08:57 ◼   ► I've tried it, you can get it in mail or spare or something,

00:08:59 ◼   ► but I just never, I can never optimize it quite as much

00:09:02 ◼   ► as I was by setting those three features

00:09:04 ◼   ► in the web interface.

00:09:06 ◼   ► And then the other thing you want to do

00:09:07 ◼   ► is you want to buy TextExpander.

00:09:09 ◼   ► This is by Smile Software.

00:09:10 ◼   ► It's a great little product.

00:09:12 ◼   ► It's useful for a lot of things, but for help desk,

00:09:15 ◼   ► It is tremendously helpful.

00:09:17 ◼   ► I know some people use canned responses, which

00:09:19 ◼   ► is another Labs feature in Google Apps.

00:09:21 ◼   ► But for me, I found that to be too heavy-handed.

00:09:25 ◼   ► And a canned response is you hit--

00:09:28 ◼   ► this is my response about thank you for that feature request.

00:09:33 ◼   ► And you have this whole long response that you've

00:09:36 ◼   ► pre-formatted and you're sending to somebody.

00:09:38 ◼   ► But for me, what I find is that that often feels like a form

00:09:41 ◼   ► letter to the user.

00:09:43 ◼   ► And it is because you're not able to really customize it

00:09:46 ◼   ► to exactly what they're saying.

00:09:48 ◼   ► And so it comes off feeling kind of cold

00:09:52 ◼   ► and not necessarily as attentive, maybe,

00:09:55 ◼   ► is the right word.

00:09:57 ◼   ► And so instead, I use TextExpander

00:09:59 ◼   ► to create a meta language or vocabulary for how I do support

00:10:05 ◼   ► and the phrases I use a lot.

00:10:07 ◼   ► And you're certainly going to end up

00:10:09 ◼   ► with a little bit of a formulae process to this,

00:10:12 ◼   ► but it lets you be much more customized.

00:10:17 ◼   ► So say, for example, if I type "sorry,"

00:10:19 ◼   ► text expander expands that string out into,

00:10:24 ◼   ► "I'm so sorry you're having this issue,"

00:10:28 ◼   ► which is a phrase I use whenever someone's having a problem,

00:10:31 ◼   ► that's often how I'll start it.

00:10:33 ◼   ► It'll be like, "Joe, I'm so sorry you're having this issue,"

00:10:35 ◼   ► space.

00:10:38 ◼   ► And then I'll usually actually type in what the response is,

00:10:40 ◼   ► but it lets me save a lot of time when I just expand "sorry" that way.

00:10:44 ◼   ► And I'll build these up. I have a whole array of them for different issues.

00:10:48 ◼   ► Someone who says, "Oh, how do I switch from metric to Fahrenheit?"

00:10:52 ◼   ► or something like that. And it allows me to just pop those in,

00:10:56 ◼   ► but I'm building it dynamically and responsibly to the user.

00:11:00 ◼   ► So it actually makes sense, and all I'm doing is saving myself repeated work.

00:11:04 ◼   ► And they're so easy to create, these little TextExpander snippets.

00:11:08 ◼   ► I've written a sentence more than once.

00:11:13 ◼   ► I'll grab that sentence, throw it in the TextExpander bucket,

00:11:15 ◼   ► and then I can just reuse it over and over.

00:11:18 ◼   ► Also, nice thing, TextExpander snippets are shareable.

00:11:21 ◼   ► They're just, you can pass them around.

00:11:24 ◼   ► So I have someone else who does Help Desk for me.

00:11:25 ◼   ► And I got a question from a couple of people

00:11:28 ◼   ► about how I found that person.

00:11:30 ◼   ► It's just, find someone who you, a friend who you trust,

00:11:31 ◼   ► who's looking for a little part-time work.

00:11:34 ◼   ► That's really it.

00:11:36 ◼   ► That's all I can say.

00:11:36 ◼   ► That's how I've done it.

00:11:33 ◼   ► people who do the same thing.

00:11:38 ◼   ► Because it's a fairly simple job,

00:11:39 ◼   ► you're just trying to find someone who's really responsible

00:11:41 ◼   ► and who you probably know.

00:11:44 ◼   ► You could do it kind of outsourcy style,

00:11:46 ◼   ► but my gut says, "That's not something you want to do

00:11:48 ◼   ► for something that's as important as interacting

00:11:50 ◼   ► with your customers."

00:11:52 ◼   ► Anyway, so I can pass those back and forth

00:11:54 ◼   ► between me and Jess, who does this for me.

00:11:56 ◼   ► And so we can pass those around and build up

00:11:59 ◼   ► this vocabulary for how we communicate with our users.

00:12:00 ◼   ► And sometimes I will build a full canned response form

00:12:03 ◼   ► letter in there.

00:12:04 ◼   ► Like every now and then, there'll be something that is

00:12:07 ◼   ► just a pervasive message I'm getting.

00:12:09 ◼   ► I had one with an outage where I just had a server outage.

00:12:13 ◼   ► And everyone was emailing saying, hey, it doesn't work.

00:12:15 ◼   ► There's a server outage.

00:12:15 ◼   ► And so I had my little canned response.

00:12:17 ◼   ► And so I just said, server error colon.

00:12:19 ◼   ► And it popped it up.

00:12:21 ◼   ► And I could have used Google canned responses.

00:12:24 ◼   ► But what this allows me to do, once I build this vocabulary

00:12:28 ◼   ► and I'm in and enabled those three settings in Google,

00:12:31 ◼   ► is I can do all of my help desk from the keyboard.

00:12:34 ◼   ► I never have to touch a mouse.

00:12:36 ◼   ► So the way I do it is I go in, and I typically actually

00:12:39 ◼   ► work newest to oldest, which may be a little counterintuitive.

00:12:42 ◼   ► But because I'm always emptying out the list when

00:12:47 ◼   ► I'm doing a session, it seems to work pretty well.

00:12:50 ◼   ► And what I really love is whenever someone sent me

00:12:52 ◼   ► an email and I can respond to them almost instantly,

00:12:55 ◼   ► I feel like that is a much stronger

00:12:57 ◼   ► positive than the person who emailed me say 24 hours ago,

00:13:01 ◼   ► they're getting their message 20 minutes early.

00:13:04 ◼   ► Or it doesn't really make nearly as much of an impact

00:13:07 ◼   ► as somebody who happened to have emailed me 5, 10 minutes ago.

00:13:10 ◼   ► They're getting a response right away.

00:13:12 ◼   ► So that's why I go top to bottom,

00:13:13 ◼   ► and I've set the auto advance to do the next oldest message.

00:13:17 ◼   ► So I'll sit down, I'll hit the top message,

00:13:19 ◼   ► and then it's all on the keyboard.

00:13:20 ◼   ► You hit, I think it's R in Gmail to reply to the message.

00:13:26 ◼   ► I'll do all my little text expander snippets

00:13:28 ◼   ► or type out whatever the message,

00:13:29 ◼   ► if it's a custom message.

00:13:31 ◼   ► Then you hit Tab Enter, which it will do send an archive,

00:13:34 ◼   ► load the next message, and you just keep going.

00:13:36 ◼   ► So it's R, message, message, message, Tab Enter, message,

00:13:41 ◼   ► and then R, Command S. You work your way through this very,

00:13:44 ◼   ► very quickly.

00:13:45 ◼   ► You want to make sure you know all the Google shortcuts.

00:13:47 ◼   ► So I think it's--

00:13:48 ◼   ► if you see that you can archive messages that are junk.

00:13:51 ◼   ► But you just kind of work through this.

00:13:53 ◼   ► And that's how I do Help Desk.

00:13:54 ◼   ► I found that I've had a very strongly positive response

00:13:58 ◼   ► to this kind of style because people just seem to feel

00:14:02 ◼   ► like I'm paying attention to them,

00:14:03 ◼   ► that it's not a lot of form letters.

00:14:05 ◼   ► Even though I'm using something like TextExpander

00:14:07 ◼   ► to save me time, every person's response is custom

00:14:11 ◼   ► to their problem and their issue.

00:14:12 ◼   ► And I'm tailoring the voice and the context to that.

00:14:17 ◼   ► And it doesn't take hardly any time for me.

00:14:19 ◼   ► I'm doing a message every few seconds, usually,

00:14:22 ◼   ► if I'm really in the flow of it.

00:14:23 ◼   ► and it lets me be responsive to my users.

00:14:26 ◼   ► So if any of that makes sense, if you have any questions, just let me know. I know it's a little bit fiddly

00:14:29 ◼   ► and a little bit hand-wavy to describe.

00:14:32 ◼   ► But as always, if you have questions, comments, concerns, I'm on Twitter

00:14:35 ◼   ► @_davidsmith. I'm on AppNet @davidsmith.

00:14:38 ◼   ► The Twitter feed for this show is @devperspective.

00:14:41 ◼   ► If you want to get a notification when any new shows come out.

00:14:45 ◼   ► Otherwise, that's it for today's show. Happy coding, and I'll talk to you later. Bye.