OobiMax

Changelog

Changelog

What changed recently, in operator language.

June 2026 mobile clarity pass

  • Wired approved GA4/Search Console Measurement into the normal Refresh Intelligence rhythm: after read-only consent, Oobi setup readiness, and Workspace Admin brand mapping, OobiMax can collect aggregate landing-page and query/page snapshots before recommendation generation without granting campaign or spend authority
  • Added Measurement Search demand Action Plans so approved aggregate Search Console query/page evidence can shape Search keywords, negative-theme review, copy, landing pages, and page coverage without mutating Google Ads or exposing fake approval controls
  • Moved GA4/Search Console from review-pending to approved read-only Measurement evidence after Google Data Access approval for Analytics read-only, while keeping Google Ads scopes, campaign actions, launch, delivery, budgets, and spend authority separate
  • Restored the approved Ad noise. Approved action. homepage hero and hero artwork after the lower-page clarity pass touched a protected first-viewport direction
  • Removed the hidden mobile Policy & Evidence hero block and the duplicate Why/Policy section so the homepage stops repeating the same pain points and moves Architecture after Campaign Editor
  • Started the local-only 25M homepage pass with large OobiMax brand visuals for Policy & Evidence, Product Preview, Campaign Editor, Architecture, and Campaign Builder pending Meidan approval before production
  • Removed repeated homepage hero proof chips and the duplicate mobile decision strip so the hero has one message, one CTA group, and the detailed operating proof starts in the pain section
  • Converted the public homepage pain section from paragraph-led copy into a visual signal -> REC # -> approval -> learning loop with short labels and less default reading weight
  • Reworked the public homepage conversion story so the hero is followed by a pain rail for decision drift, Policy & Evidence Center, stale recommendations, and spend-safe action before the product story sections
  • Added homepage buyer-facing pain-point copy for the Policy & Evidence Center, approval memory, and spend-safe execution so policy triage reads as a performance-marketer operating problem, not only an admin feature
  • Moved the mobile homepage policy, approval-memory, and spend-safety pain points above the CTA as a compact hero rail instead of a large isolated policy card
  • Renamed Workspace Admin policy review to Policy & Evidence Center and changed the default read into status, evidence, and next action before audit detail
  • Made Campaign Nature Review evidence structured with evidence type, source, reviewer, confidence, decision statement, and one optional context note; normal-commercial workflow fields now fold away and auto-fill from the structured record
  • Compressed Settings -> Measurement again so the first read now shows selected brand, allowed action, and next useful step before Google review scopes, adapter mechanics, evidence drawers, or preview contracts
  • Tightened Campaign Builder and Campaign Editor again: Builder now opens the form with one reviewed-plan handoff and a compact mobile contract rail, while Editor default draft controls say Change only if needed so unchanged fields feel intentionally quiet
  • Cleaned up Settings -> Measurement so Sources, Brand mapping, and Evidence lead the page while Google review scopes, adapter QA, and preview contracts stay folded behind support detail
  • Added a Google Measurement review-consent path in Settings so GA4 and Search Console read-only scopes can be shown in OAuth verification while live discovery, collection, mapping, campaigns, and spend authority remain blocked
  • Rebuilt the Settings mobile operating map as a vertical setup chain with stacked source, account, brand, and delivery cards so the mental model no longer clips sideways on phones
  • Replaced the authenticated app mobile More menu with one swipeable navigation rail so Home, Inbox, Campaigns, Results, Insights, Campaign Builder, Settings, Workspace Admin, and Admin stay directly reachable on phones
  • Folded large Campaign Editor country, schedule, audience, and language exact-choice inventories behind deliberate drawers, keeping exact synced options available without dumping long Google targeting lists into the default editor read
  • Made Results Detailed Evidence a closed proof hub after the manager answer and shortened Insights proof labels so operators see the decision first and open trend, risk, momentum, and audit evidence only when needed
  • Expanded the Full Brand Profile CSV and Settings Brand Profile Interview with Learning Context fields for seasonality, what worked, what failed, recurring opportunities, recurring risks, past winners, and past weaknesses
  • Reduced Campaign Editor choice-card noise so audience selectors lead with synced human names, exact IDs stay in audited payload values, and readonly setup context uses shorter truthful helper copy
  • Fixed Results money truth so spend and cost/result follow connected ad account currency, including ILS accounts, while mixed-currency views say Mixed currency instead of pretending the total is USD
  • Tightened Campaign Editor, Campaigns, and Billing clarity: unknown ad-account money now says Currency pending instead of USD, Campaign Editor shows the budget currency source in the hero, and controlled-beta checkout displays workspace approval, billing permission, and provider readiness before product cards
  • Swept Campaign, account, brand, momentum, and Campaign Builder-created campaign money displays so ad-account spend and CPA use account-native currency and mixed-currency aggregates stop presenting a fake single-money answer
  • Tightened Campaign Builder's mobile planning body so optional source or creative work stays folded, the essentials handoff is shorter, and the required-input/Oobi-drafted/no-spend contract no longer repeats the old heavier safety text before the form
  • Tightened Results and Insights first reads again: Results now opens with one manager answer plus compact support rails, and Insights now opens with one Performance read plus risk/action/learning support rails instead of equal-weight dashboard tiles
  • Split Campaign Editor setup into true draftable controls first and a folded Strategy, tracking, and inventory context drawer for readonly evidence such as campaign type, bidding strategy, tracking, URL context, complex geo shapes, and campaign-level audience inventory
  • Moved Results into a clearer lead-read hierarchy: manager readiness and next evidence now lead the command panel, while spend, observed outcome, cost/result, return, proof, filters, Weekly Brief, and detailed evidence remain available without equal-card noise
  • Reweighted Insights and Settings -> Billing with the same Paper-led app hierarchy contract: one primary read first, compact support rails next, and folded detail drawers without removing operator safety wording
  • Continued the Paper-led UI/UX pass with Playwright-ready verification while keeping Results and Billing wording meaningful instead of compressing operator context
  • Fixed Campaigns inventory money labels so Cost and CPA follow the connected ad account currency, including ILS accounts, instead of falling back to USD
  • Hardened Campaign Editor exact replacement controls so Google language targeting and ad schedules stay Not editable yet until the current criteria and removable criterion IDs are synced
  • Adjusted public product screenshot framing so Inbox, Campaign Editor, and Campaign Builder keep more usable real-app context on desktop and mobile instead of feeling over-zoomed
  • Started the next Paper-driven app UI/UX pass: Settings area labels are shorter, the Settings sidebar is tighter, Results evidence wording is lighter, and the Weekly Brand Performance Brief first-read label is now the compact Weekly Brief
  • Added a Paper-backed Campaign Editor mobile density pass so supported setup rows scan tighter on phones, current-only URL and audience evidence summarizes before expansion, and repeated default helper copy no longer dominates the first read
  • Rebalanced public-site product visuals so Inbox, Campaign Editor, and Campaign Builder show enough real-app context to be useful on mobile while still hiding browser scrollbars
  • Regenerated public-site product visuals from the live app with scrollbars hidden and current navigation visible, so the product reads as composed evidence instead of raw browser captures
  • Reworked Settings mobile section navigation and Measurement cards from clipped horizontal rails into readable stacked/gridded controls so setup tabs and evidence state no longer feel half-hidden
  • Replaced nested miniature public-site proof scenes with larger real app screenshots for Inbox, Campaign Editor, and Campaign Builder so the product visuals stay readable on desktop and mobile
  • Restored Workspace Admin and Admin as visible authority tabs for eligible users and later moved mobile authority access into the same swipeable top rail as the core operating pages
  • Compressed Campaign Builder's mobile first read again so the page opens with one reviewed-plan promise, two useful actions, a true three-step grid, selected brand, full-width starter choices, and a folded plan contract before deeper setup text
  • Folded Results Weekly Brand Performance Brief email/credit detail behind one compact drawer and folded the Settings mobile operating map behind Open map so proof and topology stay available without crowding the first phone read
  • Tightened public Pricing, About, Security, and Contact mobile layouts with smaller hero rhythm, compact content cards, horizontal pricing notes, shorter card spacing, and less repeated explanatory weight on phone widths

