Soku AI

Changelog

Product updates that matter to marketing teams using Soku.

A single Meta outage no longer fails a whole account sync, conversion reporting stops burning itself on work that was already redone, Shoplazza joins the e-commerce integrations, and broken images on two public pages are fixed

Your ad data keeps syncing through platform blips

  • Meta returns two completely different failures under the same error code, and both arrive as an HTTP 500. One of them is Meta's own documented temporary fault, which recovers by itself — but Soku was treating it as a permanent error, so a single Meta blip could fail an entire account's sync with no retry at all. Those faults are now recognised and retried, after the existing window-shrinking has been tried first, so a transient wobble on Meta's side no longer costs you a day of reporting data. The same fault is now also retried on the older per-dimension sync path, where it had been quietly recorded as a partial success.
  • Conversion reporting stopped fighting itself. When two syncs covered the same account and day, the older one could never finish — and it would rebuild the same data set up to nine times before giving up, crowding out the newer refresh that was going to supersede it anyway. Being superseded is now treated as a normal, successful outcome: the older refresh stops after one attempt and steps aside. Genuinely corrupt state still fails loudly, as before.
  • The combined-breakdown cache could get two large Google accounts stuck in a loop that made no progress at all — each run timed out just before it saved its position, so the next run started from exactly the same place. Batches now stop while there is still time to save their progress, and if a run is cut short anyway, the work that did finish is recorded instead of discarded.
  • Background jobs now get their own isolated connections rather than reusing ones cached from an earlier, already-finished job. That reuse could silently drop approval callbacks and review notifications on later jobs in the same worker — so an action you approved could look approved and never notify anyone.
  • Sync failures are now labelled correctly as retryable or permanent, so a deterministic platform rejection is no longer reported as something that will fix itself on the next attempt.

Integrations

  • Shoplazza is now a documented integration, with a full page covering the connection workflow, use cases, plan-by-plan pricing and how it compares to the alternatives — and it appears in the e-commerce group on the homepage. Pricing on that page is taken from Shoplazza's own pricing page rather than estimated.

Marketing site

  • Images on the agencies page and the free competitor analysis page were returning errors instead of rendering. When image binaries moved to the CDN in July, two directory paths kept pointing at the app's own origin, which meant nine logos and avatars silently broke on two public pages. They now load from the CDN, and a build-time check makes it impossible to reintroduce the same class of broken path.
  • New guides published on cross-channel marketing attribution, comparing multi-touch attribution models, and UTM naming conventions for paid media, plus a Pika AI tool page and a Descript integration page.

Shared conversations can now be replayed like a recording, Sprout Social joins the read-only integrations, Brand access gets explicit per-person exclusions, ad changes are validated before they reach an approval queue — plus a cookie banner that actually gates the tags and a plain-English data-use page

Shared conversations, replayed

  • A public share link can now be watched instead of just read. Hit Replay on a shared conversation and it plays back like a recording — text reveals as it was written, tool calls run and then resolve, thinking beats land in order — which is a much better way to show a prospect or a colleague how the work actually happened than a wall of finished transcript. The static view is still the default, so every link you have already sent behaves exactly as before; add `?replay=1` to a share URL if you want it to autoplay on open.
  • One honest note on this: the pacing is reconstructed, not recorded. We only ever persisted the finished order of a conversation, so replay re-times it rather than replaying the original keystroke timing. Every existing share link gained replay with no migration and no re-sharing.
  • Artifact links inside a shared conversation open properly again. An external link with no explicit target used to hijack the sandboxed preview frame and land on an "Application Error" white screen — clicking "Open Soku" from a share was the common way to hit it. Those links now open in a new tab, and the fix is applied at render time, so every previously shared artifact benefits without being re-published.

Integrations

  • Sprout Social is available as a read-only integration. Paste an API token on the Integrations page (Sprout Settings → Global Features → API; it needs an Advanced plan with API permissions), Soku verifies it, discovers the customers it can reach, and stores it encrypted. Once a customer is authorized for a Brand, Soku can pull Sprout analytics into its own analysis. The token never enters the agent sandbox.
  • Because Sprout does not publish rate-limit headers, Soku applies its own ceiling per credential rather than discovering the limit by getting throttled. And when Sprout silently drops a metric it does not recognize, the response now tells you which metrics came back empty instead of quietly returning a shorter answer.
  • Shopify is temporarily off. Its card on Settings → Integrations stays visible but now shows "Coming soon" rather than a Connect button, so nobody starts a connection that cannot complete.

Who can see which Brands

  • Brand access moved to explicit exclusions. Members can reach the Brands in their organization by default, and an admin removes access per person, per Brand — rather than the previous model where each Brand had to be granted before anyone could use it. Nothing an existing member could do goes away unless a Brand is explicitly excluded for them.
  • The exclusion is enforced at the next admission everywhere a person can arrive — web, API, CLI, device login, invite landing, share links, onboarding and notifications — not just where the UI hides a link. An excluded Brand returns a plain not-found rather than a permission error, so the exclusion itself is not advertised.
  • Share links are re-checked every time the sharing dialog is opened, so a scope that was valid when a link was created stops being listed once the underlying access is gone.

Ad changes are checked before they reach you

  • Deterministic contract failures in a Google, Meta, TikTok or ChatGPT Ads payload are now caught before an approval record is written. Previously a malformed change could sit in your approval queue looking legitimate and only fail at the platform. Now it fails at submission with a clear reason, and nothing lands in the queue for you to approve.
  • The same path was hardened against malformed input more generally — wrong types and out-of-range values return a specific validation error instead of a generic server failure. New campaigns are still created paused by default.
  • ChatGPT Ads upstream failures now produce structured diagnostics we can actually act on, with no provider-supplied text, advertiser PII or credential material carried into logs or agent-visible errors.

Privacy and data use

  • The cookie banner now does what it says. Optional analytics and advertising tags are held until you accept them, rather than firing on load with a notice shown afterwards. Declining keeps them off, and your choice persists.
  • There is a plain-English data-use and security page at /data-use-security, and the legal pages and product claims across the marketing site were reconciled against it — so what the site promises about how your ad and analytics data is handled matches what the product actually does.

Reliability

  • Connecting a new organization to an ad account it shares with an existing one is dramatically faster. Verified ad-metrics history is now a reusable asset keyed by platform, account and date range instead of being rebuilt per organization, so a new workspace validates its own credentials and then syncs only the genuine gaps. Unlinking and reconnecting still isolates organizations from each other.
  • A blank assistant reply is now an error you can retry. Turns that finished with no visible output used to persist as completed, leaving an empty bubble with no explanation and no way forward; they are now marked as failed with a retry action, and existing blank messages already in your history render the same way.
  • A production incident on the night of 08-05 left ad-platform work queued behind dispatches that could never settle — the queue head retried forever and starved everything behind it. Those non-terminal dispatches are now settled when their retry fence clears, and three separate provider rate-limit gaps that contributed were closed.
  • Re-pasting a token for an integration that covers multiple accounts is now refused if the new token cannot reach every account already imported under it — with the missing accounts listed — instead of being written first and discovered broken later. Reconnecting updates the credential you actually clicked rather than creating a second row.
  • Skills you created, uploaded or edited yourself are no longer touched by template reconciliation. Only Skills with positive template provenance can be updated or pruned; everything else is explicitly skipped.
  • The new-chat screen got its top spacing back, scaled to the viewport rather than pinned to a fixed value.

Chat now shows you the plan it is working through, long conversations stop melting the browser tab, organization chat gets the full composer back, and two new research integrations land — plus ChatGPT Ads gets a proper CLI

