Changelog

Follow up on the latest improvements and updates.

RSS

Overview
The Email Events trigger fires on opens and clicks, but the event never carried anything that identified which email produced it. If you pushed those events to an external system with the Send Webhook action, there was no Message ID variable to pick.
What's new
Email Events now carries a unique Message ID, and you can select it as a custom value inside the Send Webhook body.
How it works
Open the Send Webhook action in a workflow that starts with Email Events, then pick Message ID from the custom value picker when you build the payload. Every open and click on the same email sends the same ID. A different email sends a different one. The ID rides along with the event itself, so an open that arrives late still points back to the email that generated it.
Why this matters
Teams feeding email engagement into an external dashboard had no reliable way to dedupe. Email Opened fires on every open, including repeat opens of the same message, and resolving the email through the API by "most recently sent" got the wrong answer whenever a contact opened something older.
Simple example
A marketing agency sends two campaign emails in the same week and pipes open and click events into its own reporting dashboard. With Message ID in the webhook body, each open lands against the specific email it came from, and the same contact opening one email four times collapses into a single engagement record instead of four.
Additional Notes
  • Applies to both Email Opened and Email Clicked on the Email Events trigger.
  • The ID is stable per message. Repeat opens send the same value every time.
Preview
image
Overview
Dropdown fields in the Create Record and Update Record actions, including the associated record versions, stopped offering dynamic values. If you had saved something like {{contact.day_1}} in a dropdown, the field opened empty with nothing selected. There was no way to enter a new merge tag either.
What's new
Single-select dropdown fields now have the Standard and Dynamic toggle, the same one you already use in Update Contact Field.
What's changed
Standard mode gives you the searchable picklist, image options included. Dynamic mode gives you a text input with the custom value picker, so you can drop in a merge tag from a trigger, a formatter, or an inbound webhook. Saved values that don't match a picklist option now open in Dynamic mode on their own, so existing configs render the way you set them up. Switching between the two modes clears the field, which stops a leftover value from the other mode saving without you noticing.
Additional Notes
  • Covers Create Record, Update Record, and both associated record actions, in contact-based and custom object workflows.
  • Multi-select fields were never affected. Nothing changed for them.
  • Update Contact Field already had this toggle and is unchanged.
  • Flipping the mode wipes the current value on purpose. Re-enter it after you switch.
Overview
Pinned and Recent in the Actions & Triggers sidebar ignored what kind of workflow you were in. Use a Contact action once, and it started showing up in your Custom Object and Company workflows too.
What's new
Both sections now list only the actions and triggers that work in the workflow you have open.
What's changed
The sidebar checks the workflow's object type before it renders Pinned and Recent. Contact actions stay in Contact workflows. Company actions stay in Company workflows. Custom object actions stay in workflows built for that object. Everything else is hidden, so you can't pick a shortcut that breaks the moment you click it.
Additional Notes
  • Covers both the Pinned and Recent sections.
  • Your pins are intact. They're hidden only in workflows where they don't apply.
  • The full action and trigger list below these sections was already correct and is unchanged.
Preview
Untitled
What's New
If your sub-account is on hold for a SaaS plan or rebilling and a payment card has already been added — whether you added it yourself or your agency added it for you — you'll now see that card on the billing screen and can go straight to paying, instead of being asked to add a card you already have.
Why It Matters
You no longer have to re-enter payment details you've already provided. You'll get clear feedback when you pay, and your account unlocks automatically as soon as the payment succeeds.
Note
  • Applies to sub-accounts on hold for a SaaS plan or for rebilling.
image
image (1)
What's New
If you sell SaaS plans through a sub-account, your customers' subscription details inside that sub-account now automatically update whenever they upgrade or downgrade their plan. Previously, only the subscription record behind the scenes was updated — the copy shown in your sub-account stayed on the old plan.
Why It Matters
You can now trust that invoices sent from your sub-account always show the correct product, price, and tax for your customer's current plan. This means no more mismatched invoices or incorrect charge amounts after a customer changes their subscription.
Note
  • This update applies to upgrades and downgrades made going forward. Subscriptions that were already out of sync before this change will only be corrected the next time that customer upgrades or downgrades.