May 2026 Campaign Editor and commercial readiness

  • Converted the Settings General mobile topology and recommendation-delivery map into horizontal rails so Workspace Readiness reaches the first phone read without losing source, account, brand, or delivery links
  • Reduced Results and Insights first-read noise again: Results now puts proof, filters, and return rules behind one Evidence and filters hub after the manager brief, while Insights starts with Performance Trends before opening source coverage
  • Compressed authenticated app navigation so daily operating tabs stay calm on small screens, with secondary and authority pages kept reachable from the same swipeable top rail for eligible users
  • Reduced public homepage noise after mobile review: simplified primary navigation, replaced the dense mobile architecture canvas with a compact operating path, removed repeated mobile proof chips, and hid redundant Why/How blocks on phone widths
  • Reworked the mobile homepage into a tighter first-class public-site flow: shorter hero copy, a compact Signal -> REC # -> Approval -> Learning strip, mobile-only product summaries, larger product visuals, and less repeated paragraph weight on phone widths
  • Replaced the dense operating-proof screenshot collage with a readable native proof map that explains signal, REC #, approval, and learning without asking visitors to inspect tiny nested app captures
  • Added readable proof captions under screenshot-heavy homepage visuals so Product Preview, Campaign Editor, and Campaign Builder teach their safety contract even when screenshots are viewed on mobile
  • Clarified public access copy for controlled beta: visitors request a workspace first, while approved workspaces subscribe or buy credits from inside OobiMax Billing
  • Refreshed the public homepage Product Preview and Campaign Builder visuals with real-product decision-layer scenes while preserving the approved hero and architecture map
  • Refreshed the public homepage Campaign Editor visual with a dedicated real-product scene from current Google and Meta editor captures, replacing the generic operating-console image so the section now shows the actual current-value -> proposed-change -> review -> approval -> recheck workflow
  • Finished a beta-readiness surface polish pass: Campaign Editor now states the single current-value -> proposed-change -> review -> approval -> apply -> recheck contract, Workspace Admin clarifies that it owns authority and policy evidence only, Settings -> Brands labels the full import as Full Brand Profile CSV, and Results/Insights keep proof folded behind manager reads
  • Started the OobiMax design-system level-up: shared screen operating contracts now appear across the app, the title/scope/navigation/contract shell now reads as one command deck, command panels are tighter, and dense Campaign Editor, Campaign Builder, Results, Insights, Settings, and admin surfaces use a more consistent premium operator grammar
  • Polished Campaign Builder's first-read form so required inputs, Oobi-drafted work, and the safety boundary appear as compact contract cards, optional Oobi-filled fields stack cleanly on mobile, and empty saved-plan status appears once instead of repeating below the form
  • Renamed the Results manager-brief `Return call` label to `Return readiness` so the manager read describes ROI/ROAS evidence state instead of sounding like a phone action
  • Polished Campaign Editor navigation copy so the return action reads `Back to Campaigns` while preserving the operator's original inventory scope
  • Clarified Workspace Admin boundary copy so the context chip says customer workspace only instead of implying system-admin access
  • Tightened Insights mobile first-read cards so movement, risks, actions, and learning stack as readable operator statements instead of cramped two-column tiles
  • Folded Settings Billing cost catalogs, workspace-scale factors, free-use notes, and the usage ledger behind deliberate detail drawers so the page opens with wallet state and safety boundary first
  • Folded Campaign Editor synced object layers behind layer drawers so campaign setup stays visible while ad groups, page links, ad sets, and creative detail open only when needed
  • Converted the Settings operating map on phone widths from a clipped fixed architecture canvas into a clean vertical setup chain, preserving the same source, account, brand, and delivery links without mobile horizontal scrolling
  • Tightened mobile command-panel actions into a responsive button grid so short secondary actions no longer consume separate full-width rows before the real work begins
  • Compressed the mobile operating-contract strip into a one-row rail so every main page still states its scope, safety boundary, and proof model without delaying the first useful work area
  • Restored the Results mobile summary to a compact two-column metric grid while keeping Insights evidence cards stacked for readability
  • Folded the Campaign Builder plan-contract explainer behind an optional disclosure and removed repeated Campaign Builder labels so operators reach the actual planning inputs faster
  • Compressed the Campaign Builder page handoff so the top-level planner no longer repeats its intro, Canva status sits beside the selected brand, and the essentials form starts with a compact no-launch/no-spend boundary
  • Compressed the Results mobile first read into manager-readiness, proof-summary, and weekly-brief evidence rails so mobile users can scan business proof without a long card stack
  • Tightened Settings -> General on phones so the setup-flow explainer and trust chips become compact rails while the workspace operating map stays readable as a vertical setup chain
  • Tightened the shared mobile command deck so page title, scope, navigation, and operating-contract rails take less first-viewport space before the real workspace begins
  • Compressed the Campaign Builder mobile planning steps into a horizontal rail so brand and goal selection reaches the first viewport sooner without losing the reviewed-plan sequence
  • Compressed Settings mobile summary metrics and Settings Areas into rails so General and Billing reach their actual workspace content sooner without losing setup navigation
  • Compressed Settings General's operating-map header into a compact Workspace -> Sources -> Accounts -> Brands -> Recommendations -> Delivery chain strip on phones so the topology starts sooner without hiding the setup model
  • Tightened Settings Brands profile editing on phones so Save Profile appears first and secondary reload/delete controls share a compact row before the Brand Profile Interview fields
  • Compressed Settings Measurement's map overview on phones so selected-brand status and review-state chips remain visible while the read-only signal steps become a compact rail
  • Removed the redundant Settings Brands selected-profile header after the Brand Profile editor so profile, add-brand, and import jobs flow without repeated save instructions
  • Compressed Campaign Editor exact-choice helper copy on phones so schedule, language, location, audience, and page-link card selectors keep the no-draft rule without repeating long instruction paragraphs
  • Compressed default Campaign Editor apply-supported helper notes on phones while keeping custom field warnings and support labels visible
  • Tightened Campaign Editor mobile child-layer summaries so page links, ad groups, keywords, and creative layers stay easy to scan before opening
  • Converted Results mobile summary metrics into a compact rail so spend, observed outcomes, cost/result, and return state no longer create a tall first-read block
  • Compressed the shared mobile Settings selector into a smaller control strip so Settings Areas and brand switching remain available without delaying General, Brands, Billing, or Measurement content
  • Compressed the Campaigns mobile scope panel into a compact rail and removed the repeated Quick Read block on phones so campaign inventory reaches the first read sooner
  • Converted Insights mobile first-read cards into a horizontal rail so movement, risk, action, and learning states stay readable while Evidence Coverage reaches the first read sooner
  • Compressed Campaign Builder's mobile selected-brand and Canva status block into a compact brand/status chip so starter choices appear sooner without hiding brand or creative-source state
  • Compressed Home's mobile command summary into side-by-side actions and a horizontal telemetry rail so the priority queue stays obvious while readiness proof starts sooner
  • Compressed Settings section return controls into compact phone pills so Google, Meta, Measurement, Billing, and delivery setup cards start sooner without losing the operating-map return path
  • Compressed Workspace Admin's mobile boundary and status facts into a compact brief grid so Users, Policy, and Audit jobs appear sooner while tenant-scoped authority stays clear
  • Compressed Settings Billing's mobile credits cockpit by removing repeated helper copy and turning included, used, and next-estimate facts into a compact balance rail
  • Compressed Settings Brands and Measurement mobile job rails into smaller two-up action cards so Profile, Create, Import, Map, Evidence, and Match jobs read as deliberate controls instead of clipped panels
  • Compressed Settings Brands and Measurement mobile job cards, status cards, and measurement readiness cards into rails, and folded preview-only Measurement contracts so setup stays cockpit-first instead of reading like a long technical document
  • Folded the Settings Brands read-only Profile Guide behind a deliberate summary so the editable Brand Profile Interview remains the main Brands workspace instead of competing with reference copy
  • Folded Settings Measurement evidence, snapshot-memory, and suggested-match detail behind visible summaries so the blocked read-only consent path stays truthful without opening as a long empty evidence stack
  • Tightened Campaign Builder's selected-brand card so the raw profile key no longer appears in the default page read and Canva status stays compact beside the brand selector
  • Tightened Campaign Builder's starter-choice lane so mobile users see compact campaign idea cards sooner, with the new paused-plan boundary and Campaign Editor handoff still visible
  • Folded Settings Brands setup-readiness detail behind a summary so the selected Brand Profile workspace opens with profile, add-brand, and import work first
  • Compressed Campaign Editor mobile facts, truth, next-action, and approval summaries into horizontal rails so Google and Meta editors keep the same proof model with less stacked phone noise
  • Folded Campaign Editor current-only and not-editable setup rows behind truthful summaries so blocked Google and Meta fields still explain why without dominating the default editor body
  • Compressed Campaign Editor exact choice cards for schedules, languages, locations, and audiences into mobile rails so structured Google and Meta selectors stay exact without becoming tall stacks
  • Folded Settings -> General workspace automation controls behind a rhythm summary so setup, readiness, and delivery controls stay scannable on mobile while automation remains one tap away
  • Folded Settings -> General Weekly Brand Performance Brief email delivery behind an admin summary so the General tab stays setup-first while billing remains cost-only
  • Tightened the Inbox and Results first read: an empty Inbox now shows one deliberate clear-state instead of repeated zero queues, and Results folds Weekly Brand Performance Brief email delivery settings behind an admin drawer
  • Tightened Campaign Editor mobile readability so long real campaign names and dense status facts wrap cleanly without horizontal scrolling or clipped labels
  • Promoted Campaign Editor as the single editing surface for existing Google and Meta campaigns: Campaign Builder creates reviewed paused plans, while existing campaign sync, pause/resume, setup edits, creative edits, targeting edits, approval evidence, apply, and recheck belong in Campaign Editor
  • Expanded Campaign Editor current-value truth so supported rows show collected platform values beside proposed changes, linked recommendations include visible REC identifiers, and unsupported objective, campaign-family, or bid-strategy changes are presented as current-only context instead of fake edit controls
  • Added first structured targeting guardrails for Campaign Editor: Google and Meta country targeting use exact multi-country controls when synced values exist, Meta age targeting uses bounded preset ranges, and no-op or typo-like proposed changes are blocked before a Change Set is saved
  • Moved Google audience editing to exact ad group rows in Campaign Editor, with synced audience-list names plus apply-supported include/exclude add and remove actions after review and approval
  • Expanded Google audience-list inventory sync so current included/excluded audience rows resolve human list names from Google user_list data instead of leaving operators with raw IDs when the account exposes readable names
  • Hardened Google audience pickers so unnamed audience-list IDs stay visible only as current evidence and are not offered as safe add or remove choices until Refresh Intelligence has synced readable list names, while small exact multi-select controls now size to the real option count
  • Added Google campaign language targeting to Campaign Editor with Refresh Intelligence language-criteria sync, current language display, exact multi-select values, Change Review, approval, and apply-supported replacement
  • Promoted Google ad-group age and gender targeting into Campaign Editor with current synced demographic values, exact complete-set selectors, Change Review, approval, and apply-supported Google Ads mutations
  • Added exact Google sitelink controls to Campaign Editor for existing reusable sitelink assets: campaign/ad-group attach and remove now use synced asset/link resources after Change Review and approval, while new sitelink creation stays in recommendation and planning flows until the editor has structured creation fields
  • Expanded Campaign Editor into a full-width editing workspace and rebuilt Google page-link attach/remove choices as readable cards with title, destination URL, and action context, including larger inventories that previously fell back to raw multi-select boxes
  • Expanded exact Campaign Editor pickers so country, language, ad schedule, demographic, and audience-style multi-value fields can render as readable scrollable choice cards with current/available context instead of raw browser multi-select boxes
  • Added progressive folding to Campaign Editor object rows so long ad group, keyword, ad, creative, and audience sections stay readable while each summary still shows current object truth and control count
  • Compacted large Campaign Editor page-link attach/remove pickers behind intentional expandable choice groups so current state stays readable before optional page-link drafting
  • Made Campaign Editor's linked-recommendation area adaptive: real linked recommendations still show visible REC IDs, while campaigns with no linked recommendations keep a compact inline truth note instead of a full empty panel
  • Aligned Campaign Editor's shared Google and Meta layout contracts so Google ad groups, Meta ad sets, creative sections, setup rows, support chips, and exact choice controls use the same responsive editor grammar while platform-specific capability differences stay explicit
  • Folded long Campaign Editor current-value evidence such as attached page links and audience lists into compact summaries with expandable exact synced values, keeping audit precision without turning the editor into a wall of text
  • Replaced remaining Campaign Editor page-link `this level` wording with clear `Attach page link` and `Remove page link` labels, while keeping old saved payloads readable
  • Updated Campaign Editor capability summaries and current-only audience context so Google and Meta structured controls show truthful apply support without making broad audience inventory look like a fake edit target
  • Polished Campaign Editor page-link controls so users see currently attached page links, reusable account page links, readable destinations, and card-style attach/remove choices instead of Google asset/link-resource jargon
  • Hardened Google responsive search ad copy editing in Campaign Editor so headline and description drafts validate exact line counts, uniqueness, and Google character limits before a Change Set can be saved or applied
  • Added paired Meta creative draft guardrails so ad URL, copy variants, and CTA edits must be exact and valid before Campaign Editor saves or applies them
  • Clarified Meta included/excluded custom-audience controls so empty current state is separate from available synced choices, and blocked saving the same Meta custom audience as both included and excluded on one ad set
  • Filtered Meta custom-audience picker choices so an audience currently included is not offered as an available exclusion, and an audience currently excluded is not offered as an available inclusion
  • Hardened Campaign Editor support states so Meta bid strategy, Meta ad-set optimization goal, Google campaign URL options, complex Google location shapes, and Google keyword match type are current-only/not editable until exact structured mutation workflows exist
  • Reworded Google and Meta audience pickers so current values, available choices, add actions, and remove actions are visibly different before an operator saves a Change Set
  • Added Campaign Editor browser-side audience contradiction guards so the same Google audience list or Meta custom audience cannot be selected as both included and excluded in one draft
  • Reworked short exact Campaign Editor pickers so one-item or small Google/Meta audience, schedule, language, gender, and similar choices render as compact checkbox choices instead of raw multi-select boxes
  • Added a Campaign Editor support map that counts editable-after-approval, review-only, not-editable-yet, and current-only fields so Google and Meta pages explain capability differences before the operator starts drafting
  • Clarified Campaign Editor page-link pickers so reusable account page links and currently attached page links are visibly separate, including the reminder that removing a page link from a campaign does not delete the reusable account asset
  • Simplified Results and Insights first reads: Results now groups deeper goal, evidence, campaign, and measurement tables inside one Detailed Evidence hub, while Insights folds supporting trend/risk evidence and evidence coverage behind intentional drawers
  • Compressed Results and Insights proof layers again so Results keeps the manager brief visible while known, missing, Oobi, and measurement evidence opens on demand, and Insights source coverage no longer adds a separate heading block before Performance Trends
  • Compressed Settings mobile section headers so General, Brands, Billing, and Measurement keep the current setup job visible without repeating helper copy above the real controls
  • Clarified Campaign Editor structured choice notes so Google and Meta audience pickers say select nothing or keep current instead of using text-field language like leave blank
  • Normalized Campaign Editor selector helpers so exact choice cards and fallback multi-selects say select nothing for no draft change, and page-link helpers say attach or remove instead of detach
  • Reworked folded Campaign Editor current-only and not-editable setup rows so opened rows show Draft status instead of a misleading Proposed change column
  • Improved Campaign Editor audience choice cards so synced custom-audience and audience-list names stay as the primary label while exact audience IDs move into secondary audit detail
  • Hardened Dodo Payments webhook reconciliation so Standard Webhooks delivery IDs key idempotency, distinct events with reused payment IDs are still applied, and credit-pack quantities add the correct Oobi Credits
  • Hardened Dodo Payments entitlement reconciliation so configured product IDs override metadata, unknown products fail closed, and provider customer or subscription IDs cannot silently move across workspaces
  • Opened controlled beta checkout inside approved workspaces so subscriptions and Oobi Credit Packs can be purchased tenant-aware from Billing while public website CTAs still request beta access
  • Hardened Dodo checkout safety so tenant checkout can use only configured OobiMax Dodo products, carries USD billing currency, and blocks unapproved workspace statuses at the backend route
  • Hardened controlled beta billing management so customer portal sessions share the same approved-workspace gate as checkout and cannot be opened for pending, suspended, deleted, archived, disabled, or rejected workspaces
  • Tightened beta workspace signup so required trust fields, accessible errors, focused controls, and duplicate-submit protection make the request flow feel safer and clearer
  • Tightened Campaign Builder wording so it builds new paused campaign plans and updates saved plans, while existing live or synced campaign edits stay routed to Campaign Editor
  • Aligned Brand Profile editing and CSV/TOML import templates so Website, Budget Context, Best Customer, Priority Markets, Conversion Goals, and Guardrails are first-class fields in Settings -> Brands and downloadable profile templates
  • Hardened Dodo Payments webhook configuration so OobiMax accepts both DODO_PAYMENTS_WEBHOOK_SECRET and Dodo's SDK-style DODO_PAYMENTS_WEBHOOK_KEY without changing existing Render env names
  • Hardened Dodo Payments live readiness so all nine monthly, yearly, and credit-pack product IDs must be present, distinct, and shaped like Dodo product IDs before checkout can be treated as QA-ready, while Free stays internal/app-only
  • Tightened Workspace Admin billing session routes so Dodo checkout and customer portal creation fail closed until provider acceptance, catalog, API, and signed-webhook readiness are all satisfied
  • Hardened Dodo Payments refund and dispute webhooks so refund.succeeded and dispute-open states suspend billing access without changing credits or granting campaign authority
  • Validated the configured live Dodo monthly, yearly, and credit-pack product IDs against the app readiness mapper while keeping API keys and webhook secrets Render-only
  • Moved Weekly Brand Performance Brief email delivery out of Billing and into operational settings, while keeping credit costs and plan brand allowance visible in Billing and Pricing
  • Added Dodo Payments as the active Merchant-of-Record integration path with live product IDs, checkout/session plumbing, customer portal support, signed webhook handling, subscription wallet updates, and credit-pack wallet updates behind live QA gates
  • Upgraded beta workspace signup with required Terms, Privacy Notice, and Security Rules acceptance, support links, Google signup consent enforcement, and a clear boundary that paid plans and credit packs attach to an existing workspace through tenant-aware checkout

