Optimize Message Sending & Message Post-Processing
Optimizing Send
Our send message process was doing a lot of work and had a lot of steps. As we continuously evaluate how to support more send throughput, we identified a number of optimizations and restructuring that would allow us to achieve higher send rates. This includes caching items, moving some processes to the queue step instead of send, and many more. This update is only being applied to Conversations in this release. In the next release, we will update Blast to use the new method.
Message Post-Processing
Piggybacking on optimizing send, we have identified a number of use cases where instituting a Message Post-Processing step would allow us to do a number of valuable actions without impacting throughput of sending or receiving. Examples use cases for post-processing:
Updating the last message timestamp on a conversation
Updating Blast after all of the messages have actually been delivered instead of just when they are queued
Associating our link shortener, shortened links in messages for reporting
and several more...
As part of this release, we created a formalized post-processing system that will make improving (or implementing) the above-mentioned use cases possible.
v1 to v2 Migration Tool Progress
We have started on the tool that will allow us to migrate message, conversation, and line data from v1 to our v2 platform. This will ultimately be the tool that allows us to migrate clients off of our v1 platform and put them onto our v2 platform, which is the platform where all of our active development and enhancements occur.
In this release, we completed the DBContext and Scaffolding as well as the data access layer for the process to move data. We will now go through each applicable database table on v1 and map the data migration process for how it will get to its appropriate v2 database table.
Link Shortener Progress
In Q2, one of our roadmap items is to create our own private link shortener for our clients to use in their texts.Â
The goals of this link shortener are:
To allow people to use a private link shortener for better carrier deliverability (commercial link shorteners like bitly get blocked)
To allow clients to use less character space in their messages when sending links
To provide click tracking on shortened links for reporting to tie back click thrus that can be associated to messages and Blasts
To create a link shortener tool that can be used both natively inside of our platform, but also by any of our platforms (v1 & Capacity) so it is available via API
We will continue to make progress on this feature over the next release or two. In this release, we completed the database set up and data access layer.
Data Utility | Backfill Message Statuses
We created a reusable utility that allows us to backfill message statuses when there are issues with carriers, a production issue that stops processing, or if webhooks are not configured prior to sending blasts. When these situations occur, messages stay in a "Sending" status because we are not processing the status webhooks. This impacts the display in our conversation history, but it also signficantly impacts reporting accuracy. Messages that are actually delivered get reported as sending.
We can now target a specific line and run the utility that will go out to the carrier and retrieve the message status and update the database appropriately.
Smaller Items
Progressive Web App | Add a Back to Login link on the Forgot Password Page
Nice | Start Polling on Chat Creation Line Flag
RingCentral | Ignore Support Users for Team Creation/Message Posting
Sinch | Add Base URL to Config