🧭 Overview
We've rolled out a set of enhancements to the
Rentals Booking Page, Listing Detail Page, and Checkout flow
— giving businesses more control over CTA labeling, making rental dates and pricing clearer throughout checkout, bringing listing descriptions inline, and refining visual and cart-state consistency across the experience. Together, these changes make booking feel more polished, consistent, and easier to trust from browse to checkout.
🚀 What's New?
✅ Customizable "Add to Cart" Button (Multi-cart)
When Multi-item cart is enabled, businesses can now set a custom label for the "Add to cart" button from Booking Page settings (defaults to "Add to cart"). The button only appears when multi-cart is on, so single-item bookings stay unaffected.
✅ Rental Dates Now Visible Throughout Checkout
Rental dates now show on the checkout page in the Order Summary. This helps in assuring the customers that they are booking for the required date and time only.
✅ Expanded Listing Descriptions
Listing descriptions on rental detail pages are now shown inline and expanded by default, so guests can read the full description without the need to click "Read more" anymore — including a refined mobile experience.
✅ Cart Persistence Enhancements
Your cart now stays intact even when clicking the company logo to navigate back to the home page — so you can navigate around the site without losing an in-progress booking.
✅ General Polish & Enhancements
Improved text wrapping on home page cards to ensure words are not cropped, redundant single-quantity label removed from the Booking Summary and Confirmation screens and many more minor UI fixes for a cleaner look for a cleaner browsing experience.
🧩 How to Use It
  • Go to
    Global settings > Booking page
    tab and enable
    Multi-item cart
    to reveal the "
    Add to booking button label
    " field.
  • Update the label text to match your brand voice and save — it will reflect immediately on the booking page CTA.
  • No setup is needed for rest of the improvements — these are live automatically for all rental listings.
🎯 Why This Matters
  • Gives businesses more control over how the booking flow speaks to customers
  • Makes rental dates and pricing clearer and more trustworthy at checkout, reducing confusion and drop-off
  • Removes friction from listing detail pages by surfacing descriptions inline
  • Keeps your cart intact while browsing, so in-progress bookings are never lost
card enhancement
Expanded details
dates on cart page
Mobile view
What’s new?
The custom value picker now recognizes list-type values, such as order line items, Inbound Webhook lists or any collections of values. Instead of inserting the raw list, it opens a small inline form where you can choose which field to extract and how the list should appear with your preferred format.
How it works
When you select a list, the picker stays inside the current text field and lets you choose a field plus a format: comma-separated, bulleted, numbered, or joined with a custom separator. That builder saves those formatting rules with the custom value and renders the latest list each time the workflow runs.
How to use it
  • Open the custom value picker and select a list-type value.
  • Choose the field to extract, the list format, and optional empty-list fallback.
  • Preview the result, then click Insert to add it at the cursor.
Why we built it
Previously, array and list values could not be rendered directly in text fields, which made this data difficult to use in emails, notes, and other workflow content. With this update, users can now insert list data into the text editor and choose how it should be displayed, including comma-separated, bulleted, numbered, or custom-separated formats.
Simple example
An Inbound Webhook sends a line_items list containing a sku field. Select line_items, extract sku, and choose Numbered list to insert each product SKU on its own numbered line.
Additional Notes
  • Text, number, date, and other single-value variables keep the existing instant-insert behavior.
  • List formatting appears only when the workflow detects a list-type output in the execution context.
  • The preview shows how the selected field and format will appear before you insert it.
Preview -
image
Kapture 2026-08-19 at 00
What’s new?
Dynamic values inside workflow text fields now appear as chips, making dynamic values easier to distinguish from static text. You can also type '/' to quickly search for and insert a custom value directly in the text box.
How it works
This is a UI-only change. Existing custom values are not impacted, and there is no change to how custom values are rendered or resolved when a workflow runs. Valid custom values appear as chips, while stale or unrecognized values are highlighted in red so you can quickly spot and fix them.
How to use it
  • Type '/' inside a workflow text field to search for and insert a custom value.
  • Click an existing custom value chip to replace it with another value in the same place.
  • If a value appears in red, replace it with a valid custom value from the list.
Why we built it
Custom values can be difficult to spot or validate when mixed with static text. The new interface makes dynamic content easier to identify, speeds up editing, and clearly flags values that are no longer valid.
Simple example
Add the User Last Name custom value from user data to a workflow message and it appears as a chip. If the text contains a stale or unrecognized value such as not a name, it appears in red so you know it needs to be replaced.
Additional Notes
  • Existing custom values are not changed or affected.
  • There is no change to custom value rendering or workflow behavior.
  • Chips are only a visual representation inside workflow text fields.
  • Type '/' to quickly search for and add a custom value.
  • Click an existing chip to replace it with another custom value in the same position.
  • Stale or invalid values are highlighted in red and must be replaced with a recognized value.