May 2026 beta readiness

  • Added Google OAuth source connection with discovered-account mapping
  • Added Meta OAuth source connection with discovered ad account mapping
  • Unified Google and Meta around workspace sources, discovered accounts, and brand platform mappings
  • Separated Refresh Intelligence from explicit Send Recommendations delivery
  • Added Slack and Telegram workspace delivery setup, tests, and customer-facing guides
  • Added an in-app Workspace Readiness snapshot so Home and Settings show the real media setup chain, separate Measurement Signals map, AI advisory state, delivery state, and observed platform setup mix before onboarding larger workspaces
  • Added Measurement Signals visibility for GA4, Search Console, Pixel/CAPI, conversion evidence, and future learning inputs while keeping new Google scopes separate from the verified Google Ads scope
  • Updated Google verification status after Google approved OobiMax data access for the Google Ads API scope
  • Surfaced measurement evidence explanations in Recommendation Control Center, Inbox, Slack, and Telegram for budget and learning-risk recommendations, while keeping tracking hints advisory only
  • Added a manager-facing Results Dashboard by Business Goal and Platform Setup, with spend, observed results, cost per result, return availability, measurement confidence, Oobi impact, explicit missing ROI/ROAS states for Sales value paths, and Return Evidence Priorities for non-ready goal groups
  • Added higher-tier Campaign Builder as the premium planning layer for creative intake, Canva-connected import, QA approval, and review-only campaign plans
  • Polished Campaign Builder campaign-plan editing so saved plans stay visible without silently attaching to new drafts, selected creative stays campaign-specific, and edits happen only after the operator explicitly opens a saved plan
  • Verified Google Search paused campaign creation from Campaign Builder, including paused campaign budget, Search campaign, ad groups, keyword themes, campaign negatives, responsive search ads, campaign inventory visibility, Google EU political advertising declaration gating, and no-spend safety
  • Polished recommendation contracts across Inbox, Slack, Telegram, execution, and learning
  • Refreshed public beta pages and homepage storytelling around the current source/account/brand/recommendation model

