Release notes
What's new
Notable changes to RCSync. Newest first.
2026.08.04
August 4, 2026
Defects fixed
- "Fix details" during setup now works: it lists exactly which details are still needed and opens the right section on the missing field, instead of doing nothing.
2026.08.03
August 3, 2026
Added
- Send a test email for email campaigns — to your account address, another address, or both — from the campaign's message preview.
- Consent lookup now supports searching by email address, alongside phone number and tracking ID.
Defects fixed
- Email open campaigns now work end to end: the webhook accepts the recipient's `email` (the example payload and signing snippets show `email`), personalization tokens resolve in the subject and body, and the send no longer rejects email content.
- Email campaign analytics now surface a complaint rate, count hard bounces in the Failed total and troubleshooting breakdown, and hide the RCS-only cards (chip taps, replies, RCS/SMS split) that never apply to email.
- Audience file uploads for email campaigns now detect the email column instead of assuming a phone-number column.
2026.08.02
August 2, 2026
Defects fixed
- The password reset page now lists the password requirements with live checkmarks and, on failure, tells you exactly which rule wasn't met instead of a generic error.
- New users are no longer sent to onboarding after their first sign-in when the admin turned that off on their invite.
- Signing in with an account that isn't linked to a brand no longer shows a server error — you're returned to the sign-in screen with a note to contact your administrator.
2026.08.01
August 1, 2026
Added
- Email campaign analytics now report Delivered, Opened, and Clicked — the engagement funnel and reach cards fill in beyond Sent as recipients receive, open, and click your emails. Hard bounces and unsubscribes are recorded and automatically suppress the address.
- At login, you can now choose to receive your verification code by email instead of text. Text remains the default; use “Email a code instead” on the verification step to switch. Available when your administrator has turned email codes on.
2026.07.09
July 31, 2026
Added
- Email campaigns now show an email preview — subject, sender, and rendered body — on the campaign page, in place of the phone message preview used for RCS and SMS.
Defects fixed
- Email campaigns now send. Opt-out and frequency-cap suppression apply to email recipients, and email sends now appear in campaign analytics.
- Archiving a campaign now fully stops it — its automation is turned off so it can't run again.
- A failed campaign run no longer sends duplicate failure emails.
2026.07.08
July 30, 2026
Added
- Email sending-domain milestones now appear in the Registration Activity timeline on the Senders page — "Sending domain registered" when you add the sender, and "Domain authentication verified" once it passes — each tagged with an Email channel label.
Changed
- When creating a campaign, Email is now shown as its own channel group, separate from the RCS & SMS message types, so it's clear you're choosing a different channel.
Defects fixed
- Email senders now show a real status — Ready once the sending domain is verified (Verifying / Verification Failed / Domain Unverified otherwise) — instead of "Unknown". Domain verification is the only thing that gates an email sender.
- Each DNS record on the sending-domain card now has copy buttons for its Name and Value, so you can paste them straight into your DNS host.
2026.07.07
July 29, 2026
Defects fixed
- The email sender page now shows only what's relevant to email — from-name, from-address, reply-to, sending domain, and domain authentication. The phone-style preview, RCS branding fields, STOP/HELP keywords and auto-responses, and registration events no longer appear for email senders.
2026.07.06
July 28, 2026
Email campaigns — a new, low-cost channel.
Added
- Email campaigns are here — a new, lower-cost way to reach your audience. When creating a campaign, choose Email, then write a subject, preview text, and HTML body with a live preview. Opens, clicks, and unsubscribes are tracked, and a compliant footer (your company name, mailing address, and one-click unsubscribe) is added automatically. Email is available on plans that include it.
- Add an email sender from the Senders page — enter your from-name, from-address, and sending domain, then publish the DNS records we provide to authenticate it (SPF/DKIM/DMARC). A campaign can't activate until the sending domain is verified, which protects your inbox placement and sender reputation.
- A deliverability panel in the email composer flags spam-filter risks — all-caps, excessive punctuation, and high-risk phrases — as you write, so your emails land in inboxes rather than spam folders.
- Set your company's physical mailing address in Brand Settings. A valid postal address (plus your company name) is legally required in every marketing email and must be set before an email campaign can send.
2026.07.05
July 26, 2026
Added
- Short codes are now a supported sender type. A short code can be part of your plan, and once it's imported you can send SMS campaigns through it right away — there's no carrier-registration workflow to complete. STOP, HELP, and START (plus their common variants like STOPALL, UNSUBSCRIBE, INFO, and SUBSCRIBE) are configured automatically, each reusing the reply you've already set for that keyword group so a customer gets a consistent response no matter which one they text.
2026.07.04
July 19, 2026
Added
- Get a Slack message whenever a contact replies and no automated follow-up handles it. Connect a channel on the Integrations page, then pick which senders forward replies from the Inbox (new senders stay off until you switch them on). To protect contacts' privacy, Slack shows a masked number and a reference id — open the Inbox and search that reference to see the full reply.
- Any reply that no follow-up handles now lands in the Inbox — including replies to plain broadcasts without interactive follow-ups — so nothing a customer sends gets lost. Use the per-sender switches on the Inbox to control which of these also go to Slack.
2026.07.03
July 16, 2026
Defects fixed
- Onboarding edits no longer silently fail to save. The wizard saves the whole form at once, so a single invalid entry — for example a video link pasted without “https://” — used to quietly discard your other changes on that save, like a newly added message example. Now valid fields save on their own, and if a field can't be saved you'll see exactly which one to fix (and auto-save flags it instead of showing “saved”).
2026.07.02
July 15, 2026
Defects fixed
- Editing your sender's Terms of Service or Privacy Policy links (or other brand details) and resubmitting now sends the corrected values to the RCS provider. Previously edits made after your initial setup weren't applied, so the sender kept being reviewed against the old links.
2026.07.01
July 11, 2026
Defects fixed
- The opt-in screenshot you upload during onboarding is now reliably attached to your 10DLC campaign registration — including when you appeal a rejected campaign. Previously it could be dropped at submission, causing a carrier rejection for missing opt-in proof.
2026.06.23
June 29, 2026
Defects fixed
- Onboarding no longer fails with “Failed to save progress” when saving any section, including the first one. New brands default their messaging purpose to Multi Use, which the save endpoint was rejecting.
- Submit Verification no longer gets stuck on “Infobip campaign has not been prepared” for some 10DLC brands whose campaign was already set up.
2026.06.22
June 28, 2026
Added
- Assets now have an optional description. Click any asset to open its details, where you can preview it, edit the name and description, move it between folders, copy its URL, or delete it. Descriptions are for AI features to understand your media — they're private (never shown to recipients or publicly visible), while the asset file stays public. Existing assets start with an empty description.
- You can now upload many assets at once: pick a folder with Upload Folder, or drag a folder into the library. Supported media is uploaded and anything else is skipped. The library also now defaults to the tile view.
2026.06.21
June 27, 2026
Added
- If your messaging campaign is rejected by the carriers, you can now fix the campaign details and appeal it yourself from the sender page. The rejection reasons are shown inline; edit the description, sample messages, opt-in flow and other fields, then submit — an appeal note is drafted for you from your changes and you can edit it before sending.
2026.06.20
June 26, 2026
Added
- Onboarding now lets you pick your primary messaging purpose — Promotional or Multi Use — in the messaging section, instead of always assuming Promotional. New brands default to Multi Use.
- New Plan page shows the package assigned to your brand, the other packages available, and your Custom option.
Defects fixed
- Submitting a brand for carrier review no longer fails with “campaign has not been prepared” when setup had already finished. A public phone entered in an unusual format on the sender profile also no longer blocks sender setup — numbers are reformatted automatically, and any that aren't valid phone numbers are skipped.
2026.06.19
June 25, 2026
Defects fixed
- A support/contact phone number entered with spaces (e.g. “+1 800 000 0000”) no longer fails carrier registration. Phone numbers are now reformatted automatically before submission, so you can type them however you like.
2026.06.18
June 24, 2026
Changed
- Personalization replacements now fill in for open campaigns, and work in card buttons — not just the message body. Use a {{token}} in a button's label or postback, a link URL, a dial number, a location, or a calendar event's title, description, and times; each is replaced with the value sent for that recipient. For a calendar start/end time, switch the field to “Use a replacement instead” to type a token in place of a date. Replacements only apply to open campaigns (where each request supplies the recipient's values) — in other campaign types tokens send as written, and the editor now warns you when that's the case. A replacement with no matching value comes through blank.
2026.06.17
June 22, 2026
Defects fixed
- Carrier registration now tells you exactly what to fix when a submission is rejected — for example a business or campaign name that's too long, or a brand theme color too light to meet the required 4.5:1 contrast against white — instead of a generic “setup failed.” Affected fields are validated and capped as you fill them in, so you can correct them before submitting.
- SMS (10DLC / toll-free) brands are now asked for everything carriers require up front. Opt-in is now two clear fields instead of one overloaded one: the Opt-In Flow (describe how and where subscribers consent — the form or keyword and its URL, and the explicit action they take) and the Opt-In Disclosure / Call-to-Action (the exact language shown at sign-up). The opt-in screenshot and Terms / Privacy links are now collected and required too. Previously these only appeared for RCS, so SMS-only brands could submit without them and get bounced by the carrier.
2026.06.16
June 20, 2026
Added
- Interactive follow-up campaigns. Any campaign can now continue the conversation based on how each recipient responds. Turn on “Interactive follow-up” in the campaign editor and design a branching conversation in the new visual flow builder: branch on a tapped reply button, a free-text reply (matched by keywords), a shared location, a sent file, or a tapped link — and send a different follow-up for each, as SMS or RCS. RCS follow-ups use the full message designer. Replies are answered right away, including outside your sending window; a STOP always ends the conversation.
- Import from JSON. When building a campaign message or an RCS follow-up, you can paste a Messages API example (a “messages” payload, a single message, or a content object) and have it fill out the editor for you — text, cards, carousels, media, and reply buttons included. Great for moving a message you already have into a campaign without rebuilding it by hand.
- Interactive RCS conversations now feel more natural: when a recipient replies, their message is marked as read, and a typing indicator shows just before the follow-up arrives.
2026.06.15
June 19, 2026
Defects fixed
- Toll-free (TFN) onboarding could fail at brand registration if the business address State was entered as a full name (e.g. "Tennessee"). The state is now converted to its 2-letter code automatically, so setup no longer hits a carrier rejection.
2026.06.14
June 18, 2026
Defects fixed
- Toll-free (TFN) onboarding could fail at the final setup step with "Campaign creation failed." The Opt-In URL / Screenshot field is now shown and required for toll-free brands, so setup no longer hits a carrier rejection for a missing opt-in proof.
2026.06.13
June 17, 2026
Defects fixed
- Toll-free-only (TFN) brands couldn't finish onboarding: the Connectivity and final Verification steps opened empty screens and there was no way to prepare setup or submit for carrier review. TFN onboarding now shows Prepare Setup and Submit Verification, and the empty steps are gone.
- Clarified onboarding copy so the Campaign Description, Opt-In Details, opt-in confirmation reply, and sample messages read as four distinct fields. The Opt-In Details requirements panel now explains it's the sign-up call-to-action (not a broadcast message), and each field cross-references the others to make the difference obvious.
2026.06.10
June 12, 2026
Defects fixed
- Submitting verification for a toll-free brand could fail with a brand registration error and leave onboarding stuck, even though setup looked complete. Toll-free brands are now submitted correctly.
- 10DLC text-message setup could stall on “waiting for carrier approval” and never finish. Setup now completes as soon as your campaign is submitted for review, so you can Submit Verification right away instead of waiting.
- For SMS-only brands, the final “Test, verify, and document results” onboarding step no longer makes you click through an empty review screen — it completes on its own.
2026.06.09
June 11, 2026
Added
- Settings now has a Data retention section. Choose how long we keep each type of data — engagement history, audience lists, inbound replies, and downloaded exports — before it's automatically deleted. Sensible defaults apply out of the box; opt-out records and your activity log are always kept. A “Retention enforced” badge shows the policy is active.
2026.06.08
June 9, 2026
Added
- You can now create SMS-only campaigns. Pick SMS on the new Channel toggle in the campaign editor to send a plain-text message (links can go right in the text) from an SMS sender — no rich cards, media, or buttons. The preview, campaign list, and analytics all reflect the channel; SMS has no “Opened” stage since it has no read receipts.
- SMS senders are now first-class on the Senders page, shown with a channel label. Each RCS sender can link to an SMS sender as its fallback, used when an RCS message can't be delivered.
- The Failed count on a campaign's Analytics now has a “Troubleshoot failures” link. Open it to see failures grouped by reason — with what to do about each: remove the number (permanent failures), retry later (temporary), or check your sender and message (rejected). The breakdown stays hidden until you ask for it. Failures from before this change don't have a recorded reason.
- New Inbox in the nav collects replies from your contacts that we couldn't tie to a campaign — for example a free-text message with no original send to thread it to. Previously these were dropped; now you can read them and dismiss each once handled (or dismiss all). Opt-out and help keywords aren't shown here — those are handled automatically. The nav shows a count of messages waiting.
2026.06.07
June 8, 2026
Changed
- The engagement funnel now opens with a Targeted stage — the recipients on your list before the pre-send filter dropped opt-outs, invalid numbers, and frequency-capped contacts — so the gap down to Sent shows how many were filtered out before delivery.
Defects fixed
- An open is now inferred when a recipient replies, taps a chip, or opts out but no open was reported, so the open rate, engagement funnel, and time to open count it. Previously these implied opens were missed for SMS replies and RCS replies the provider didn't thread.
- Funnel stage labels stay legible on a light background when a stage has no events (collapsed bands now use muted text instead of white).
2026.06.06
June 6, 2026
Free-text customer replies now get tied to the campaign they're responding to, so they show up in campaign analytics. Also fixed SMS reply routing showing “Not provisioned” on the sender page even when SMS replies were being delivered, and made “Enable replies” work for those senders.
Added
- Typed replies (not just taps on a suggested reply) now show up under the campaign they're responding to — in the campaign's Events tab and reply metrics. Previously a free-text reply, and SMS replies in general, often weren't linked to any campaign, so they didn't appear anywhere.
Defects fixed
- On the sender page, the Reply routing card no longer shows SMS as “Not provisioned” when replies are in fact set up. Some senders never had their internal SMS number key stored, which made the live status check come up empty; it now falls back to looking up the configuration by phone number, so the SMS status reflects reality. If a sender does still need it turned on, Enable replies now works for SMS too — it recovers the missing number key automatically.
2026.06.05
June 5, 2026
Campaigns gained an Events tab that shows the individual message events — sent, delivered, opened, chip taps, and replies — as a colour-coded breakdown and a time-ordered stream, with the existing Events/Unique toggle switching between every event and a per-recipient view. Resuming a paused campaign from the edit screen also now offers the same retry-or-skip choice for a failed batch that the campaign view already did, instead of dead-ending.
Added
- Analytics gained an engagement funnel, timing metrics, and a live cost figure. The funnel shows how recipients move through Sent → Delivered → Opened → Engaged with the conversion at each step. Time to open and Time to engage report how quickly recipients act after delivery — median, average, fastest, slowest, and 95th percentile, plus a distribution chart of open times. The new Cost card shows actual spend to date: outbound sends plus the replies they generated (suggestion taps and text, file, or location replies are billed too, since each inbound message costs; link/button clicks aren't). All three appear on a campaign's Analytics tab and on the brand-wide Analytics page, and follow the Events/Unique and date-range controls.
- Campaign detail pages have a new Events tab. Instead of just the rolled-up rates on Analytics, you can now see the underlying message events themselves — sent, delivered, opened, chip taps, replies, opt-outs — as a per-type breakdown with bars and a time-ordered stream of what happened, each event colour-coded with the reply text or tapped option where there is one. Flip the Count toggle to Unique to collapse the stream into one card per recipient and follow each recipient's journey end to end. Recipients are shown by a short anonymized ID, never the phone number. Useful for confirming a campaign actually sent and that responses are landing.
Changed
- A sender's Logo and Banner now show as image previews on the sender detail page instead of a wall of unreadable signed URL text. Hover a preview to see its full URL, click it to open the image in a new tab, and use the copy button to grab the URL.
- The Registration Activity timeline on the Senders page now names each step instead of labelling every milestone the same generic “Local step completed”. You'll see entries like Brand registered, Campaign registered, Sender launch submitted, RCS replies configured, SMS replies configured, and Number purchase requested — the same level of detail the individual sender page shows, so you can tell your setup steps apart at a glance. RCS-specific steps are also now tagged with the RCS channel rather than your SMS number's channel.
Defects fixed
- Submitting toll-free brand verification no longer fails when the brand has already been registered. If a previous submission already registered your brand with the carrier, re-submitting now recognises that and moves on to the remaining steps instead of stopping with an error.
- If a campaign paused because one of its send batches failed, you can now choose to retry or skip that batch when you resume it from the campaign editor — the same choice you already got from the campaign's view page. Previously, resuming from the editor just showed an error telling you to choose, without actually giving you the choice, so you had to leave the editor and resume from the campaign page instead.
- Duplicating an open (webhook-triggered) campaign no longer shows a confusing “Webhook URL unavailable” message on the new copy. A duplicate intentionally doesn't carry over the original's webhook URL — it gets its own the first time you save it — and the campaign page now says so plainly instead of reading like an error.
2026.06.04
June 4, 2026
Brand setup now shows an honest, step-by-step status — waiting on the carrier, needs a detail from you, finished, or stuck — instead of an indefinite “Provisioning…” spinner, so you always know the current state and what to do next. 10DLC onboarding also now asks for at least two sample campaign messages, which carriers require to approve 10DLC messaging.
Changed
- Preparing brand setup no longer leaves you stuck on a disabled, spinning “Provisioning…” button. The onboarding setup card now shows a per-step checklist (your phone number, brand verification, campaign approval, and keyword setup) with the status of each, plus a plain-language headline that tells you exactly where things stand: waiting on the carrier (with a “taking longer than expected” note once it's been a while), a detail we still need from you, finished, or a step that didn't go through. Each state offers the one action that makes sense — add the missing detail, check for updates, or try again — so you're never blocked without knowing why.
- For 10DLC brands, the compliance step of onboarding now asks for at least two sample campaign messages (each at least 20 characters) and won't mark the step complete until you've added them. Carriers require a minimum of two samples to approve 10DLC messaging, so collecting them upfront avoids a rejection later in setup. (RCS and toll-free are unchanged — one example is fine.)
Defects fixed
- 10DLC campaign approval no longer gets stuck on “waiting on carrier approval” after the carrier has already approved it. Brand setup now correctly detects the approval and finishes the remaining setup automatically. If your setup was stuck on this step, clicking “Check for updates” will now move it forward.
- Toll-free (TFN) brand setup no longer fails at the final registration step. Onboarding now asks toll-free brands for a Support Email — carriers require it as your customer-care contact — which was previously only collected from 10DLC brands, so toll-free setup could fail late with a missing-email error.
- RCS campaigns failed to send because the message delivery flow couldn't find its provider connection. Campaign runs were erroring out before any message went out. This is fixed — campaigns now reach the delivery provider as expected.
- The campaign Overview “Events” count no longer includes Test Send activity, so it now matches the numbers on the Analytics tab. Previously a campaign could show more events on the Overview than it had actually sent, because test sends were counted there but not in your analytics.
2026.06.03
June 3, 2026
Campaign errors no longer surface internal provider names — if a brand isn't fully set up to send yet, you'll see a clear message to contact support. Admins can also now reconnect a brand to its messaging backend when the original setup didn't complete. The Senders page gained a Registration Activity timeline, and 10DLC brand-verification and carrier updates now reliably appear in the app.
Added
- The Senders page now shows a Registration Activity timeline: brand verification, carrier campaign approvals, sender launch, test-number, and number-provisioning updates in one place, each tagged with the channel it applies to — RCS, 10DLC, or TFN — so you can follow progress even if your brand only uses one of them.
- You can now export your opt-in and opt-out records from the Consent page. The new Export button lets you download a CSV of opt-ins, opt-outs, or both — optionally filtered to one sender and a date range. Each row includes the phone number, the opt-in and opt-out dates, the sender, and (where we can determine it) the campaign the contact last engaged with. Records captured before this release export without a phone number.
Defects fixed
- 10DLC brand-verification and carrier campaign updates now show up in the app as they happen. Previously these updates weren't being recorded, so your brand could be verified for 10DLC — or a carrier could approve or pause a campaign — without it appearing in Whisp.
- 10DLC campaign registration now goes through. A configuration gap was causing the carrier-registry submission to be rejected, which left brand setup stuck on “Provisioning…”. Campaigns now register — and they include your STOP (opt-out), HELP, and opt-in support plus your privacy-policy and terms links, which carriers look for when approving a campaign.
- Setting up a toll-free number no longer fails during number provisioning. Preparing setup for a toll-free brand now completes instead of erroring out.
- Campaign errors no longer mention internal systems by name. If a brand wasn't fully set up behind the scenes, creating, duplicating, or activating a campaign now shows “This brand isn't fully set up to send messages yet. Please contact support.” (and pausing or resuming shows “This campaign isn't ready to send yet. Please contact support.”) instead of a confusing technical message.
2026.06.02
June 2, 2026
Fixed brand setup showing an indefinite “Provisioning…” spinner when the brand registration request had actually failed — the wizard now lets you resubmit instead of waiting forever. Also fixed brand asset uploads (logos, banners, and rich media images) failing with a generic “Upload failed.” error, and fixed the New Campaign screen blocking campaign creation when your sender wasn't fully launched yet.
Added
- When you activate a campaign whose sender isn't live yet, Whisp now warns you first: the campaign is created, but recipients won't receive messages until the sender is approved and launched — numbers you've approved as test recipients for that sender are the exception. You can review the warning and choose to activate anyway. The review step also shows the sender's current status and the same heads-up inline.
Defects fixed
- Creating a campaign no longer requires a fully launched sender. If your sender is still in review or being set up, you can build and save campaigns with it — previously the New Campaign screen blocked you with “Add an active brand sender before creating a campaign.” even when a sender already existed.
- Brand setup no longer gets stuck on a “Provisioning…” spinner when nothing is actually running. If your business details don't pass carrier registration when you first prepare setup, you'll now see the Prepare Setup button ready again — correct any flagged details and resubmit — instead of an endless spinner. The spinner now appears only while your number and brand registration are genuinely being processed in the background.
- Uploading brand assets — logos, banners, and rich media images — failed with a generic “Upload failed.” message even for valid files. Uploads now work. Your existing assets were never affected, and nothing about how you upload changes.
2026.06.01
June 1, 2026
Added a combined Engagement card (clicks, chip taps, replies) to campaign and report analytics, and started handling newly subscribed RCS click, typing, and sender-lifecycle events. Also fixed brand setup provisioning so it no longer rejects the brand's industry or leaves the Provisioning button spinning after a failed attempt.
Added
- Campaign and Reports analytics now show a single Engagement card that breaks out Clicks, Chip taps, and Replies side by side, so you can see at a glance how recipients interacted with a send. Clicks — taps on links and buttons in a message — are now captured alongside chip taps and message replies. When you switch a report to count unique recipients, a recipient who both clicked and replied is counted once.
Changed
- A sender's status on the Senders page now also updates from launch and test-number lifecycle events, and those events appear in the sender's Registration Events timeline as they arrive.
Defects fixed
- Prepare Setup is now a single button you can safely press again. It stays disabled (showing “Provisioning…”) only while an attempt is actively running or while a number is genuinely being provisioned — and it no longer spins indefinitely after a failure. If any step doesn't complete, including one that fails in the background after you've left the page, the reason is shown inline and the button becomes “Retry Setup” so you can pick up where it left off (steps that already succeeded are skipped). The separate Retry button has been removed.
- Preparing brand setup could fail when submitting your business details for verification. The underlying cause is fixed, and if a verification submission ever does fail you'll now see a clear, actionable message instead of a raw technical error. Reloading the setup page while provisioning is in progress no longer re-submits your details — it just reflects the latest progress.
2026.05.13
May 30, 2026
Campaigns now require a launched (Live) sender. Analytics trends display in your local time zone with hour-level detail for short ranges. Login verification code entry is fixed.
Changed
- When you create or edit a campaign, the sender picker now lists only senders that are fully launched (shown as Live on the Senders page). A campaign can't be created against a sender that's still in registration or awaiting launch. Existing campaigns are unaffected — an already-saved campaign keeps its current sender and continues to run even if that sender isn't currently Live; you only need a Live sender when choosing or changing one.
- Analytics Trends charts now plot time in your local time zone (from your profile) instead of UTC, so the curve lines up with when sends and engagement actually happened for you. Short date ranges now bucket by hour instead of collapsing to one or two daily points, and the Engagement chart draws opens and interactions as smooth lines with opt-outs on their own right-hand scale so they stay visible against the larger numbers.
Defects fixed
- The login verification code field now accepts the whole code from your phone's autofill or one-tap suggestion — previously only the last digit was kept. It also no longer re-submits on every keystroke once all six digits are entered, so correcting a digit after a failed attempt won't fire a premature verification.
2026.05.11
May 28, 2026
Invite-acceptance form now shows password requirements as you type. Invite + password-reset emails sent from production are no longer broken.
Changed
- Invite acceptance now shows a live checklist under the password field — uppercase, lowercase, number, special character, and length — so you can see what's still missing before submitting. Getting Started and Settings → Password also document the rules now.
Defects fixed
- Invite and password-reset emails sent from production were pointing at http://localhost:3000 instead of the real app URL, so clicking the link in the email opened nothing. Fixed by reading the runtime app URL on the server. New emails get correct links; previously-sent emails still have the bad URL — request a fresh invite or password reset to get a working one.
- Submitting the invite-acceptance form with a password that didn't meet policy returned a vague "Invalid request" with no hint about which rule failed. The new requirements indicator (above) makes the rules visible up front; if the form is ever bypassed, the response now names the first rule that failed instead of returning a generic error.
2026.05.10
May 27, 2026
Campaigns can now carry tags. Use them to group related campaigns and filter reports across a tag set.
Added
- Campaign tags. Add up to 10 free-form lowercase tags to a campaign — they show up on the campaign list, on the campaign detail page (where you can edit them inline; changes save automatically), and on Analytics. Editing is allowed any time except for archived or cancelled campaigns.
- Tag filter on the campaign list. Click Tags above the campaign table to pick one or more tags; the list narrows to campaigns that have all the selected tags. The same filter shows up on the Analytics page when no specific campaign is selected, so you can roll up sent / delivered / opt-out / reply metrics across an entire tag set. The Export CSV download respects the filter.
- Tag suggestions. As you type a tag, the input suggests tags already in use elsewhere on your brand so you don't accidentally create "holiday" and "Holiday" as separate values.
2026.05.09
May 25, 2026
Per-brand sending window now lives in Brand settings and is enforced by the messaging provider. Onboarding flags brand types that can't register for 10DLC and points you at Toll-Free Numbers instead. Rejected sender launches now show the reviewer's reason and can be resubmitted from the onboarding page. Sender auto-responses get a higher length cap, a clearer order, and custom keyword rows.
Added
- New Settings page in the sidebar. The first section lets you configure when campaigns can be sent: a timezone, a From/To time, and the days of the week. We only send during the window you pick (anything outside is queued by the messaging provider until the next allowed time). Defaults match the TCPA standard — 8:00 AM to 9:00 PM Eastern, every day. From and To must be at least one hour apart, and at least one day must be selected.
- Onboarding now surfaces a rejected RCS sender launch the same way it surfaces an Update requested one: the Phase 1 Complete card shows a red Sender launch rejected notice with the reviewer's reason and a Resubmit button. Address the feedback, then click Resubmit to start a fresh review without re-doing the rest of onboarding.
- Senders list now shows a red Rejected indicator next to a sender whose latest RCS launch event is REJECTED (mirroring the existing amber Action Required indicator for Update requested). The indicator also clears as soon as you resubmit.
- Registration Events feed now shows the reviewer's free-form rejection reason for REJECTED events, alongside any field-level feedback. Slack #rcsync-registration notifications for RCS sender launch updates also include the reason now.
- Senders → Auto-responses & keywords now lets you add custom auto-responses. Each row binds one or more keywords (e.g. INFO, HOURS) to a single reply that fires automatically on both RCS and SMS when a customer texts any of those keywords. Keywords cannot overlap with another row or with the required STOP/HELP/START.
Changed
- The brand-onboarding wizard now warns when you pick a brand type that isn't eligible for 10DLC carrier registration — specifically Public companies and Sole Proprietors. The Brand Type field and the Number Type picker both surface the limitation and direct you to register a Toll-Free Number (TFN) instead. Getting Started has the same callout for reference.
- Open campaigns no longer carry a per-campaign "assume opt-in pre-approved" toggle. Opt-in is now derived from the request itself: include a `trackingId` (your external identifier for the contact, e.g. a customer ID) and RCSync records the recipient as opted in to this sender. Requests without a `trackingId` still send, but no consent record is written.
- Required sender auto-responses (START / STOP / HELP) now allow up to 1080 characters per reply (was 160), and the three rows are reordered to opt-in (START) → opt-out (STOP) → help (HELP). SMS replies longer than 160 characters are split into multiple segments by the carrier.
2026.05.08
May 24, 2026
Per-sender contact-consent tracking with a Consent lookup tool. Opt-in/opt-out state now lives on the (sender, recipient) pair, with full provenance.
Added
- New Consent page in the sidebar — search by phone number or by tracking ID to see opt-in / opt-out state across each of your active senders. Phone numbers are hashed before being stored or queried, and the response always masks them down to the last four digits.
- Open-campaign webhook now accepts an optional `trackingId` field (up to 36 characters) on the request body. When supplied, the value is stored on the resulting opt-in record so you can look the contact up later by that ID. Subsequent calls without `trackingId` leave the stored value alone — only present values overwrite.
- Inbound RCS and SMS replies that match any of a sender's configured opt-in keywords (e.g. START, SUBSCRIBE, or anything you've added) now record an opt-in event automatically — previously we only recorded opt-outs.
Changed
- Opt-out from a STOP keyword no longer affects other senders on the same brand. Each sender (10DLC number / TFN / RCS agent pair) now tracks its own consent state, so STOP to your Marketing sender doesn't suppress your Transactional sender.
2026.05.07
May 23, 2026
Edit STOP / HELP / START auto-responses and keywords on the sender page. TFN-registration brands can now complete carrier onboarding end-to-end.
Added
- Sender pages have a new Auto-responses & keywords card. You can change the wording of the STOP, HELP, and START auto-replies and add or remove the keywords that trigger each (for example, adding QUIT alongside STOP). Changes are pushed to your messaging provider for both SMS and RCS as soon as you click Save. The original STOP, HELP, and START keywords can't be removed — carriers require them — but you can edit everything else.
- Toll-Free Number is now a selectable number type on the onboarding wizard for brands granted the TFN registration entitlement. Brands with both 10DLC and TFN entitlements can choose either; brands with only TFN go straight through the toll-free flow without the 10DLC-specific fields.
2026.05.06
May 22, 2026
Registration Events feed now spans the full onboarding lifecycle, and action-required alerts clear as soon as you respond.
Added
- Sender pages now log a Registration Event for every meaningful onboarding step: number purchase requested, brand identity submitted / verified / rejected, SMS campaign submitted / accepted / declined, RCS sender launch submitted, and RCS sender launch resubmitted. Each entry is timestamped and shows the current status alongside any reviewer feedback.
Changed
- The amber action-required alert on a sender (in the side menu, on the Senders list, and on the sender page itself) now clears as soon as you take action — for example, immediately after clicking Resubmit on an Update requested launch. If the reviewer asks for a further change later, the alert reappears.
2026.05.04
May 20, 2026
Onboarding can now resubmit a sender launch request when the reviewer asks for changes, without starting over.
Added
- If the RCS provider reviewer requests changes to your sender launch request, the Phase 1 Complete card now shows an Update requested notice with a Resubmit button. Edit the relevant sections, then click Resubmit to send the updated request without re-starting verification.
2026.05.03
May 19, 2026
See estimated campaign cost before activating, on the campaign view, and in the campaigns list. Immediate campaigns now auto-complete on success, and failed runs notify the campaign owner. Send-spread option splits large campaigns into batches sent across a configurable window.
Added
- Campaign editor now has a Send spread picker (off / 15 min / 1 hr / 4 hr / 24 hr / custom). Larger lists are split into batches sent sequentially across the window to smooth downstream load; smaller lists may finish faster than the configured spread.
- Runs table shows a Batch i/N badge when a campaign run is split across multiple batches.
- Resume now asks whether to retry the failed batch (re-fire its recipients) or skip it (drop those recipients and continue) when a campaign was paused by a batch failure.
- Campaign editor now shows the message tier (A or B) and per-recipient price live next to the message type, with a tooltip explaining why a message falls into Tier B (rich content, longer text, or suggested replies).
- The Review step shows the estimated total cost for the campaign (audience size × per-recipient price). For recurring campaigns the total is shown per run.
- The campaign view now has an Estimated cost metric on the Overview tab, and the Runs table on Analytics now shows the actual cost snapshotted at each run.
- The campaigns list shows an Est. cost column for each campaign.
- When a campaign run fails or is stopped, the campaign owner now gets an email with the campaign name, the run number, and a link back to the campaign.
Changed
- Immediate campaigns now move to Complete automatically when their send finishes (previously they stayed Active forever).
- If an Immediate or Scheduled campaign run fails, the campaign is paused so you can review and re-activate it. Open campaigns continue to run; only the individual failed run is marked failed.
Defects fixed
- Engagement rate now counts every recipient who took an action (button taps and replies), not just button taps. Previously the metric only counted chip taps, so reported engagement was lower than reality.
2026.05.02
May 18, 2026
Scheduling caps, clearer recurrence controls, end conditions, and date/timezone consistency.
Added
- Recurring campaigns now support an end condition: keep going forever, stop on a specific date, or stop after a chosen number of sends. With an end date or send count the campaign auto-completes after the last run.
- RCS and SMS senders now auto-respond to the START keyword. The reply is the brand's Opt-In Response (set during onboarding), and new brands register START alongside STOP and HELP during Prepare Setup.
Changed
- Scheduled and recurring campaigns can only be set up to 30 days from now. For recurring campaigns the limit applies to the first send; later occurrences can extend past 30 days.
- The recurrence controls are clearer: one row reads "Repeats every N Days / Weeks / Months" instead of a separate Repeat dropdown and Interval field.
- Dates and times throughout the app now render in your selected timezone (Settings → Timezone) instead of the browser default, and use a consistent numeric format (M/D/YYYY).
Defects fixed
- The Delivery volume chart legend now shows Sent before Delivered, matching the order events happen in.
2026.05.01
May 17, 2026
Documentation site launch and timezone refinements.
Added
- Public documentation site at /docs, with guides for campaigns, analytics, senders, assets, integrations, settings, and a release notes section.
- Help link in the app sidebar account menu and mobile drawer (opens /docs in a new tab).
- Current release version is now shown in the account menu, linking to the release notes.
Changed
- Scheduled campaigns interpret their send time in the timezone selected on the schedule form, not the account timezone.
- Date filters across the app honor your account timezone preference (Settings → Timezone).
Defects fixed
- Server-side log objects no longer replay into the browser dev console in development.
- Scheduled campaign readiness check now requires a future send time.
