One of the tricky things about running an integration product is that a user's experience with our product is highly dependent on their experience with at least two other products. Because of that we end up providing support for all the apps we support (almost 150 at the time of writing).
Over the course of doing this, we've learned a few things that work well and a few things that don't.
1. Provide an Experience that Doesn't Require Human Support
This requires two things: a good product and good documentation.
In a perfect world, your product is so slick that a user never needs to get in touch with support. They know exactly what to do and how to do it because your product or app makes it glaringly obvious how things should work.
If the product is a bit confusing, have documentation available so that users can read through and support themselves. The key is to make documentation available perfectly at the point of failure.
Wufoo does this really well. Anywhere in the Wufoo interface clicking on help takes you to the support documentation for the specific issues that you as a user are looking at.
Also, make sure your documentation has good search functionality, the site hierarchy makes sense, and makes copious use of tags or categories.
2. Be Responsive
The world isn't perfect and users will have questions. The number one thing a user cares about is a quick answer. Even if the answer is "we're looking into it" a user will feel good knowing that their support request didn't go into a never ending black hole.
Use tools like Zendesk or Desk to help your team stay organized and who has been helped and who still needs help. We've found Help Scout to be a giant Advil for our support load headache.
Consider using a Live Chat tool like Olark too. Live Chat can be a blessing and a curse. It forces you to pay attention to a user right away and can pull your concentration away from important other tasks. But if you can spare a person on your team to man live chat while others on the team are working it can be a huge boom to your bottom line. We've had countless users run into small issues that otherwise would have turned them away from Zapier. With live chat we solved their issue in a matter of minutes and earned a life long customer and many times a fan who spreads the word about how awesome Zapier is.
3. Be Public
The hardest sites and services to get support from are those who aren't public. Ever tried getting support from Google? For most of their products it's impossible and a quick search doesn't help.
Being public with support lets users know that you are there to help them. You do want them to succeed. And that they can ask questions and they are going to get a response.
We do this using a public help desk where many of the questions and answers are shown publicly. We also have live chat monitored almost 100% of the time during normal business hours in the United States. This lets users know that we are around and that they can expect good support from us.
4. Be Honest
Users don't like being duped or being strung along. If you can't solve what they are looking for just say so. It's tempting to try and dig for more and more information, but many times you just end up wasting a persons time who just isn't a good fit for your product so let them know that.
If the user is asking for a big feature. Tell them if the feature is coming. We get requests often for features we'd like to have, but may not get to for years. What we say is: "We'd like to support that, but that is a big feature request and one we likely won't get to in the short term."
5. Help Users Help You
Providing good support is hard.
If you haven't run into support questions like "The websitez dont work. Can you fix it?" consider yourself lucky.
For those of us in the real world, make it easy for users to give you the information you need to solve their problem. Balsamiq does this great. They ask users to upload screencasts which helps the support team see exactly where the user is struggling.
Many other SaaS services ask users to tell support how they feel by clicking on smiley or frowny faces. This gives the support team a chance to dig into the psychology of the user and relate to them. A lot of times users know what to do, they just need an encouraging hand telling them they can do it.
Sidenote: many users are afraid to click buttons and links. They've been burned by other services where clicking a button or link spammed their Facebook feed or took money from them they didn't want to give. Make it easy for users to trust you and feel like they are the ones in the driver seat and not the developers.
6. Prioritize
Some users pay you. Some pay you a lot. It's obvious that those users should get the highest priority support. In fact, I'm surprised help desk software doesn't have more native integrations with payment processors to help support teams figure out which users are paying and which ones aren't.
To help ourselves out with this we made a quick chrome extension that loads plan information from Stripe into the side bar for conversations with users in Help Scout and also auto tags conversations with whether a user is trialing, paying, or free.
Most users understand that support costs time and money. If a user is unhappy with the support they are getting let them know how they can get it or raise your prices so you can afford to give it to them.
7. Tell Users the Official Channels and Monitor Unofficial Ones
Make sure users know how to get the best support. Early on users could email me directly and I would respond right away. As my time spread thin and more people needed to help with support emailing me became a less efficient way to get support.
We had to re-train users on where to go to get the support they needed.
Make sure to man unofficial channels too. Some users gravitate towards social media like Twitter and Facebook to voice their issues. Make sure to help them there or help them get their support issues directed to the right channels.
8. Have a Short Memory
Most users are great. A few are loud and vocal jerks. It's inevitable that you will get someone who expects the world for free. If they don't get they'll go yell on Twitter. Forget those people. They aren't your core audience anyway.
Focus on making the users you want really, really happy and letting the users you don't want graciously help themselves out the door (or the back button in this case).
Summary
Support can be a hairy and thankless job, but it can also be deeply rewarding and immensely valuable.
The bar these days is set so low. Simply solving a users problem and helping them get the solution they need can make life long fans.
We often forget that software isn't if/then statements for most users. Software is pure magic. Helping users use your software effectively puts the magic in their hands and makes them feel like real wizards.