May 2026 operator reliability

  • Made Dashboard, Slack, and Telegram approvals route through the same dashboard-canonical decision service
  • Added signed Slack interactive recommendation actions and visual card replacement after approval or rejection
  • Aligned Telegram delivery with the selected dashboard recommendation queue and added retry behavior through Telegram rate limits
  • Added Retry Execution for approved recommendations whose platform execution failed after approval
  • Scoped recommendation execution credentials to the mapped Google or Meta source instead of stale global credentials
  • Added beta readiness diagnostics for delivery parity, campaign taxonomy, execution state, and recommendation quality risks
  • Improved Slack and Telegram recommendation detail for sitelinks, audience updates, budgets, keyword actions, and search-query cleanup
  • Kept measurement evidence parity across Dashboard, Slack, and Telegram delivery previews so external mirrors do not lose safety context
  • Brought Dashboard sitelink optimization detail up to Slack and Telegram clarity with duplicate destination, keep, remove, campaign, and effective-count detail
  • Moved Oobi AI Advisory to a built-in Oobi-managed model so workspaces no longer need to provide provider keys

Trust and control updates

  • Added secure session and cookie hardening
  • Added security headers and public-site no-store HTML controls
  • Added browser-side CSRF hardening for state-changing Dashboard and public contact/subscription requests
  • Added rate limits for sensitive dashboard, webhook, refresh, send, and auth paths
  • Improved audit context for approval decisions across Dashboard, Slack, and Telegram
  • Expanded Privacy and Terms for Google OAuth Limited Use, connected-platform data handling, approval-first execution, beta limitations, and Oobi-managed AI advisory responsibility
  • Replaced generic shield-style homepage trust imagery with product-native recommendation and approval-state visuals

Ongoing work

Updates are based on real usage and feedback.

  • deeper recommendation family audits across all supported campaign structures
  • broader objective, conversion, creative, and setup support
  • clearer onboarding for first-time beta workspaces
  • email recommendation delivery and additional approval channels
  • higher-tier Campaign Builder planning from brand context, reviewed creative, account history, platform data, and operator logic