Chat shows its work

  • When Soku is working through a multi-step job, the plan is now visible by default. The checklist renders as its own card in the transcript with a done-of-total count, instead of being folded away inside a collapsed "used N tools" group you would never think to open. Below the composer, a persistent progress bar carries the current step and the same count for as long as the plan is unfinished, and expands to the full checklist when you want it.
  • The spinner label stopped saying "Generating…" through everything. It now reports what is actually happening — preparing the workspace, running a specific tool, or whatever status the agent has published for the step it is on.
  • Streaming replies scroll smoothly instead of jumping a step at a time, and scrolling up now interrupts the auto-follow immediately rather than fighting you back to the bottom. The composer was restyled to match: a soft shadow instead of a hard border, a plain-text model selector, a round stop button, and compact file-attachment cards with a type icon, filename and size.
  • Historical plan cards stopped lying. A checklist you scroll back to shows the state it was in when that message was written — finished items no longer spin forever, and stale in-progress steps render as a dashed circle rather than an animated arc that suggests work is still happening.

Long conversations stop breaking the tab

  • A long chat used to mount every message at once — one very large conversation was enough to push a browser tab past 11 GiB and kill it. The transcript is now virtualized, so only the messages near your viewport are actually rendered, while the rules that need to see the whole conversation (follow-up suppression, review and batch cards, deduplication) run in a data layer before anything is drawn.
  • The API can now return a window of a conversation — the last N messages, a page from a cursor, or the region around a specific message — instead of the entire tree every time you open a thread. Requests that ask for no window are byte-for-byte identical to before, so nothing changes for anything already relying on the old response.
  • Previews got a memory budget. Chat pages now hold an LRU-accounted byte budget across artifact previews, thumbnail fetches wait until the tile is actually on screen, and heavy viewers compete for a limited number of slots. Anything that does not get a slot degrades to a clickable tile you can still open in full.
  • With that budget in place, HTML artifact thumbnails are back — you can see what a report looks like from the transcript again, rather than a generic "open to preview" tile. Reopening a preview immediately after closing it no longer shows a blank frame.
  • Two hard caps landed underneath all of this: HTML artifacts over 25 MiB are rejected at upload with an explanation the agent can act on and retry, instead of being stored in a size no viewer could ever render; and tool result text is capped at 64 KiB on the wire and in storage, so one runaway command cannot inflate the live stream, the saved message, and the share snapshot at the same time. The model still sees full tool output — this only bounds the copy that travels to your browser.
  • Report images are no longer inlined into report HTML as multi-megabyte base64 blobs. They are uploaded and referenced as ordinary hosted URLs, which is what made the reports heavy in the first place.

Organization chat

  • Organization chat now uses the same composer as brand chat. Model tier selection, file attachments, slash commands and @-mentions of resources all work there — previously it was a reduced input that quietly dropped them. Brand selection stays as the one organization-specific control, and the brand picker is searchable and scrollable, which matters once a portfolio runs to dozens of accounts.
  • The brand focus you choose when starting an organization conversation is now frozen for that conversation rather than silently shifting later, so a thread keeps answering about the same set of accounts you opened it for.

Integrations

  • SerpAPI is available as a built-in integration for live search results, billed through your Soku balance with no separate key to manage. Usage shows up in vendor credits and costs alongside every other provider.
  • Jina Reader is available to the agent for turning a public URL into clean, readable content — useful when you ask Soku to look at a competitor page, a policy document, or a landing page. Requests run through managed egress with the credential injected server-side, and token usage is billed and visible.

ChatGPT Ads

  • The Soku CLI now has a proper ChatGPT Ads command tree — 17 subcommands across account, campaign, ad group and ad — matching what Google and Meta already had. Every mutation requires an explicit account id and a change summary, so scripted changes stay reviewable. The bundled skill was rewritten around the current campaign → ad group → ad model instead of the deprecated ad-unit flow.

Reporting

  • Chinese, Japanese and Korean text in reports now renders correctly everywhere. Latin type still uses Soku's own faces, with a self-hosted Noto family filling only the CJK glyphs, and the same stylesheet is used for the live preview, historical shares and the PDF export — so a report no longer looks like three different documents depending on where you open it. PDF export fails loudly if a required font is missing rather than silently substituting a system fallback and shipping tofu boxes.

Reliability

  • Account bootstrap — the first heavy data pull when a brand is connected — now runs as an on-demand job that is created for the work and removed afterwards, instead of a pool of always-on workers. It brings its own recovery, capacity limits and rollback, so a failed bootstrap resumes from its checkpoints instead of restarting from zero.
  • Chat status text expires instead of getting stuck. Raw identifiers pasted where an ID was expected now return a clear error rather than a 500. Agent artifacts are served under the correct per-brand path. Pressing Enter to commit an IME candidate no longer sends the message mid-word when typing Chinese, Japanese or Korean. The empty composer no longer shows a stray scrollbar.

Organization chat gets its actual screen, platform automation now proves what it changed on Google, Meta, TikTok and ChatGPT Ads, one Slack connection covers every brand in your organization — plus two chat annoyances fixed

Organization chat

  • The organization-level conversation we described last week now has a screen to hold it. There is a proper landing page, thread view and history panel at the organization level, plus a focus selector that lets you narrow a single turn to a subset of brands instead of always asking across the whole portfolio — useful when the answer you want is about three accounts rather than thirty.
  • Organization chat also stops hiding inside your bill. Its usage was previously lumped into Unattributed; it now has its own bucket on the overview, in the usage table, and as a drill-down, so cross-brand questions are separated from brand work rather than showing up as an unexplained total.

Automation you can audit

  • Platform AI automation controls and drift auditing now cover all four ad platforms — Google, Meta, TikTok and ChatGPT Ads. The important part is what counts as done: after Soku writes a change, it reads the state back from the platform before treating that state as authoritative. If the read-back does not confirm the write, you get a partial-success result with an explicit recovery path instead of an echo of the request dressed up as a platform-approved change.
  • Approved settings are re-checked on a schedule — a 48-hour sweep plus a weekly full audit of current state — so a change made outside Soku surfaces as drift rather than sitting undetected until the next time someone opens the account. Accounts that were disconnected, revoked or soft-deleted are deliberately kept in that history instead of vanishing from the record.
  • The Automations home screen now carries a permanent entry point for this. You can see real coverage, confirm it explicitly, and switch on the two protected agent automations from the page itself, rather than having to know the right thing to say in chat.

Integrations

  • Slack now works across an organization. Any active brand can use a live Slack connection owned by the same organization, so connecting Slack once no longer means reconnecting it brand by brand. The permission stays scoped to Slack and still enforces tenant, source and availability checks — it does not quietly widen access to other integrations.

ChatGPT Ads

  • Every ad Soku authors on ChatGPT Ads now has to carry a real, stable name, and that name has to be confirmed by reading the ad group back from the platform before the write is accepted. Campaign activation is held behind a matching check: Soku will not flip a campaign live unless a direct read from the provider proves it is the OpenAI-network campaign it expects. Accounts with existing unnamed ads get a repair path that plans before it touches anything and never activates or submits for review on your behalf.

Chat fixes

  • Up and Down arrow chat switching works from an empty composer. Because the composer takes focus when a chat opens, the shortcut was unreachable in exactly the moment you would use it — you had to click away from the input first. It now works while the composer is empty and hands the arrows back to normal caret movement as soon as there is text. IME composition is left alone, so typing in Chinese, Japanese or Korean is never interrupted mid-word.
  • The new-chat screen no longer has a large blank band above the greeting. A hard-coded offset left several hundred pixels of empty space you could scroll up into, and on shorter windows it pushed the greeting off the top with no way to scroll back. Centring is now handled by the layout itself, so the greeting sits where it should at any window height.

