👋 Happy New Year! (Is it too late to say that yet?)
Our goal is to build the fastest way to provide great customer service in both UI and code. When you use Plain, you should feel several times faster than any of the tools you’ve used before. To realise that ambition, we want every aspect of our workflow to be considered and optimised for speed.
Customer service in particular has some really unique (and fun!) design constraints. A few that we think about a lot at Plain are:
- Conversations are messy and unpredictable. They can start in any which way, from an email with all the information we need, through to a single message that says “Hi I need some help”. They can range from a single problem resolved over a few messages to multiple, unrelated issues discussed over a long-running thread; they can be as quick as two messages and as long as a hundred. How do we build something that’s robust enough to work seamlessly across all these scenarios?
- The correct way of doing something should also be the fastest way of doing something. In many tools, these are two different things: There are half a dozen buttons and form fields to do a single thing in several different ways, so people end up taking the path of least resistance - which often isn't the way the tool is intended to be used. In Plain, we want there to be a single, fast and effortless path for all core workflows.
- Your tools should help you, not hold you back. At the same time, there being a single path can’t ever feel limiting or constraining - it can’t be “computer says no”. The tool you use shouldn’t feel like something you have to contend with and overcome, but something that makes you faster and better at what you do.
This makes designing a reliable and quick workflow for helping customers particularly intricate. So to kick off the new year, we thought it’d be fun to break down how we apply these principles when building something like our new customer service workflow, which breaks down into four steps:
First things first: Who’s helping?
The first step and most important foundation in our workflow is assignment: Letting your team know that a customer is being looked after.
Previously, we'd let you chat to the customer without assigning yourself, and as a result it was too easy to forget this step. We've now brought this action into our composer, so assigning yourself to a customer is a simple and natural way to kick off the conversation.
You might not want to do this in every instance though. For example, if you’re a manager helping out on a conversation or a colleague briefly stepping in for someone else, you might want to chat with the customer without being assigned to them. In that case you can now simply hit Skip to get to the next step, and we’ll remind you again later:
What are you helping them with?
Next, you’ll want to find out what you’re helping them with. Collecting this data early on is important so we know how long certain problems take to resolve - reporting is only as accurate and trustworthy as the data you’re collecting. In Plain, the way we do this is via Issues - a single, controlled list of the kinds of things that can go wrong in your world.
Previously, you’d have to go to a different part of the UI to do this - but now you can pick the issue the customer is experiencing right here in the composer.
Sometimes you’ll get a simple “Hi” and won’t know this information right away. In this case you can simply select “I don’t know yet” and we’ll remind you again later to select an issue.
Now you've dealt with assignment and issue selection, it’s time to help the customer!
Wrapping it up
Just as important as knowing when an issue started is knowing when we’ve helped the customer and we’re ready to help someone else. This is now as simple as clicking “Mark as helped” in the composer.
Assembling it all...
We’re left with a simple, smooth workflow where everything happens in one place 🚤:
Compared to our previous version, that’s half the amount of clicks, time and thinking. It might not be significant on an individual basis, but multiply that across a few hundred customers on a daily basis, and you’ve suddenly saved yourself an hour.
This work is a good illustration of the kind of tool we are building - one where every interaction feels like it's there to make things a little bit easier and faster. ✨ Lots more to come in this area!
- We’ve been struggling with our main brand font in terms of readability. To improve this, we’ve changed our main text font in the support app to Inter.
- As part of the above, we’ve also done a bunch of visual cleanup and tightened everything up a bit!
- In our core API you can now query for a customer’s issues directly as a sub-resolver of customers. This is useful if you are listing customers and want to see issues on an individual customer basis.
- In our core API you can now also finally remove a user from a workspace. This is now safe to call and will always ensure at least one admin is left per workspace.
- We also improved our customer queue’s default sorting so that customers who get in touch are, by default, worked on in first-in-first-out order. To aid this, we now sort customers by the duration they’ve been active for (i.e.
timeSinceLastIdlein our API).