It’s been a busy few weeks since launching on Product Hunt. We have announced our latest funding round and onboarded a bunch of awesome customers. In all the hustle and bustle we somewhat fell out of our regular changelog cadence 😅 Anywhooo… better late than never, right?
🚀 Bulk actions

When working within the customer queues you can now perform bulk actions. This means you can select a number of customers in the same queue and perform an action on all the selected customers. The bulk actions available are:
- Assigning all selected customers to one user.
- Unassigning all selected customers.
- Snoozing all selected customers.
- Unsnoozing all selected customers.
- Marking all selected customers as helped.
We've also added some keyboard shortcuts to these actions to make it even faster.
👩💻 Demo workspaces
When signing up to Plain you can now create a demo workspace with one click.
You’ll get a bunch of customers, customer cards and an email address so you can experiment with how Plain works without having to set up anything yourself and pretend to be a customer.
👾 New API components
For Custom Timeline Entries and Customer Cards you now have a few more components to better structure your data.
- Copy Button: To make it easy to quickly copy useful data like ids or links etc.
- Row: This lets you easily place things next to each-other
- Container: If you have a list of something you can use a container to wrap some components in a small border.
- Plain Text: Useful if you want to create a custom timeline entry with user generated content and don’t want to use markdown.

🗑️ Delete customers API
You can now call the delete customer mutation from your own systems to programatically delete a customer and be GDPR compliant without having to manually reach out to us 😅
✨ Improvements
- When you set up a workspace you are now greeted with a nice little tutorial showing you how to get the most out of Plain and suggesting nice follow-on actions such as customising notifications.
- Improved navigation on all screens outside of a workspace to make it easier to get in touch if you run into issues.
- Improved API validation error messages on array input fields so you can now tell which specific item failed validation.
- Improved the settings navigation so that it’s grouped more logically and that it’s easier to… navigate.
- When you sign-up we now pre-fill your details using your google auth details so you have less typing to do.
- When you set up emails we now handle a more exhaustive list of email errors with specific error messages so you know what to do to fix the issue.
- Improved empty states in customer sidebar to better explain why it’s empty and what you would see there normally.
- You can now sort customer cards by dragging anywhere in the row, not just the handle.
- Improve error messages when a customer card request expires to more clearly tell you what happened.
- Visually tidied up the customer sidebar to make better use of space.
- Add ability to sort customers in queues.
- Added keyboard shortcuts “S” and “H” when on a customer to quickly mark them as Snoozed or Helped respectively.
- Improved colour contrast on our marketing website for better accessibility.
- Improved UI performance on the customer page to make typing feel smoother. Our react renders are roughly 10x faster when typing so we consistently hit 60fps.
- Marking as Helped, Snoozing and Unsnoozing should be roughly 1923x faster now.
- We now have documentation on how to set up email and chat
🦟 Bug fixes
- Various tooltips are now once again rendering correctly above all content.
- Fixed an edge case which resulted in customer timelines being refetched needlessly resulting in a slower experience.
- The enable email button now correctly shows a loading state when it’s… loading.
- Fixed a bug which prevented customer card settings from being updated if you had made more than 25 cards.
- Fixed some layout/scrolling issues with the Mark as Helped button on mobile.
- Fixed a bug which prevented slack notifications from being delivered when a message exceeded Slacks’s message size limit.
- Fixed a bug which prevented
@team-plain/react-chat-ui
from working in certain setups where dynamic imports are not allowed (Create React App for example). - Handle auth expiry more gracefully and redirect to the login page.
- Fixed a bug which let you remove admin roles from other users if you were allowed to manage roles but were not an admin yourself.
- Fixed client side handling of permission errors to more gracefully tell you when you have insufficient permissions to view a page.
- Fixed a bug which resulted in certain emails being marked as unverified/untrusted when they were in fact fine.
- Visual fixes to composer when sending long emails which resulted in the text touching the send button.