Reliability

  • Brand template sync tolerates files you own. A stable, customer-protected item could previously fail an entire sync shard; those items are now recognised and reported as protected instead of taking the whole batch down with them, while genuine races, conflicts and errors still fail closed and retry.

Ask a question across every brand at once with organization chat, see the actual creative before you approve it, agencies can put their own brand on Soku, usage pages now answer where the credits went — plus a public Shopify App Store listing

Organization chat

  • You can now hold a conversation at the organization level instead of inside one brand. The agent runs in its own organization sandbox and can read every brand's workspace, so questions that span your whole portfolio — which brands are overspending, where the same creative is being reused, how last month compared across accounts — can finally be asked in one place. Every brand is mounted read-only and the organization agent never holds a credential that can write to a brand, so the reach is deliberately one-directional.
  • A related gap is closed along the way: a session without a brand used to be shown the full catalogue of capabilities while every one of them refused to run. What is listed and what is callable are now decided by the same rule, so the tool list you see is the tool list that works.

Approvals and ad creative

  • Approval cards now show you the ad. Previously every action awaiting your approval was rendered as the same key-and-value table, so approving a new ad creative meant approving an opaque image reference — you could not see the thing about to go live. Creative approvals now render as a feed mock-up with the real asset, page name, body copy, landing domain, headline, description and call to action, covering all six of Meta's mutually exclusive creative variants including carousels. 109 gated ad-writing actions were mapped to purpose-built layouts; anything unmapped renders exactly as it did before.

For agencies and partners

  • Partners can now put their own brand on Soku. A partner gets its own signup page at /partner/{slug}, users who arrive through it are attributed to that partner, and once they are in the product the partner's logo, favicon and browser title replace Soku's. Ending a partnership genuinely reverses this: old links, live sessions and stale cookies all stop honouring a deactivated partner rather than leaving co-branding stranded in someone's tab.
  • Self-serve upgrade prompts are hidden for partner-managed accounts, since billing runs through the partner, and the partner's operator is granted admin access automatically when the partnership starts and has it revoked when it ends.
  • Admins can sign in to the Admin Console with Google, and an account that was pre-provisioned by email is claimed on first login rather than needing to be created twice.

Usage and billing

  • The organization usage, per-brand drill-down and billing pages were rebuilt to answer a different question. They used to be an audit log of events; they now attribute cost, so you can see which brand, which conversation and which automation actually consumed the credits without reading a ledger line by line.
  • Turn counts and token counts were removed from these views entirely rather than just hidden, and replaced with a credits-by-kind split. The two numbers were being read as if they tracked each other and they do not: over a 30-day sample, 67% of credits came from third-party API calls that carry no tokens at all, 88% of tokens were cached reads priced at roughly a tenth of normal input, and two days in the same month differed by 60× in credits-per-token. Showing them side by side invited a comparison that was never valid.

Integrations

  • Soku is now installable from the Shopify App Store as a public app, alongside the existing connect-from-Settings flow. The install lifecycle is hardened so a delayed or out-of-order callback cannot overwrite or remove a newer installation, offline tokens rotate before they expire, and uninstalling triggers full historical redaction for that shop.
  • ChatGPT Ads campaigns are now restricted to OpenAI as the delivery platform, so a campaign cannot be created against a platform that cannot serve it.
  • TikTok is now a first-class branch in the ad deployment and reporting skills rather than a Meta-and-Google-shaped path with TikTok bolted on.
  • Connected Composio toolkits are discoverable from how you describe a task rather than only by their catalogue name, Google Ads field names survive round-trips unchanged, and the integrations contact link points at the right address.

Chat and onboarding

  • A first-time SEO or GEO request now routes into a complete SEO Hosting draft rather than a generic answer, and the first generated page is grounded in your actual site: if the page capture comes back blank, Soku retries with a real browser before falling back to imagery from the official page. The draft is visible in Settings before anything is published. Brand names written only in Chinese are accepted, and URL detection stops at Chinese punctuation instead of swallowing it.
  • Onboarding asks which language your brand voice should use, the model picker explains what each tier is for instead of listing names, and the chat history panel can be dragged to the width you want.
  • Markdown documents export to Google Docs again, artifact previews distinguish a network failure from a missing file and offer a retry, and sidebar navigation shows skeleton states instead of a blank pane while a section loads.

Reliability

  • Three ways a conversation could get stuck are fixed: agent events are retried after a response read timeout, turns are preserved when an acknowledgement arrives slowly, and a queued turn no longer expires waiting behind a long-running one. Ownership acknowledgements for running executions recover instead of stranding the run.
  • The conversion distribution selector stays visible instead of disappearing at certain data states, combo recovery remains available after a failed attempt rather than locking out, and report templates are visible by default with the reveal no longer dependent on JavaScript. Settings conversion guidance no longer leaves gaps where no advice was shown at all.

Marketing site

  • A new visual story on the consultant operating system — how an independent consultant runs acquisition, delivery and reporting as one loop rather than three disconnected tools.
  • The consultancy affiliate calculator now states plainly what its earnings figures assume, so the projection reads as a model rather than a promise.

An agency workspace for people who run several brands — usage and cost per brand, a cross-source activity log you can export, and billing moved up to the organization — plus a public ad creative library, chat reports exported to Google Docs and Slides, and invoice details collected at checkout

Organization workspace

  • If you run more than one brand, there is now a workspace above them. Open your organization from the brand switcher and you land on an overview that combines every brand you have: credits, turns, ad spend, a health badge, and recent activity, over a 7-day or 30-day window. Brands with usage that cannot yet be attributed appear in explicit Unattributed and Unassigned buckets rather than being quietly dropped from the totals.
  • A dedicated usage and cost page breaks consumption down per brand over any date window you pick, not just a preset range. Each row carries a trend pill, sortable Change and Growth columns, a daily sparkline, and a coarse split showing how much came from interactive chat versus automation versus Autopilot — so "Automation 67%" is readable at a glance instead of inferred. Clicking a brand drills into the individual charges behind the number, each traced back to the conversation or automation run that caused it.
  • Historical usage recorded before per-brand attribution existed is no longer stranded in the Unattributed bucket. A backfill now recovers brand attribution for past chat turns and for third-party API calls made from web sessions, so the overview reflects the brands those charges actually belonged to.
  • Billing has moved from an individual brand's settings up to the organization, where it belongs when several brands share one subscription. Old billing links redirect, and returning from Stripe keeps its query parameters intact. Starting a checkout, opening the billing portal, or cancelling now requires organization admin rights, and the interface reflects that up front — previously a non-admin could start the action and hit a dead end.
  • A new activity page gives the organization a single audit timeline drawn from four sources at once: agent write actions and their approvals, organization changes, member joins, role changes and removals, and billing events. Filter it by kind, brand, or time window, load more as you scroll, and export the filtered view to CSV. Member changes are audited for the first time — previously they left no record at all.

Admin access

  • Admin accounts can now be restricted to specific organizations, so a person who supports two customers sees only those two. Operators can also pre-provision an admin by email — role and organization scope set before that person has ever signed in — and change an existing admin's organization visibility later. A pre-provisioned account is deliberately unusable for signing in until it is claimed, and shows as Pending until then.

Ad creative library

  • There is now a public ad creative library at /ad-library: a browsable catalogue of real ad creatives with search, industry filters, a detail view that plays video, and load-more paging. Signed-in users can hit Remix on any creative to carry it straight into a new chat as structured ad context, and the same creative starters now appear on the New Chat screen with Remix on hover.

