Changelog
Follow up on the latest improvements and updates.
RSS
Previously, identifying which WhatsApp Business Manager a BSUID belonged to meant an extra API call. Webhook payloads (inbound and outbound) now include a per-Business Manager BSUID array, with each entry labeled to its Business Manager, plus the WhatsApp username. Your integrations can now route and match Contacts correctly straight from the payload — no extra lookup needed.
improved
Flow Builder
Advanced Flow Builder now matches more of Classic Flow Builder's behavior
Moving a Flow from Classic Flow Builder to Advanced Flow Builder meant losing a few trigger types, and a value field that didn't adapt to what you were updating. Both gaps are closing:
- Manual enrollment trigger
- Loop through custom object records trigger
- Loop through contacts SleekFlow
- Update contact action — the value field now matches the property's data type: a date-and-time picker for Date/DateTime, a list to pick from for Options
You can now rebuild more Classic Flows in Advanced Flow Builder without losing the behavior you relied on.
improved
Flow Builder
Create Flows faster with a refreshed Advanced Flow Builder setup
Creating a new Flow meant naming it yourself, clicking through a separate re-enrollment step, and starting from a blank canvas.

- Auto-filled Flow names— no need to name every flow yourself
- One less setup step— the separate re-enrollment settings step is gone
- Guided templates— Quick Setup for Welcome Message, Out of Office, and Keyword flows
Advanced Flow Builder is now the default way to start a new Flow — Classic Flow Builder is still available under its own menu entry.
Until now, tagging messages for analytics meant going through the API. There was no way to add a tag from inside Flow Builder itself, and no way to see how an individual Send Message node was performing within a workflow.

The Send Message node now has an optional Campaign Analytics Tag field right in its settings panel. Add a tag, publish the flow, and that node's messages become trackable in Campaign Analytics.

On the Campaign Analytics dashboard, you can now:
- Search and filter by tag using the new searchable tag dropdown
- Break results down by outcome — sent, delivered, read, and replied
- See a focused view when comparing tags — selecting more than 5 tags shows the top 5 in the bar chart with a note, while the full dataset stays in the table
Export everything to CSV whenever you need it
This means you can finally see which message, offer, or flow step is actually driving results, node by node, without waiting on engineering to wire up API tags.
📌 Note: The existing limit of 10 campaigns per dashboard is unchanged. Campaign Analytics data refreshes four times a day, so it can take a few hours for the latest message performance to appear.
Your Knowledge Base now accepts .txt and .md files, alongside PDF, Word, Excel, CSV, and image files. If your documentation already lives in Markdown or plain text, you can upload it as-is, no converting to Word first.

Going over your Monthly Active Contact (MAC) limit on a Pro or Premium plan used to mean an unplanned upgrade to a higher-cost tier, even if the overage was temporary (for example, a one-off campaign that brings in a spike of contacts for a single cycle).
Now, card-paying users on Pro or Premium plans get incremental 100 MAC add-ons purchased automatically the moment they cross their limit, rounded up to the nearest 100. The charge applies only to the current billing cycle and resets on the next billing date, so your permanent MAC limit stays the same.
If you'd rather avoid this per-cycle charge, you can proactively buy a permanent MAC add-on to raise your base limit instead.
Worth knowing: auto-scaling can't be turned off for card-paying users. If you pay by invoice or don't have a card on file, nothing changes for you; you'll still see manual add-ons and a hard block at the limit as before.
Building a new-contact welcome flow, controlling Shopify re-enrollment, and referencing the assigned rep's name all took extra manual work in Advanced Flow Builder, or weren't possible at all. This update closes those gaps:
- Send welcome message template: no longer "Coming Soon." Pick it, and you get a ready-made draft with the incoming channel selected, the trigger limited to new contacts, and a greeting pre-filled with the contact's first name. The trigger filter now reads "Contact is new" instead of "Unknown Variable," and "Reply outside business hours" has a clearer name in the template picker.
- Shopify re-enrollment control: Shopify-triggered flows now support the same enable/disable re-enrollment setting available on other triggers. If a contact's Shopify identity gets patched after an order event, they won't be enrolled into the same flow twice, so you stop burning enrollment quota and sending duplicate follow-ups.
- Contact owner name variables: insert Contact Owner First Name, Contact Owner Last Name, and Contact Owner Full Name across any trigger that exposes contact owner data (messaging, Shopify, tickets, social, and more, including AI Growth Widget flows). Full name combines first and last with sensible handling when one is missing. The old owner ID field is now labeled Contact Owner ID, so it's no longer confused with the name fields.
Together, these updates make Advanced Flow Builder quicker to set up, safer to run at scale, and easier to personalize.
improved
AgentFlow
Edit your Playbook directly, it's exactly what your AI Agent follows