Preview
image
Kapture 2026-08-18 at 23
Kapture 2026-08-18 at 23
image
We tightened two of the most-used WhatsApp surfaces: the conversation composer and WhatsApp Settings / Manage. A false "Connect WhatsApp" prompt after the 24-hour window and a Settings page that loaded blank until you refreshed are both fixed, so WhatsApp behaves correctly on first load.
> Your connected accounts now show the right send options the first time, and Settings opens without repeated refreshes.
What's new
💬 No more false "Connect WhatsApp" prompt in Conversations
  • Correct state on first load:
    After the 24-hour messaging window closed, the composer sometimes showed "Connect WhatsApp" even on a fully connected account, which blocked template sends. The composer and calling CTA now wait for connection status to resolve before rendering, so connected locations get the template send path, not a reconnect prompt.
⚙️ WhatsApp Settings / Manage loads reliably
  • No more blank page:
    The Settings > WhatsApp tab could get stuck on a blank or loading state until you refreshed several times. It now renders on first open.
  • Faster page load:
    On the WhatsApp Settings surface, Speed Index improved from
    13.2s to 4.3s
    and First Contentful Paint from
    3.8s to 1.0s
    (Lighthouse), so the page fills in noticeably sooner.
Why this matters
These are two surfaces WhatsApp users touch constantly. A false reconnect prompt after the 24-hour window makes a working account look broken and stops agents from sending templates, the only messages Meta allows once that window closes. A blank Settings page stalls onboarding and everyday configuration. Both now load in the correct state the first time, which removes a common source of support tickets and "is WhatsApp down?" confusion on a core messaging surface.
✨ What's New
Your QR codes are now just a wallet tap away! 🚀
Users can now
save QR codes directly to Apple Wallet or Google Wallet
, making it easier to access and present the right QR code during offline customer interactions—without digging through a gallery full of saved images. This capability is available for
both existing and newly created QR codes
.
🎯 Key Highlights
* 👛
Save to Digital Wallet:
Add QR codes directly to
Apple Wallet or Google Wallet
, depending on the device
1
2
* ⚡
Quick Offline Access:
Open your wallet, select the right QR code, and have a customer scan it in seconds
* 🏷️
Know Which QR Is Which:
Wallet passes surface useful QR code details, helping users understand the
QR type, associated location, destination/context, and other relevant information
3
* 🎨
Wallet-Native Pass Designs:
QR code passes are designed specifically for each wallet, taking advantage of the configurations supported by
Apple Wallet and Google Wallet
5
* 🏢
Agency Branding:
Wallet passes currently display
Agency Branding in the header
, helping drive agency and brand attribution
* 🔄
Works With Old & New QR Codes:
Existing QR codes can benefit from the feature too—there's no need to recreate them
💡 Why This Matters
Previously, users who needed QR codes during offline interactions often saved them as images in their phone gallery. 📸
As the number of saved QR codes grew, it became difficult to tell:
* Which QR code was meant for which purpose
* Where a particular QR code redirected
* Whether it represented a
profile, website, funnel, or another QR code type
With Digital Wallet support, users can keep their business QR codes organized and readily accessible alongside useful contextual information.
Instead of searching through photos, users can simply
open their digital wallet → choose the appropriate QR code → let the customer scan → drive the conversion.
🎯
🛠️ How It Works
  1. Navigate to the
    QR Code Builder
    .
  2. Create or edit your QR code and proceed to the
    final step
    of the builder.
  3. Select the option to
    add the QR code to your digital wallet
image (7)
  1. A new QR code will appear for you to scan. 📲
image (8)
  1. Scan it using your phone.
  2. Based on your device/OS, the QR code pass will be added to
    Apple Wallet or Google Wallet
    .
4
  1. Open your wallet whenever you need it, select the relevant pass, and present the QR code for scanning. ✨
🎨 Apple Wallet vs. Google Wallet
The appearance of the wallet pass will
differ between Apple Wallet and Google Wallet
because each platform provides a different level of pass customization.
For example,
Apple Wallet supports displaying a Profile Image on the pass, while Google Wallet currently does not support this configuration
.
As a result, users should expect some visual differences depending on which digital wallet they use. The experience has been optimised around the capabilities available on each platform while keeping the important QR code information easily accessible. 📱
🏢 Agency & Brand Attribution
Each wallet pass currently displays
Agency Branding in the header
. This ensures that the agency and its brand remain visible when the QR code is saved and subsequently presented from a customer's digital wallet.
New Profile Cards (1)
Agency Branding is
currently enabled by default
. We plan to make this
optional in a future iteration
, providing greater control over how branding appears on wallet passes. ✨
📝 Notes
* The feature supports
both old and new QR codes
* Wallet passes include important contextual details about the QR code to make identification easier
* Pass designs can vary between
Apple Wallet and Google Wallet
based on the configurations supported by each platform
*
Agency Branding is currently displayed in the wallet pass header
and is planned to become optional in the future
A small addition to the wallet, but a big improvement for QR codes on the go. 👛⚡
Load More