Reports and exports

  • An agent-generated report can now leave Soku as an editable document. Open a report artifact in fullscreen and the new Export menu sends it to Google Docs or Google Slides in your own Drive — the agent rebuilds the content in the destination format and hands back the edit link. Brands without Google Docs connected get a short connect guide instead, and every write still goes through the normal approval gate.

Billing and pricing

  • Stripe Checkout now collects the business name and billing address needed for a usable invoice, and offers country-aware tax ID collection. Credit-pack purchases and ChatGPT Ads funding now generate an invoice after purchase rather than only a receipt, and updated billing details are saved back to your customer record.
  • The current paid pricing is now labelled a limited-time offer, consistently on the public pricing page and in the in-app upgrade dialog.

Integrations

  • The hosted-app connection catalogue is now derived from the provider's live catalogue instead of a hand-copied snapshot that had drifted by 281 apps — that many entries in Settings were buttons that could never connect. Apps that only offer a GraphQL API are now labelled as such instead of being presented as REST, which previously meant they could be connected but not used. Documentation links went from covering 8% of apps to 86%.
  • Integration health now recovers on its own more reliably: provider health is reconciled into durable state, a stale failure can no longer overwrite a newer recovery, reconnect prompts point at the exact account that needs attention, and an account whose credentials have gone bad is caught at the moment an action runs rather than failing deep inside it. Abandoned half-finished connections are cleaned up.
  • The Built-in tab on the integrations page no longer links to a per-app detail page — that page only repeated the card's own description, so the cards now carry everything and the old routes are gone.

Chat and agents

  • Approval cards are usable again on large actions. A real payload — a Google Docs update with 76 request objects — had stretched one approval card to over 17,000 pixels tall, pushing the Approve and Reject buttons entirely off screen, which made the action impossible to approve at all. The buttons now sit outside the scrolling parameter view, so they are always reachable. The synthetic follow-up message that used to appear as though you had typed a string of identifiers and internal instructions is now hidden.
  • Submitting a large attachment no longer hangs the browser. Soku now sends the already-uploaded file reference instead of re-reading the file contents into memory at submit time, which was saturating the CPU on big files. Attachment ownership is re-checked at the moment of sending across every place you can compose a message.
  • Agent-sent emails no longer leak internal tool-protocol fragments into the body. Malformed arguments are repaired at the shared agent boundary before anything is saved, delivered, or sent, with a second check at email freeze time in case something slips past.
  • Document analysis now works anywhere inside a brand's workspace instead of only the chat-attachments folder. This was the largest remaining cause of failed agent runs — around 60 a week — because an agent that had just written a screenshot or extracted frame into its own working folder could not then analyse it. Files outside the brand workspace are still refused, and agents are now told to copy such a file in first.
  • Two chat stream faults are fixed: a stalled stream is now recovered by the connection that owns it, and a local end-of-turn can break a stale server-side block instead of leaving the conversation stuck.
  • Files with .ico, .avif, and .bmp extensions now show an image thumbnail in Context Hub instead of a generic placeholder card.

Language and interface

  • The skill Marketplace and the @ mention picker now show official skill names and descriptions in your own language, while skills you uploaded keep exactly the name and description you gave them. Skill slugs are shown so the canonical name is always visible, and an inserted @ mention stays canonical.
  • The Workbench drawer and the Context Hub actions reachable from it are now fully translated for Chinese users — file actions, dialogs, empty states, note editing, and context chips — with artifact terminology rewritten to read naturally rather than literally.
  • New-chat sample questions are now written in both English and Chinese rather than always sending English, hovering one shows the full prompt it will send, and the composer now measures full-width characters correctly so a wide Chinese prompt reflows instead of overflowing.

Reliability

  • The dashboard data-readiness endpoint no longer returns a server error for brands in a specific mid-sync state — around 60 failures a day on one brand — caused by comparing two timestamps recorded in different formats.

Marketing site

  • Nine more software and SaaS partners were added to the partnerships page: Ribbi, Liii STEM, Token Harbor, Maxuod Shift, Oumomo, Manga Capsule, Dory, FastMoss, and Floatboat.

ChatGPT Ads keeps the countries you approved, agents can read an automation's actual result and always know what time it is, quality warnings before an SEO page publishes, a one-command migration from Claude, and a rebuilt homepage

ChatGPT Ads

  • The countries you approve on a ChatGPT Ads campaign are now written to every ad group inside it. Previously the campaign carried your targeting but each ad group silently kept the provider default of All countries, so a campaign approved for two markets could serve everywhere. Soku now also refuses to write when a group's targeting conflicts with the campaign's, and fails loudly if the provider reads back a different country set than the one sent.
  • Freshness alerts no longer fire for ChatGPT Ads accounts that have no live Pixel key to sync with. Those scopes cannot produce a sync run at all, so the daily "data is stale" warning was noise — a shared account still alerts normally when a sibling organization does have a working key.

Agents and automation

  • An agent can now fetch the actual final result of a specific automation run — the text it produced and the files it wrote — instead of only its status. Asking "what did last night's budget check actually say?" now returns the answer rather than a green checkmark. Run history, exact run status, scoped artifact metadata, and re-running a past run are all available too, each permission-checked against the run you asked for.
  • Every agent turn now carries a verified timestamp taken from the server at the moment the turn starts, along with your timezone and UTC offset. Relative dates like "yesterday", "last 7 days", or "month to date" now resolve against the real current time instead of a stale value carried over from an earlier session — including across midnight and daylight-saving changes.

SEO hosting

  • Publishing or uploading a hosted SEO page now surfaces quality warnings before it goes out: a page with no images, a page whose body has no internal links, a canonical URL pointing at a domain you have not connected, and CSS that names a font it never actually loads. The warnings are advisory — they tell you what is wrong and let you decide, rather than blocking the publish.

CLI and Context Hub

  • You can now move an existing Claude workspace into Soku's Context Hub in one step. Install the new migrate-from-claude skill from your own agent and it walks through both paths — a local project directory, or a claude.ai export — and sorts what it finds into Context Hub documents, brand skills, or MCP server config. The /cli page now also documents the soku context commands, which previously existed but were undiscoverable.

Integrations

  • Shoplazza stores now appear as a normal platform card in the integrations grid rather than a separate list pinned underneath it, and you assign a store to a brand in the same Manage dialog used by every other platform. The card only shows for organizations that actually have a store installed from the Shoplazza App Store.

Reliability

  • Out-of-credits notifications now reach organization admins. A background worker fault meant the alert was being dropped silently when automation dispatch was blocked for billing, so the first sign of a stopped automation was the automation not running. The notification now sends correctly.
  • Dashboards stay readable while a brand's historical data is still backfilling — accounts with usable cached data are shown instead of the whole report waiting on the slowest one. When Meta rate-limits a backfill, Soku now waits for the interval Meta specifies and resumes, rather than spending its retry budget and giving up.
  • Chat's regenerate, edit-and-resend, and switch-branch actions no longer fail with a raw validation error when used on a message that is still being written. All three now check that the message actually exists on the server before acting.
  • When an agent tries to write a file larger than the 16 KB per-call limit, the error now states the exact byte count and how many chunks of what size to split it into. Agents previously guessed, retried at a still-too-large size, and stalled partway through writing a long document.

Interface

  • The Library and Marketplace icons in the left rail no longer keep a focus outline after their hover menu closes.

Marketing site

  • The soku.ai homepage is back — it had been temporarily replaced by the agencies landing page for a campaign — and has been rebuilt against the new design: an editorial headline treatment, painted artwork behind the problem, solution, and growth-channel sections, and a layout that reflows properly on a phone. The rest of the marketing site now shares that visual language.

