Changelog
Every week of Chatfuel SDK, and what came out of it.
Week of 10 August 2026
15 updates
Every message type the API can send now draws in the inbox thread — documents, templates, media WhatsApp withheld, delivery state — where sixty of the seventy-three used to print their own typename.
Every block on the flow builder canvas carries a glyph and a tone for what it does, and each edge is labelled with the button it leaves. Select a block and the edges touching it stay lit.
The inbox filters by assignee, sales stage and unread, and searches every conversation by name or phone rather than the page in front of you. Save a filter you reach for often as a view.
Deals has a table view with search, stage filters, attribute predicates and sorting. A bar above the rows says which filters apply only to the rows already loaded, and how many deals have no conversation.
Arrows move between Deals cards,
⌘Kopens a command palette,⌘Zundoes a stage change, and?lists every binding. Right-click a card or a table row for the same actions the bulk bar offers.
Week of 17 August 2026
24 updates · 0.1.0, 0.2.0
Deploy reads the deployment URL off both of the Vercel CLI's streams and prefers the public production domain over the one behind Vercel's sign-in wall. Telemetry is turned off, so a blocked host cannot end a run.
Ads Optimization reports conversions from click-to-WhatsApp ads back to Meta. Paste an Ads Manager address for the ad ids, pick the triggers that count, and read whether Meta's permission is there — without it nothing is sent.
Publishing composes a feed photo, a Reel, a Story or a carousel in the same app the conversations land in. Send it now, or put it in the queue for a time you pick.
The wizard asks what the app is called and for a logo file. Both land on the browser tab, the top bar and the sign-in screen; skip them and the app still ships a name and a real mark.
Flows are writable from the flow builder's own rail, with a search over flow and group names. Chatfuel's dashboard is no longer the only place a bot's flows can be made.
Week of 24 August 2026
7 updates
A deploy that stops during a run repeats its reason and offers Try again or Skip for now. A skipped one is remembered, so the closing summary and the handoff say it was tried and stopped.
A deploy started from the wizard died with
command not foundand blamed the sign-in:npx --package=exports its own configuration to every child. Those two variables are dropped before the CLI is called.npm run connect-gitconnects the repository to the Vercel project, sogit pushis the deploy. The wizard offers to run it right after the push, when a Vercel project already exists.After the deploy, the wizard offers to create the repository, commit and push — private by default. It reads the staged index back first and stops if a
.env, a key file or your token is in it.An account with no bot it can open is provisioned again on the next sign-in, instead of holding an empty state for ever. Two concurrent sign-up calls now make one bot, and a refusal says why.
Week of 31 August 2026
5 updates · 0.3.0
The wizard no longer carries the modules — it carries a commit and a digest per file, and fetches the content when it runs. A fix reaches you on your next
npx, andupdatebrings an app you already have onto it. Apps from 0.2.0 hold what they were handed.Attach a WhatsApp number, an Instagram account or a TikTok account without leaving for the Chatfuel dashboard. The app mints the one-shot link itself, sends the person to the connect page and back, and re-grants permissions on an account already connected.
Run the wizard on an app you already have and take the newer modules without losing what you wrote. It overwrites what is still the wizard's, leaves what you edited alone, and names every file it could not decide for you.
An outside pass over the request proxy, the auth gate and what a deployed app exposes to the network. What it found is fixed; what it confirmed is written down where the next reader will look for it.
A scaffolded app already shaped for a business — a clinic, a school, a shop — instead of an empty one.
Week of 7 September 2026
5 updates
A Vercel account with no GitHub connection cannot have its repository linked, so a push never redeploys. The wizard used to find this out after it had already created and pushed the repository. It now asks during the deploy, offers the one setting to change, and if it is still missing says plainly that redeploy-on-push is off and the command that turns it on later.
The app calls the assistant Copilot, the operator inbox Inbox, the automations workspace AI Agent and the sign-in module Accounts — the names these pages use. Module ids, routes, skill names and
--modulesvalues are unchanged, so--modules coworkerstill installs Copilot and it still lives at/coworker. A build check now fails when a module's name disagrees with itself.Open a conversation from the contact row, the record header, the overview card or the activity tab, without going to the inbox to find the person again. A contact who arrived from an import or through the API has never written, and the inbox now starts the conversation for them — before, that contact was the one you could not message from here at all.
The trial step prints a short named link instead of several hundred characters of Stripe address, and every other link the wizard prints is clickable too. A terminal that cannot follow one still gets the plain address. Nothing opens a browser on its own any more: a window that takes the screen mid-run takes the promo code with it.
A campaign list, a five-step composer and the template catalog, the way a mailing tool does them. Pick an approved template, fill its blanks against the phone, insert contact attributes, build the audience and read the count, then send now, on a day, or on a repeat in the bot’s own time zone. Duplicate copies a campaign whole. Every campaign is a flow on the bot, so the dashboard sees it too.
Week of 14 September 2026
1 update
The trial step now lists every plan — Business and the Agency tiers — with its monthly price, the AI credits that come with it and how many bots the workspace may hold, and prints the checkout for the one you pick. It used to take the cheapest plan without naming it.
--yesstill takes Business,--pricing <id>takes any plan on the list, and the closing summary of a run that ended without a plan says which one the checkout was for.
Week of 21 September 2026
5 updates
On Instagram · Posts & Reels and Facebook · Post comments, the AI Agent's test panel is a post — one the automation watches, drawn at random — with a comment field. Leave a comment and the automation answers it the way it answers a real one: the public reply shows under your comment, and when it also writes in the DM, Test DMs opens that conversation to carry on. Restart tries again on a fresh post.
A comment shows the page post it was left on, with its text, picture and link. A button the contact tapped and an m.me link they opened are rows of their own, the ref included; a message that came from a Click-to-Messenger ad says which ad; and a contact the page may not write to first says so on the contact card. Facebook flows get their own Human agent block, and the Facebook post picker refreshes from Facebook and waits for the new posts before it re-reads.
The Facebook card on Channels connects a page in one press: the browser goes to Chatfuel's page, you sign in to Facebook, pick the page and come back with it connected, and Refresh access is there once the bot has one. A bot that already has two or more pages, connected in the Chatfuel dashboard, keeps Disconnect per page.
The AI Agent's Default · All channels page has an AI model card: every model the bot may use, with its input and output price per million tokens, and the one in use marked. It is one setting for the whole bot, changed with the Configure · Edit permission, and going back to the default follows the default rather than pinning today's model.
A post with a time on it could carry a pasted link or a library pick and never a file, because every upload went to a file store whose address expires within hours. A file added while the post has a time now goes to the deployment's own bucket, which takes JPEG, PNG, WebP, MP4 and MOV up to 25 MB — and the composer refuses anything else before a byte is sent. The same release warns when
publishingis installed withoutauth, which is the pair that posts on the spot and offers no schedule.