Before, the AgentFlow setup wizard showed two versions of your instructions: what you wrote in "Your playbook," and a separate "AI-optimized" copy the Agent actually used, rewritten behind the scenes. If a reply went wrong, there was nothing on screen you could trace it back to and fix.
Now there's just one Playbook, and it's the version your Agent reads. Everything stays editable, changes save automatically as you type, and nothing gets rewritten in between.
The Playbook is split into five sections, each with a one-line description so you know what goes where:
- Personality: how the Agent sounds, tone, style, manner
- Behaviour: background the Agent needs, your company, products, its responsibilities, and reply templates
- Unsupported Media Type Reply: what's sent when a customer shares something the Agent can't read, like a voice note or video
- Guardrail: situations to watch for and what the Agent must not say or promise
- Scenarios (previously "Playbooks"): the specific situations the Agent handles, step by step, the only section where typing "/" opens the actions menu
One heads-up: if you already had an agent running, your Playbook will now show the rewritten version it's been running on all along, not necessarily your original wording. Nothing is lost, but it's worth a quick read-through. Long instructions also need to be split across sections now rather than pasted into one box.
AI lifecycle stage automation only ever looked at what a contact said. A customer sends payment details and moves to Pending Payment, your team replies "your payment was successful," and that reply used to be ignored entirely, so the contact sat in Pending Payment until they happened to message again.

From this release, outgoing messages count too:
- Replies from anywhere move contacts — a reply from a teammate in the inbox, from an AI agent, or from an automation or workflow can now move a contact's stage, the same way an incoming message already could.
- Confirmations move contacts forward — replies like "your order has shipped" or "your booking is confirmed" advance the stage.
- Cancellations move contacts backward — replies like "your refund has been processed" move a contact back.
- Intent alone doesn't move anyone — questions, quotes, reminders, promises of future action, and pleasantries are deliberately ignored, so stages don't creep forward before something's actually done.
Setup doesn't change. Your existing stage definitions, written in plain language, work as-is, and this applies automatically if AI stage automation is already switched on — no new toggle to find.

If a customer messaged your business through more than one connected Meta Business Manager, we used to create a separate contact record for each one — splitting their profile and conversation history instead of keeping it in one place.
Now we use the customer's WhatsApp username as a shared identifier to recognize them across Business Managers:
- Automatic contact matching — when the same username is detected through a different Business Manager, we match it to the existing contact instead of creating a new one.
- Multiple BSUIDs per contact — one contact record can now store a separate BSUID for each connected Business Manager, visible directly in the contact profile.
- API and export support — BM-specific BSUIDs are available through contact APIs and CSV exports, and the relevant field is visible in Contact Properties settings.
- Backward compatible — existing contacts with a single BSUID continue to work as before.
This means fewer duplicate contacts, more consistent customer data and conversation history, and a fuller view of each customer for your commercial teams — even when they reach you through different Business Managers.
One thing to know: matching depends on the customer's WhatsApp username being present and unchanged. If a customer's username is unavailable or changes, they may not be automatically matched across Business Managers.
Load More
→