Shoplazza store data for agents and CLI, a first-run guide for Autopilot, onboarding in your own language, honest dashboard and finance freshness, and a Google Ads connect flow that warns you before you leave

Integrations

  • A connected Shoplazza store is now readable by chat, agents, and the Soku CLI — shop profile, product list and detail, and order list and detail — so you can ask about catalog and order data in the same conversation where you plan and review ads, instead of exporting it by hand.
  • The hosted-app catalog no longer lists apps Soku already supports natively, so you connect Google Ads, Meta, TikTok, and the rest through the purpose-built card instead of picking between two entries that look identical.
  • The integrations directory search box now sits on the app-list header row, so filtering the platform grid and the app catalog happens where you're already looking.

Connecting Google Ads

  • Before Google Ads authorization sends you to Google, Soku now shows a short preflight screen explaining the two places people get stuck: Google's consent screen lists every permission as a separate unchecked box that must be ticked, and the hosted connect link asks for an account id that Soku never uses — you pick the real accounts afterwards inside Soku. Fewer connections now come back unable to read the account.

Autopilot and onboarding

  • A brand that has never run Autopilot now sees a first-run screen instead of eight empty panels: what Autopilot is, what the initial scan actually reads (account structure, recent performance, and your brand context), the guarantee that nothing is written to an ad account without your approval, and a single Enable button.
  • Onboarding now generates your launch pack — the starter tasks and the recommended automation — in the language you ran onboarding in, instead of always sending English. Chinese onboarding produces Chinese first messages.

Reporting and finance accuracy

  • Dashboards now handle accounts whose local reporting date is ahead of UTC instead of sitting on "Preparing" indefinitely, and show non-blocking freshness for a date still being collected. A first warm-up, a genuine historical gap, an integration problem, and a real zero are now four distinct states rather than one ambiguous blank.
  • The finance overview now refreshes stale balances when you open it and labels pending, delayed, and errored accounts truthfully, instead of presenting an old snapshot as the current balance. Meta's available budget is computed from the spend cap minus amount spent, with currency and unit conversion verified end to end.
  • Meta historical backfills no longer fail at the platform's 37-month lookback edge — the date clamp now carries a safety margin, so a deep-history import completes instead of erroring out on the boundary date.
  • GA4 traffic breakdowns now show ChatGPT Ads click traffic as "chatgpt-ads" rather than exposing the upstream vendor hostname as a traffic source. Historical data is aliased automatically with no backfill needed.

Reliability

  • Emailed agent deliverables now actually arrive as attachments, and outbound agent email is rendered in the Soku brand frame with proper styling instead of going out as plain text.
  • Site-audit PageSpeed checks no longer report a false "quota exhausted" and give up — long-running checks now complete, and a genuine timeout is reported as a timeout rather than as a quota error.
  • Signup and login rate limits are now sized for shared networks. Offices, campuses, and carrier-grade NAT put hundreds of unrelated people behind one address, and the old per-address ceilings made them ration each other into 429 errors. Per-email and per-code protections are unchanged.
  • The /llms.txt, /llms-full.txt, and robots.txt endpoints are restored and now verified on every release before traffic is shifted, so AI crawlers and search engines keep reading the site correctly after a deploy.

Marketing site

  • Added Anyway to the Partners & Friends page.

TikTok Ads is now generally available, dashboards show honest coverage instead of failing, and a cleaner Shoplazza and Adjust connect flow

Integrations

  • TikTok Ads is now generally available to connect — the feature flag is gone, so every workspace can link a TikTok Ads account and pull creative and performance data without a waitlist.
  • The Shoplazza connect flow now parks your store as soon as you authorize and moves brand-binding into Settings, so connecting and then choosing which brand a store belongs to are two clear steps instead of one crowded screen.
  • Connecting Adjust now deep-links straight to the right API-token page and tells you up front when MCP access still needs to be enabled, so mobile-measurement setup stops dead-ending.
  • Reconnecting a hosted app through Composio now refreshes your onboarding status immediately, so a freshly connected account shows as ready without a reload.

Dashboard reliability

  • Dashboards now render whatever data is available instead of failing an entire brand with an error when only some ad accounts are connected or cached — partial coverage and disconnected accounts are shown honestly rather than hidden behind a blank screen.

Ads data accuracy

  • Ads reports now default to the correct account for brands with a single connected account, so metrics resolve without you having to pick the account by hand.
  • ChatGPT Ads campaign bindings are now verified before actions run, so edits and deployments target the intended campaign.

Reliability

  • Site-audit PageSpeed checks now route through a stable host and no longer fail with rate-limit (429) errors, so audits complete on the first try.
  • Brand creation recovers cleanly when storage is briefly unavailable, so setting up a new brand no longer stalls under load.
  • Large chat edits that exceed the in-place size limit now regenerate the whole file instead of failing, so long documents keep saving.

2,000 signup credits, plan-based ad-account limits, AppGrowing and TikHub creative intelligence, redirect-based app connections, and a large sync reliability pass

Credits, plans, and account limits

  • Every new organization now starts with 2,000 signup credits instead of 10, so a new team can run real chat, research, and image generation before deciding on a plan.
  • Ad-account connections are now capped per channel by plan — 3 on Free, 10 on Starter, unlimited on Pro and Enterprise — across Google, Meta, GA4, and TikTok. Existing connections are untouched, and disconnecting then reconnecting always restores what you already had.
  • The OAuth account picker now shows the limit while you choose, so over-selecting is caught up front with an upgrade path instead of failing after you hit import.

Connecting accounts

  • Connecting Gmail, Notion, Google Workspace, Monday, and other hosted apps now uses a full-page redirect instead of a popup, so authorization no longer gets silently blocked in Safari or in-app browsers.
  • You can now pick your Google service-account key straight from the downloaded .json file instead of pasting the JSON. The file is read entirely in your browser and never uploaded.
  • Rewrote the Google connect chooser around who you are — managing client accounts (MCC) versus advertising for your own business — and linked Google's official service-account guide, so the setup path is obvious without technical background.
  • Google Ads Editor recommendation paths are now validated, and reconnecting an account preserves its original identity and name.

Creative intelligence and AI output

  • Added AppGrowing as a creative intelligence source, so competitor ad-creative research draws on broader evidence with quota-aware fallback when a provider is unavailable.
  • Added TikHub for TikTok, X, YouTube, and LinkedIn social scraping, with automatic Apify fallback when a request isn't supported.
  • Image generation now automatically edits from the reference images you supply instead of regenerating from scratch, and content workflows gained authenticity rules so product imagery isn't fabricated.

Reporting and sync reliability

  • Meta requests now retry automatically when Meta reports a transient platform error, so a brief outage no longer leaves a day-long hole in your ad entity data.
  • Dashboard sync now fails loudly instead of reporting a fresh timestamp over stale data, distinguishes genuinely empty periods from unknown ones, and can recover a mismatched account with a forced 30-day catch-up.
  • Audited all 71 TikTok Ads actions against the official v1.3 API and fixed Smart+, Pixel, Catalog, and GMV Max drift, preserved ad-group bids and frequency caps through edits, and sharded long report windows so large date ranges complete.
  • Restored correct UTC reporting and deployment behavior for ChatGPT Ads.

Chat reliability

  • Healthy chat streams no longer flash red error banners when a turn closes normally.
  • Fixed a case where uploading UTF-16 exports could lose a completed agent answer and surface an unexplained retry prompt.
  • Browser tab titles now reflect the organization, brand, and conversation you're in, and stay current through renames and across multiple open tabs.
  • Brand initialization now retries under contention, so creating a brand no longer fails when several start at once.

