Ability to Soft Delete Messages in Conversations - VIDEO DEMO
We added a feature to allow our clients to soft delete messages in a conversation. There are a couple of use cases for this - primarily when sensitive information is shared and the customer doesn't want it to continue to be visible in the message history.
Deleting a Message - To delete a message in a conversation, simply hover over the message an a delete icon will appear. If you want to undo a delete, hover over the message bubble and an undo icon will appear.
This is a Soft Delete - That means we are not actually deleting the message from the database entirely. This is done for several reasons, but it is also what allows for the "Undo" action.
Admins & Users with Conversation Management Permissions - Only users with the admin role and/or the Conversation Management permissions will be able to do this action.
Reporting Impact - Deleted Messages will still show in reporting. We will still provide record of the message in our reports.
Reply All Group Messaging
This feature is not yet complete, but we have made substantial progress on it. A full video demo will be provided when the feature is complete.
Reply All Group Messaging is the type of conversation where up to 9 contacts and a client can all be in a the same conversation, replying to each other. It is a feature that is ONLY available to clients who provision lines through Bandwidth as a carrier (which is supported in the new platform). This is because Bandwidth is the only carrier that supports group messaging out of the box.
Items in this release:
Bandwidth Webhook Subscriptions - We wrapped up the last piece of the Bandwidth integration that allows us to be notified on message statuses and receipts.
Create Group Message Form UI - If an account and user have the Group Messaging feature enabled (and have a Line that has Group Messaging enabled), then they will see a new option in the Create New menu at the top of Conversations. Clicking it will open up a form allowing them to select up to 9 contacts and send a message to create the new Group Message.
Group Message Display Updates - Since Group Messages will have multiple contacts within the same conversation, we need to update how we display these types of conversations to both quickly indicate it is a Group Message and also provide clarity on who is included in the group and who said what.
Message Panel - We have added new avatar colors for the contacts that will display at the top of the message panel and within the message history to indicate how many people are in the group message, who is who, allowing you to click and edit each contact, and provide clarity on who sent which message in the conversation.
Sidebar - For the sidebar inbox view, we had to update the conversation cards to make it readily apparent when something was a Group Message vs a regular conversation. We had to update the display to include how many people are in the Group Message as well as an update to how we display the avatars to have a quick visual reference when something is a Group Message.
Account Manager Tool (CRUDy) Updates
Additional enhancements to CRUDy to make client setups and management easier and more scalable.
Bulk Creation of Lines - For our RingCentral and Genesys Communicate customers, there are often a significant number of lines that need to be set up in our platform. Similar to what we did for user creation, we have added an option for our team to create lines in bulk. This new feature will allow you to select the account, line type, texting service and integration type for the lines and then upload a CSV file. On upload, it will create the lines in the account, grant them the same permissions as the account, and generate the webhooks (if they are Zipwhip lines).
Select Permission Template in Bulk User Creation - Because our platform is so modular, we have different permission options for different types of customers, e.g. RingCentral MVP accounts have different permissions than Genesys. A few releases ago, we created Permission Templates and now we are surfacing them in the Bulk User creation form so it is easy to select and apply the right permissions for the users being created.
Public API Updates
CANCEL Blast Campaigns - We now have an API call that allows you to cancel a Blast campaign. Not all Blast campaigns are eligible to be cancelled. Only campaigns with the statuses of Running or Scheduled can be canceled.
Blast Campaign Status Webhook - We have created a new type of webhook event that pushes out an event notification when a campaign starts sending and when it is completed. This is intended to help clients who choose to integrate with Blast via the API, understand when campaigns enter into those specific statuses so they can update their system.
Generating an API Key - If a client has the Public API feature turned on for their account, they will now see a new section on their Manage Account page. In this API Settings section, clients can generate their own API key to use to integrate with the API or if one is already generated, get confirmation that one exists and have the option to generate a new one.
Quality of Life & Usability Updates
Adjust the Blast Scheduler UI - To make it easier to use on smaller screens where the date input was being squished, we have updated the design so that the input gets the full width and the calendar icon is clickable. This should eliminate the issues users have with scheduling messages on a small laptop or lower resolution screen.
Signup Page Mobile Experience Improvement - Because the signup page had an animated panel along side of the form, it didn't create the best mobile experience. We have updated the mobile design of this page to highlight just the form and make it easier for users who accept their invitations on their mobile phone to complete their sign up.
CTRL+Enter Command for Sending Inconsistent - We resolved an issue that was causing the hotkey command to send a message to work inconsistently. Now if a user hits CTRL+Enter to send a message, it will work on every message send.
Updated Invite Email Address Validation - We updated the validation on the front end that determines if an email address entered in the invite box is valid or not. We have clients who have numbers in their domain and it was causing our validation to think it wasn't a valid email address. This has been corrected.
Hide Dashboard Stats Based on Permissions - We now check user permissions in a more detailed fashion to determine which big number stats on the dashboard each user should see. For example, if the specific user doesn't have access to Blast (even if the account does) they shouldn't see the Blast message count stat.
Contact Import Button on Contact History - We added a Contact Import button to the Contact Import History page for easy access to do additional uploads.
Billing Reporting Updates
Add BillingEnabled Flag to Lines - To denote which lines in our system should be counting for billing, we have added a toggle in CRUDy (default enabled) that writes to a flag in the database that can be used when we go to build billing reports for both internal and Nice billing feeds.
Record Message Protocol Type in Messages DB - This implements a method that determines (based off of the carrier's logic) if a message is SMS or MMS and records that in the Messages DB. This is necessary for our ability to report on message types for billing purposes since SMS and MMS have different costs.
Bugs Resolved
MEDIUM - Include Signature Button Auto-Disabling - We corrected the issue with Signatures that was causing the user to have to enable it again for every message send.
HIGH - Standard Users Could Not Transfer Conversations - In the scenarios where a Standard user had the Conversation Management permissions, we had an underlying call that takes place when trying to get other users available to transfer to, that was too strict on its permissions. This was preventing transfers because the user dropdown would be blank.
MEDIUM - Blast Date/Time Picker Send Window Workaround - There was a workaround hack that a user could do to get around the front end's enforcement of scheduling messages outside of the send window. We have closed that gap and no longer give the appearance that you can schedule outside of a send window. (Our backend validation and logic still would not send the messages until the next valid send window.)
MEDIUM - Response Template List Showed Disabled Items - We updated the logic that shows the response templates available to use in the message box to make sure that it evaluates the isEnabled flag and hides them from selection if they are disabled.
MEDIUM - Safari Browser Notifications Not Working - This is a long and complicated one, but in short, Safari doesn't handle the technology for push notifications in the same way that other browsers do. We had to register our service worker (the thing that handles bubbling up the notifications through the browser). While we have resolved the main issue on our side, we are still awaiting the release of Safari version 16 for our changes to have meaningful impact.
Finishing Touches to the Integration
This release signifies the last of the core items for the product integration we want to have ready to be able to onboard clients onto the new platform. We have done extensive testing and uncovered things along the way that we have patched in this release. Prior to onboarding clients though, we still have some setup features in CRUDy for the Implementation team to make it easy for them to setup new clients.
Outbound Scripting and Clean Up
Initiated Outbound ReqAgent Handling
Push Outbound Messages From Popout Panel to Nice Chat
Popout Panel Style Adjustments