Attribution and marketing site

  • Stopped soku.ai's own login redirects from being counted as referral traffic, and preserved first-touch attribution across the marketing site and app, so acquisition reporting reflects real sources instead of self-referrals.
  • Cut the marketing homepage's memory footprint and font loading, so the site is lighter and faster on first visit.

More reliable daily ad data sync

Reporting and sync reliability

  • Restored complete daily ad data sync after a regression that could leave campaign, ad set, and ad metrics frozen for some accounts, so dashboards and reports refresh fully each day again.
  • Hardened Meta data pulls to automatically request smaller pages when the platform rejects an oversized response, so large accounts sync through instead of stalling.

Credit packs with affiliate attribution, redemption-code plans, Slack and Shoplazza connectors, faster account connect, and chat reliability fixes

Billing, plans, and affiliates

  • Added credit pack purchases with affiliate attribution, so you can top up credits on demand and partners get credited for the referrals they drive.
  • Redemption codes can now grant a billing plan alongside credits, turning launch and partner promos into a single code.
  • Updated ChatGPT Ads access and pricing so the intake reflects current availability and cost.
  • Clarified the free plan member limit so teams can see exactly how many seats are included before upgrading.

Chat and agent reliability

  • Any brand member can now delete shared conversations, so teams can clean up shared chat history without waiting on the owner.
  • The first agent turn on a new chat now streams as it generates instead of showing a blank spinner.
  • Failed turns keep an errored placeholder, so a chat no longer goes blank after a refresh.
  • Added fail-safe model degradation so Pro and Max runs fall back cleanly instead of hard-failing when a model is briefly unavailable.

Integrations and attribution

  • Enabled the Composio Slack toolkit in the Bring Your Own catalog, so you can wire Slack actions into agent workflows.
  • Repurposed the Shoplazza connector as a lead funnel with attribution for cleaner lead tracking.
  • Surfaced a Soku Browser SDK docs link in the Pixel setup guide so developers can find install steps in context.
  • Fixed OAuth connection UX — stale Pending states, the sync widget, onboarding redirect, and reconnect anchors — and decoupled ad-account creation from heavy syncs so imports finish faster.
  • Sped up Google account discovery on the first hop so connecting accounts is quicker on large managers.
  • Unified tracking-attribution delivery so conversion data reports more consistently.
  • Temporarily hid the unfinished channels integration tab to avoid a dead end.

Autopilot and marketing site

  • Split the autopilot page and fixed the sidebar so it scrolls all the way to the bottom.
  • Migrated committed image assets to the cdn.soku.ai CDN for faster-loading marketing pages.

Monitor automations, Seedance 2.5 tool, large-MCC Google discovery, agent-led growth pages, and reliability fixes

Automation and monitoring

  • Added a monitor automation type that triggers on metric conditions, so teams can be alerted and act when a KPI crosses a threshold instead of only on a fixed schedule.

AI tools and marketing site

  • Launched a Seedance 2.5 tool page with a functional generator and landing flow for higher-quality AI video from a prompt.
  • Added agent-led growth pages, a dedicated CLI page, and a use-case library so agents and marketers can discover Soku workflows directly.
  • Shipped the daily SEO trio with the Zendesk integration, a business video maker tool, and a generative engine optimization guide.

Integrations and reporting reliability

  • Made Google account discovery lazy for large MCCs so connecting big manager accounts is faster and no longer times out.
  • Added adaptive GAQL date sharding so Google metrics syncs complete on large date ranges instead of failing partway.
  • Stopped admin API request rows from appearing in customer audit logs for cleaner, more accurate activity history.

Reliability and quality

  • Routed the Azure GPT-5.6 model through the responses API so Pro and Max model fallbacks no longer hard-fail mid-run.
  • Verified real image dimensions in the ad-creative QA gate so generated creative matches the intended placement size.
  • Removed stale ChatGPT Ads funding reminders so teams stop seeing outdated funding nudges.

Onboarding

  • Streamlined onboarding into a single automation with a slimmer form, registry-driven connect tools, and localization for a faster first run.

Referral program, MMP and Search Console integrations, model-tiered automations, finance overview revamp, and ChatGPT Ads intake polish

Ad operations and platform coverage

  • Added small-slot ad image rules and budget/ad-group controls to ChatGPT Ads media planning so smaller placements get correctly sized creative and cleaner budgeting.
  • Updated Google Ads to v24 flight-date fields with standard target CPA/ROAS bid strategies for current campaign scheduling and automated bidding.
  • Synced Gravity ad-unit metrics and exposed account spend cap, disable reason, and minimum daily budget on account reads so reports reflect real spend limits and status.
  • Hardened the Pipedream Google Ads sync for more reliable data imports.

Integrations and connections

  • Added an Adjust (MMP) integration so mobile measurement data can flow into Soku ad workflows.
  • Integrated Google Search Console through the Pipedream provider so agents can pull first-party search performance for SEO and content workflows.

Automation, models, and plans

  • Added model-tier selection to automations so scheduled runs match model capability and cost to each job.
  • Added Azure model fallbacks for Pro and Max tiers with a 6-hour breaker cooldown so conversations keep running when a provider degrades.
  • Allowed fal.ai image generation on the Free plan (video generation stays gated) so more teams can create ad images without upgrading.

Referrals and billing

  • Launched a referral program with shareable invite links, credit rewards, and anti-abuse protections.
  • Made the signup reward double-sided so the referrer also earns credit when an invite converts.

Dashboard and reporting

  • Revamped the finance overview with MCC/Business-Manager grouping, account-timezone spend, and Meta coverage so multi-account spend is easier to read.
  • Added an asset creative preview with thumbnail, lightbox, and download to the dashboard for faster creative review.

Onboarding, workspace, and CLI

  • Reduced ChatGPT Ads intake drop-off at the assets step and now persist the intake contact as a draft on step 1 so partial submissions aren't lost.
  • Smoothed the new-workspace welcome with a softened launch backdrop, removed the rolling-word hover tint, and named onboarding Slack channels with a clear Soku suffix.
  • Surfaced the Soku CLI as a dedicated Marketplace hub tab, and made the agent read_session tool work across both render paths.

Docs and marketing site

  • Published a ChatGPT Ads creative-assets upload guide plus Meta placement asset-customization and lead-form pairing guidance for agents.
  • White-labeled the ChatGPT Ads capability docs by removing the upstream vendor name.
  • Shipped the daily SEO trio, expanded the video-campaign-groups blog into a pillar plus a three-post cluster, added the Intercom integration and AI UGC Video Generator tool pages, and replaced placeholder testimonials with real ones.

ChatGPT Ads write actions, unified integrations, account balances, agency pricing, and onboarding launch pack

Ad operations and platform coverage

  • Added ChatGPT Ads write operations so agents can create and manage ChatGPT Ads campaigns directly from Soku workflows.
  • Completed Google Ads recommendation and management (RMF) capabilities for broader campaign optimization coverage.
  • Added a data-readiness check agents can call before segmented audits, so reporting waits for complete data instead of returning partial numbers.
  • Tightened creative handoff so customer screenshots are no longer treated as the final ad image, and clamped Meta Ads metrics lookback for consistent reporting windows.

Integrations and connection reliability

  • Unified the integrations page with a single search and built-in icon fallback, plus complete pagination so every connected app is browsable.
  • Unified the Google OAuth redirect flow and added a domain-aware credential selector so dedup sync pipelines pick the right account automatically.
  • Surfaced credential health to the agent (needs-reauth and reconnect errors) and aligned the account sync status UI with clearer recovery.
  • White-labeled ChatGPT Ads connection labels, refreshed the AppsFlyer card with its official logo on disconnect, and let Continue adopt a pending credential when consolidating accounts.

Dashboard, reporting, and sync reliability

  • Added ad account balances across the dashboard and integrations so budgets are visible at a glance.
  • Added a resident sync widget for live import progress and a dashboard vacuum-period presentation so data freshness is clear.
  • Isolated sync dispatch and each ad platform into dedicated workers so a Google backlog no longer starves Meta and ChatGPT Ads reporting.
  • Added just-in-time backfill on the agent read path and stopped falling back to an HTML report when image or video generation is plan-blocked.

Models, agents, and automation

  • Registered the GPT-5.6 (Azure) model deployments so teams can select the newer model tier.
  • Added per-tier default effort controls to match model reasoning depth and cost to each plan.
  • Replaced the hard mutation budget with graceful run convergence so long agent runs finish cleanly instead of cutting off.
  • Added a ChatGPT Ads weekly reporting skill for recurring performance summaries.

Onboarding and account controls

  • Launched an onboarding launch pack with starter tasks, a free-run billing exemption, and a clearer setup UI for new workspaces.
  • Unwedged onboarding finalize on degraded drafts and now classify GA4 correctly as a measurement source.
  • Restored self-managed organization deletion and added rotating welcome use cases on the new-workspace home.

Pricing and marketing site

  • Merged the credits calculator into the pricing page with an agency-versus-brand persona split so each audience sees the right plan model.
  • Added a 'perfect for agencies' band to the homepage and a partnerships backlink-exchange form with dofollow auto-verification.
  • Shipped the daily SEO trio (blog, tool, integration) with a sitemap snapshot, published ChatGPT Ads onboarding guidance and an ad-account-safety FAQ, and refined skill marketplace navigation.

Public credits calculator with a savings and ROI model

Pricing transparency and planning

  • Launched a public credits calculator at /calculator so teams can estimate Soku costs by task, calibrated against real production usage data across LLM and third-party costs.
  • Added multi-tier planning for performance reports (daily/weekly/monthly) and ad and campaign write actions (single/duplicate/bulk), each with its own monthly frequency, so estimates match how a team actually operates.
  • Added a forward savings model that projects net monthly savings with a before/after ROI badge, plus a Contact-us path above Pro capacity.

ChatGPT Ads billing and funding, unified integrations, in-product docs, and account controls

ChatGPT Ads billing and funding

  • Introduced tiered ChatGPT Ads service fees with a minimum deposit so larger campaigns get clearer, volume-based pricing.
  • Moved ChatGPT Ads funding to a guided manual bank-wire flow that collects payer bank details, for more reliable and auditable budget top-ups.
  • Priced fal-based video generation against the Seedance 2.0 Mini tier so video credit costs stay predictable.

Integrations and connection reliability

  • Unified all integrations into a single searchable app list with icons, so connecting ad, analytics, and messaging tools is easier to browse.
  • Turned OAuth connection failures into clear, human-readable messages — including specific guidance when Meta credentials fail — instead of opaque errors.
  • Made credential fetches retry transient transport failures automatically, so linking an account is less flaky.

Reliability and agent runs

  • Hardened long-running conversations against silent stalls with faster stall detection, recovery on resume, and a reliably reachable stop control.
  • Raised the stream-idle watchdog and now surface live model and provider outages, so it's clear when a model is degraded instead of failing quietly.

Workspace, help, and account controls

  • Added a unified workspace setup splash for a clearer first-run experience, and restored the Library chat panel across navigation.
  • Launched an in-product Soku docs knowledge base and help assistant for self-serve answers inside the product.
  • Added self-serve account deletion that cascades across your organization and connected credentials for privacy compliance.
  • Preserved your current page when switching brands and fixed seat-usage display on the organization members page.

Marketing site and content

  • Published a Google Ads API guide cluster covering brand verification, Basic vs Standard access, and multi-party approvals for ad-automation teams.
  • Added this public changelog so customers can follow product updates that matter to marketing teams.

Google connection reliability, campaign UTM metadata for agents, and public data-deletion access

Integrations and connection reliability

  • Made Google account connections more resilient so transient credential-discovery errors retry automatically instead of failing a connect attempt.
  • Switched Google Ads OAuth to the native provider by default for more consistent account linking and syncing.

Automation and reporting

  • Agents can now request campaign-level UTM parameters when listing brand campaigns, so UTM and attribution analysis workflows have the tracking metadata they need (opt-in, with default responses unchanged).

Privacy and public site

  • Fixed the public data-deletion page so it stays reliably reachable for privacy and compliance requests.

Model tiers, smarter chat home, ad platform sync reliability, and account privacy controls

Model tiers and agent reliability

  • Introduced Soku model tiers (Lite, Pro, Max) with per-conversation model selection so teams can match model capability and cost to each task.
  • Added an automatic model fallback ladder so conversations keep working when a model provider degrades instead of failing mid-task.
  • Hardened agent runs against stalled streams and oversized tool calls, and added a runtime backstop that stops stuck automation runs cleanly.

Chat and workspace experience

  • Redesigned the new chat home with Get started category chips so common ad, SEO, and reporting workflows are one click away.
  • Added a shared Library chat panel with select-to-stage on all Library tabs, plus a hover flyout on the Marketplace rail for faster discovery.
  • Improved Autopilot readability with higher text contrast, larger type, and individually collapsible rail panels, and fixed CSV previews for BOM-less UTF-8 files.

Ad platform connections and syncing

  • Fixed Meta account import so OAuth credentials without a Business Manager can still connect and select ad accounts.
  • Added Google Ads and Meta Marketing API rate-limit governance so data syncs back off gracefully instead of burning daily platform quotas.
  • Added ChatGPT Ads funding entry points so budgets can be funded and reconciled directly from the product.

Onboarding, privacy, and public site

  • Gated incomplete brand onboarding routes so new workspaces finish setup before landing on half-configured pages.
  • Added an account deletion request flow in personal settings and a public data deletion page for privacy compliance.
  • Upgraded SEO hosting page design quality with brand-grounded layouts for hosted marketing pages.

Ads write actions, dynamic creative, ChatGPT Ads onboarding, and agent reliability

Ad operations

  • Expanded Google Ads write coverage for update/remove workflows and filled more Meta Ads lifecycle actions for campaign, ad set, and ad management work.
  • Added Meta dynamic creative support through asset feed specs so teams can create richer creative tests from Soku workflows.
  • Added clearer ads capability coverage and handler wiring so agents can expose supported write actions more reliably.

ChatGPT Ads and onboarding

  • Added a ChatGPT Ads card to onboarding and refreshed workbench selection states so new teams can start from ChatGPT Ads setup more directly.
  • Improved ChatGPT Ads backfill and metrics timezone handling so campaign history and reports line up with the expected reporting window.
  • Kept ChatGPT Ads entry points visible through the announcement banner and onboarding apply path.

Creative workflows

  • Added an ad library chat panel with reusable embedded chat, reference chips, thumbnail context, and Remix actions for faster creative iteration.
  • Added a permanent public media publishing tool so generated assets can be shared from stable URLs instead of temporary workspace links.

Reliability and admin visibility

  • Added user ban/unban controls, plan entitlement controls, and vendor-credit monitoring so admins can keep workspaces healthier and easier to operate.
  • Made agent report generation more resilient with smaller copy-then-edit HTML report steps and retries for transient provider stream failures.
  • Improved user-facing error handling so raw machine errors are less likely to leak into customer-visible toasts.

BYO MCP integrations, ad creative library, ChatGPT Ads routing, and Claude Sonnet 5 guides

Integrations and approvals

  • Added more of the BYO MCP integration workflow, including custom integration drafts, human-reviewed gateway actions, read-policy review, and clearer runtime observability.
  • Introduced tiered human approval controls so teams can choose once, session, always, or deny behavior for sensitive agent actions.
  • Added an admin integration-package registry so integration capabilities can be reviewed and managed more consistently.

Ad creative and marketing workflows

  • Added a DB-backed ad creative library with faceted search, admin CSV import, and gallery performance fixes for browsing large creative catalogs.
  • Improved ChatGPT Ads intake by enforcing a budget floor and simplifying requested campaign timing/contact fields.
  • Fixed the ChatGPT Ads homepage banner redirect so production visitors keep the public soku.ai host and campaign attribution when starting setup.

Workspace and automation UX

  • Made Autopilot proposals visible to brands by default so clients can see recommended next steps without extra admin setup.
  • Refined chat/sidebar behavior with cleaner layout, friendlier automation-created run titles, and live refresh for new conversations.
  • Hardened sign-up and onboarding flows with coupon redemption, idempotent org creation, abuse defenses, and clearer admin brand visibility.

SEO hosting and public content

  • Added first-party SEO hosting mount support and CRM contact-form routing improvements for marketing-site operations.
  • Published a Claude Sonnet 5 content cluster for AI marketers, Meta/Google Ads setup, ad-automation evaluation, and routing tradeoffs versus Opus 4.8.
  • Submitted the newly live Claude Sonnet 5 URLs for indexing and refreshed low-CTR SEO copy/internal links from the previous daily workflow.

Docs, Context Hub exports, ChatGPT Ads setup, and automation reliability

Docs and marketing site

  • Added a public /docs section with getting-started guides, account setup, conversion mapping, team invites, FAQ, and web-app versus CLI guidance.
  • Made docs easier for AI agents to consume with per-page Markdown views, copy-page actions, sitemap inclusion, and llms-full.txt discovery.
  • Published new AI ads guides for TikTok Agentic Hub and YouTube Shorts brand-campaign measurement.

Context Hub and workspace UX

  • Added single-file downloads, multi-file batch downloads, and recursive folder zip exports in Context Hub.
  • Kept failed downloads selected for retry and tightened export handling for non-ASCII folder names and path traversal edge cases.
  • Refreshed the app shell, chat history, sidebar, and Autopilot presentation so workspace navigation and proposal review are cleaner.

Ads, integrations, and CLI

  • Limited ChatGPT Ads setup to supported markets and pinned account display names so users see clearer platform options.
  • Expanded the CLI capability manifest and added ergonomic Meta lead-form and audience write commands for ads operators.
  • Added safer data-action parameter guidance so agents mirror integration contracts more reliably during account audits and reporting workflows.

Automation and reliability

  • Expanded Autopilot proposal autonomy so Soku can prepare more actionable next-step recommendations.
  • Added Google/Gemini support in the backend LLM provider path and an admin control plane for switching the global default model.
  • Hardened MCP egress and runtime dependency handling so integration calls run with clearer contracts and safer isolation.

ChatGPT Ads routing, dashboard polish, integrations packaging, and support visibility

ChatGPT Ads acquisition flow

  • Added a homepage announcement banner for ChatGPT Ads that carries campaign intent through sign-up.
  • Routed tagged ChatGPT Ads visitors to the integrations setup path after onboarding, with the ChatGPT Ads card leading the grid.
  • Handled multi-value ChatGPT Ads UTM parameters so campaign attribution stays intact when visitors arrive from richer ad links.

Dashboard reporting fixes

  • Fixed GA4 property loading for connected brands so the GA4 Analytics tab can open reliably.
  • Raised the pivot-table sticky header above the sticky breakdown column so large reports stay readable while scrolling.

Integrations infrastructure

  • Packaged built-in integrations behind a registry so Soku can expose and manage integration capabilities more consistently.
  • Added a trusted MCP client core and egress dispatch contract for safer integration calls through managed gateways.
  • Added a gateway policy shadow evaluator to inspect integration routing decisions before enforcing new gateway policies.

Support and reliability visibility

  • Added third-party provider error recording, digesting, and an admin trace-lookup view so vendor failures are easier to investigate.
  • Moved the pixel proxy and SDK into dedicated submodules to keep tracking components easier to maintain independently.

ChatGPT Ads intake, workspace integrations, SEO hosting, and dashboard updates

ChatGPT Ads and lead capture

  • Added a gated ChatGPT Ads whitepaper page with Meta/PostHog lead tracking and secure PDF delivery.
  • Required company and LinkedIn fields on the whitepaper gate so sales follow-up gets cleaner lead context.
  • Synced ChatGPT Ads intake assets into Lark Bitable with file-count, size, and URL validation guardrails.

Integrations and agent skills

  • Added Monday.com read/write support through Composio with human-reviewed GraphQL mutations.
  • Added Google Drive and Google Calendar Composio integrations, including matching agent skills for file and calendar workflows.
  • Improved Fireflies API-key connection handling and refreshed Composio integration cards with official toolkit logos.

SEO hosting and site setup

  • Added per-brand SEO Hosting section catalogs so each brand can manage its own hosted content sections.
  • Reworked site verification settings into a clearer install journey with advanced controls.
  • Added analytics-only last-seen recording to make site verification and SDK setup easier to diagnose.

Dashboard, CLI, and reliability

  • Added ad-account-level selection in the dashboard account picker for more precise reporting filters.
  • Scoped the integrations page to the current brand and kept account mappings accessible to admins.
  • Added Meta bulk ads and brand-skill management commands to the CLI.
  • Returned structured 424 upstream errors for Composio proxy failures so agents see the real vendor issue instead of an opaque edge 502.

Seedance Mini, SEO hosting, ad ops, and automation updates

AI video and creative tools

  • Added a public Seedance 2.0 Mini tool page with sign-in, credit-aware generation, prompt persistence, generated-clip history, and upgrade flow support.
  • Defaulted Seedance 2.0 video generation to the mini tier for lower-cost video experiments.
  • Added a SaaS creative-design playbook and planner/generator/evaluator pipeline for product demo, real-person, illustration, and reference-image creative routes.

Ad operations and conversion workflows

  • Expanded Google Performance Max asset uploads across image, text, and YouTube assets.
  • Added Meta bulk ad deployment actions and campaign duplication with per-campaign overrides.
  • Exposed ChatGPT Ads agent capabilities and improved ads executor fallback errors.
  • Moved Google enhanced-conversion lead uploads to the Data Manager API path for newer Google Ads integrations.

Integrations, CLI, and SEO hosting

  • Added a Google Sheets runtime skill through the Composio proxy path.
  • Added automation management commands to the Soku CLI.
  • Polished SEO Hosting with wider previews, cleaner page lists, copyable sitemap links, and silent auto-verification while domain connections settle.
  • Updated the public CLI page to the current file-based SEO Hosting pages workflow.

UX and reliability

  • Fixed Slack OAuth callbacks so installs return through the correct integration processor and back to the brand settings page.
  • Fixed Stripe checkout return paths that could send customers to a 404 after purchase.
  • Added zip uploads in chat and rendered user messages as plain text with URL autolinks.
  • Redesigned sign-in with a new sky backdrop and streamlined frosted-card layout.

Marketing and SEO content

  • Published a Gemini computer-use pillar and three cluster guides for AI ad ops and browser-agent workflows.
  • Refreshed selected low-CTR marketing titles, descriptions, and internal links.
  • Updated Kling 3.0 tool metadata for official-site and Kuaishou search intent.

Explore More Resources

We use essential cookies to operate and secure Soku. With your permission, we also use optional analytics and advertising cookies to measure usage and campaigns. You can change your choice at any time. Privacy Policy