Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.
Better small screen layouts
We adjusted the layout so the “Show less” button displays correctly on small screens, ensuring a cleaner and more consistent experience.
Richer workflow context
Workflow steps now have access to event IDs and additional context data. This allows you to build smarter workflows that utilize detailed event information.
Fixed: Embedded content sharing
We resolved issues affecting sharing functionality for Photo Frame and Meme Generator components. Your embedded content now shares smoothly as intended.
Clearer navigation buttons
Carousel and vote navigation buttons are now more prominent. We applied consistent styling to improve clarity and user interaction.
Query parameters for embeds
Embed SDK and React Native widgets now support passing query parameters like UTM tags. You can also configure parameter forwarding directly in the Admin Portal embed settings.
Scheduled card visibility
You can now hide cards on a page using scheduling configurations. This gives you control to show or hide content automatically at selected times.
Custom leaderboard ranks
Trivia leaderboards can now display specific ranks, such as 13th or 66th, instead of just the top players. This offers more flexibility for your competitive trivia experiences.
Smarter asset library
The Asset Library now remembers your last folder location, sorting, and view preferences. This helps you pick up exactly where you left off for a smoother workflow.
Random frame display
You can now randomize the display order of frames for each user. This provides a fresh and dynamic experience every time the photo frame is accessed.
Cleaner trivia admin
We reorganized the settings and styling sections in trivia admin screens for better clarity. We also removed drop shadows from various images to clean up the visual interface.
Fixed: Competition entry limits
Entry limit validation now performs more reliably on competitions with high activity.
Fixed: Leaderboard data cloning
Trivia leaderboard data sources now wire up correctly when cloned in the block editor.
Fixed: Entitlement updates
Entitlements now update immediately after you create a new subscription.
Fixed: Workflow cloning
Workflows within cards now update their entities properly when the card is cloned.
Fixed: Hub color palette
Updating the hub color palette from outside Hub Settings no longer overwrites the existing palette.
Fixed: Currency input validation
Currency inputs with trailing zeros now validate and display correctly without inconsistencies.
Precise eligibility filtering
You can now filter participants based on contact properties, subscription status, list membership, or loyalty balance. This allows for much more precise targeting.
Time-based receipt rules
We added time-of-day operators to receipt validation rules. This enables you to apply specific conditions based on exactly when a transaction occurred.
Entry time filtering
Eligibility rules can now include entry date and time filters. This gives you more flexibility for time-specific campaign configurations.
Attachment size warnings
You will now see a warning if your distribution attachments exceed the allowed size limit. This helps prevent failed sends before they happen.
Custom analytics tracking
Admins can now define exactly which contact properties are tracked for frontend analytics. This improves data flexibility and gives you more control over your insights.
Fixed: Swiper text visibility
We adjusted the text color in swiper result answers to ensure better readability across all themes.
Latest Updates
Refreshed illustrations
We have replaced various system images with new illustrations for a updated, refreshed look.
Clearer Photo Frame editor instructions
We improved the instructions within the Photo Frame editor to make setup easier and clearer.
Improved email address readability
Long email addresses in contact lists and views are now truncated. This makes the interface cleaner and easier to read.
Customizable progress bars in Treasure Hunt
You can now override progress bar limits and customize the completion text shown when a user reaches 100%.
Transparent text editor
The rich text editor background is now transparent. This makes it much easier to edit and view white text against your design.
Clearer SMS setup
We clarified the input fields for alphanumeric Twilio SMS senders to reduce confusion during setup.
Bulk content moderation
You can now approve or reject UGC uploads, photo frames, and meme generator submissions in bulk. This speeds up your moderation workflow significantly.
Import validation rules
You can now copy and import receipt validation rules. This saves time when setting up similar validation logic across campaigns.
Simplified poll results
Poll result screens now display in a simplified format when there is only one question involved.
Custom banner colors
Confirmation and Closed message banners now support custom colors to better match your branding.
Fixed: Disqualified entries
Disqualifying a trivia entry now properly removes it from the leaderboard.
Improved grid layouts
The Asset Library and UGC uploads now use a simple grid layout instead of masonry. This makes scanning and selecting files easier.
Fixed: Timeline scrolling
We improved the scrolling experience when you are editing the loyalty timeline.
Fixed: Coupon exports
Viewing and exporting coupon recipients now includes records linked to deleted contacts.
Fixed: Salesforce step labels
We resolved inconsistencies in step labels and improved modal loading states for a smoother Salesforce workflow experience.
Salesforce HTTP data
HTTP request details are now included for transaction journal and Get Object steps. This makes troubleshooting integrations clearer and easier.
Loyalty Timeline for Contact Activity
Contact activity history is now displayed on a timeline, giving clearer visibility into engagement over time.
Fixed: Video Upload Progress Indicator
A loading indicator is now displayed during video uploads, providing clear feedback on upload progress.
Auto-Reject Duplicate Receipts
A new setting automatically rejects duplicate receipts based on merchant name, date/time, and amount, ensuring cleaner data collection.
Fixed: Trivia question reordering issues
Resolved problems where reordering questions after a game started sometimes caused questions to be skipped or shown out of order.
Fixed: Trivia screens not appearing during gameplay
Resolved an issue where newly added screens would not appear during live gameplay.
Fixed: Email editor crash
Resolved a crash that occurred when adding a button to an email outside of a hub context.
Fixed: Turnstile connection
Resolved a crash that occurred when attempting to connect the Turnstile app.
Fixed: Audit log filter
Resolved a crash that occurred when attempting to open the audit log filter.
Fixed: Contact event logs
Resolved a crash that occurred when viewing details for “contact added to list” events in the audit log.
Fixed: Portal stability
We resolved multiple issues that were causing crashes in the admin portal to improve overall stability.
Fixed: Image resolution
Picker result, option, and detail images now display in higher resolution for a clearer visual experience.
Fixed: Insight dashboards
We addressed a crash that occurred when creating insight dashboards to improve reliability.
Fixed: Salesforce transactions
We corrected an issue requiring a currency code and improved point formatting in the Salesforce Transaction Journal workflow step.
Fixed: Tag loading
Tags now load properly to ensure smoother navigation and usage.
Localized built-in text
You can now translate standard text in Memory Challenge and Live Trivia cards into Spanish and Portuguese. This helps you localize experiences for broader audiences.
Quick survey resends
A new action in the survey recipients table lets you quickly resend communications. This helps you boost response rates with less effort.
Advocacy score insights
We added an “Advocacy Score” option to Opinion Scale questions, complete with analytics. This makes it easier to measure brand loyalty and sentiment.
Direct survey links
You can now open and preview surveys directly from the survey table via a new “Link” column. This saves you clicks when managing surveys.
Fixed: Prize filter rules
You can now correctly select “is set” and “is not set” options in prize filter rules.
Fixed: Text colors
Text color settings now apply correctly to lobby, scratch, and result screens.
Fixed: Game layouts
Layouts for scratch and watch & win are now consistent between the admin editor and the front-end view.
Fixed: HTML card ratios
Aspect ratio settings now apply correctly in both the front-end and editor preview for HTML cards.
Fixed: Hub validation
Hubs now check the site cache first when validating existence, improving accuracy and performance.
Fixed: Survey triggers
Survey workflow trigger filters now work as expected to ensure your automation runs correctly.
Fixed: Table pagination
Table pagination controls in the portal are now properly aligned.
Fixed: Empty state images
We corrected broken images that were appearing on empty state screens in the portal.
Fixed: Thuzi environment settings
The Thuzi workflow environment selection no longer reverts from production to staging after saving.
Consistent swiper colors
Swiper result screens now inherit modal colors to ensure a consistent design across your card.
Better image management
We fixed drag overlay behavior and enabled moving multiple files at once in the workspace.
Enhanced workspace organization
A new folder structure and select image button make managing your workspace images much easier.
Updated Mailchimp flow
The connection flow now uses the “id” callback page for a smoother integration process.
Custom badge notifications
You can now customize badge toast notifications to better personalize the user achievement experience.
UGC accent colors
Card shell customization now includes an accent color option, which applies to the UGC upload outline and icon.Restrict email updatesA new setting allows you to prevent users from updating their email addresses in forms.Toggle swiper scoresYou can now toggle the result score display (“You got X out of X”) on or off in Swiper cards.Styled instant win formsExtra data forms within instant win cards can now be styled to match your campaign’s look and feel.Automated workflow cloningWorkflows now automatically clone when you copy cards, surveys, or hubs within the same workspace.AI brand guidelinesYou are now prompted to complete brand guidelines before generating content, ensuring AI outputs match your style.
Major Feature Release
Workspace brand guidelines
You can now define brand guidelines at the workspace level. Kai uses this information to generate content that better reflects your brand’s identity.
Rich text profile descriptions
The profile description field now supports HTML editing. This allows for rich formatting like bold text, font sizing, and hyperlinks.
Default site timezones
You can now define a default timezone for your site. This supports more accurate timing across all your features.
API domain security
You can now set which domains are permitted to access the new public API for Photo Frame and Meme Generator content.
Timezone aware countdowns
Countdown timers can now be set to specific timezones, ensuring accurate timing for users in different regions.
Precise competition closures
Competition end times can now be set using specific timezones, giving you precise control over campaign deadlines.
Loyalty toast notifications
Loyalty campaigns can now trigger on-screen toast notifications. This gives users real-time feedback when they complete loyalty actions.
Loyalty tier gating
You can now restrict access to specific data capture forms based on a user’s loyalty tier.
Points as prizes
You can now award loyalty points directly as a prize outcome within the card builder.
Public UGC API
You can now retrieve approved user-generated Photo Frame and Meme Generator items using a public API.
Cleaner card UI
You can now choose to hide the gameplay status indicator from cards for a cleaner, less cluttered interface.
Enhance text with AI
You can now use the Enhance Text feature to improve content in HTML and email fields, directly inside the editor.
Shuffle swiper options
Swiper now supports randomly shuffling the order of options to keep each play-through fresh.
Visual tag chips
Tag-related workflow steps now show visible chips. This provides better clarity and makes editing easier.
Predictor slider suffixes
You can now add unit suffixes to predictor slider questions to provide clearer context for user input.
New opinion scale field
A new Opinion Scale field is now available, letting users give feedback using a customizable, pre-defined scale.
Coupon error feedback
Users now get clear error messaging if they enter an invalid shared barcode.
Clearer code uploads
We improved the language in the upload modal to better explain the expected column headers.
Invalid variable alerts
Invalid variables are now highlighted with clear visual indicators in the email editor.
Fixed: Precise search
Search now treats full queries as a single term. This improves result accuracy and better matches your expectations.
Fixed: Quiz capture warnings
A warning now appears if no quiz results are linked to data capture steps to prevent lost data.
Fixed: Avatar selection
The selected avatar now uses the drawer text color, making it easier to see which option is active.
Fixed: Analytics formatting
We resolved issues where some funnel analytics numbers were not formatting correctly.
Fixed: Cloned data sources
You can now edit or delete data sources from cloned screens with data feeds as expected.
Fixed: Workflow previews
Workflow steps with long, unbroken text (like URLs) now wrap correctly in the preview pane.
Fixed: Radio button colors
Radio button colors now render correctly across all theme combinations.
Fixed: Text area resizing
Text input fields with multiple lines now expand automatically as users type.
Kai access button
The Kai button is now more prominently placed in the main portal header for easier access.
Kai now for everyone
Kai, your AI assistant for card building and creative generation, is now live for all customers across the platform.
Fixed: Entry condition text
Hub entry condition descriptions now update immediately as expected.
Fixed: Email validation
Forms now correctly validate email addresses that use numeric domains.
Fixed: Narrowcast scrollbars
We removed unnecessary scrollbars that were appearing on some narrowcast device displays.
Fixed: Profile icons
We fixed an issue where duplicate profile icons would appear in the portal editor.
Fixed: Coupon workflow scope
Workflow steps for distributing coupons now correctly follow their assigned hub context.
Fixed: Form text alignment
Text alignment settings are now properly applied to HTML fields in Forms.
Subscription event variables
Workflow and event variables now include a contact’s subscription settings, allowing for more targeted communications.
Richer prize data
Workflow events for PrizeAwarded now include more detailed prize data for use in downstream logic or integrations.
Fixed: Transparent QR codes
QR codes with transparent backgrounds now render correctly across all browsers and devices.
Fixed: Meme test images
Custom images now display correctly during testing, replacing the placeholder images.
Fixed: Portal page load
We fixed a bug that caused card pages to fail when opening in the portal.
Fixed: Spin to Win styling
Spin to Win cards now apply your configured styling settings correctly.
Fixed: Spin to Win cloning
Cloned Spin to Win cards now retain their settings when copied to another hub.
Fixed: Embedded layouts
We removed excess spacing on embedded card covers to ensure a tighter, cleaner layout.
Fixed: Contact merging
Merging contacts by email now correctly retains all associated data, including orphaned fields.
Fixed: Hovercard scrolling
Hovercards with long lists of loyalty sources now scroll properly within the view.
⌘I
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Komo Knowledge Base","description":"Your complete guide to building engaging digital experiences with Komo Engagement Engine","colors":{"primary":"#485AA2","light":"#F8FAFC","dark":"#6072B8"},"logo":{"light":"https://mintcdn.com/komotechnologies/hOGlJdRCRzddzv3v/images/Komo_symbol.png?fit=max\u0026auto=format\u0026n=hOGlJdRCRzddzv3v\u0026q=85\u0026s=8be9c5fa3564a8968edb8328aa4b04cd","dark":"https://mintcdn.com/komotechnologies/hOGlJdRCRzddzv3v/images/Komo_symbol.png?fit=max\u0026auto=format\u0026n=hOGlJdRCRzddzv3v\u0026q=85\u0026s=8be9c5fa3564a8968edb8328aa4b04cd"},"favicon":"https://mintcdn.com/komotechnologies/hOGlJdRCRzddzv3v/images/Komo_symbol.png?fit=max\u0026auto=format\u0026n=hOGlJdRCRzddzv3v\u0026q=85\u0026s=8be9c5fa3564a8968edb8328aa4b04cd","background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://app.us1.komo.cloud/portal/auth/login","label":"Platform (US)"},{"href":"https://app.au1.komo.cloud/portal/auth/login","label":"Platform (AU)"}],"primary":{"type":"button","label":"Get Started","href":"https://app.komo.tech/auth/signup"}},"footer":{"socials":{"x":"https://x.com/komo_tech","linkedin":"https://www.linkedin.com/company/choosekomo"},"links":[{"header":"Overview","items":[{"label":"Engagement Engine","href":"https://www.komo.tech/engagement-engine"},{"label":"Engagement Maturity Model","href":"https://www.komo.tech/engagement-maturity-model"}]},{"header":"Company","items":[{"label":"About Us","href":"https://www.komo.tech/about"},{"label":"Careers","href":"https://www.komo.tech/careers"},{"label":"Careers","href":"https://www.komo.tech/press"},{"label":"Pricing","href":"https://www.komo.tech/pricing"}]},{"header":" ","items":[{"label":"FAQs","href":"https://www.komo.tech/faqs"},{"label":"Contact Us","href":"https://www.komo.tech/contact-us"},{"label":"Subscribe to Newsletter","href":"https://www.komo.tech/newsletter-sign-up"}]}]},"seo":{"metatags":{"canonical":"https://knowledge.komo.tech"}},"fonts":{"family":"Poppins"},"integrations":{"ga4":{"measurementId":"G-DPZD6B05RW"},"telemetry":{"enabled":false}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you're looking for doesn't exist in our knowledge base."}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"komotechnologies","hasAudioNarration":false,"actualSubdomain":"komotechnologies","customDomains":["knowledge.komo.tech"],"gitSource":{"type":"github","owner":"komo-tech","repo":"komo-knowledge","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af584de04140d5ce9d5ebdb","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"Knowledge Base","count":139},{"language":"default","tag":"Content","count":66},{"language":"default","tag":"Getting Started","count":34},{"language":"default","tag":"Games","count":21},{"language":"default","tag":"Building Your First Hub","count":17},{"language":"default","tag":"Embeds","count":16},{"language":"default","tag":"Features","count":16},{"language":"default","tag":"Changelog","count":15},{"language":"default","tag":"CRM","count":12},{"language":"default","tag":"Media","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"changelog/2025-november","slug":"/changelog/2025-november","pageMetadata":{"title":"November 2025","description":"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.","rss":"true","href":"/changelog/2025-november"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Update}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Update)_missingMdxReference(`Update`,true);return _jsxs(_Fragment,{children:[_jsxs(Update,{label:`November 11, 2025`,id:`november-11%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`better-small-screen-layouts`,children:_jsx(_components.strong,{children:`Better small screen layouts`})}),_jsx(_components.p,{children:`We adjusted the layout so the “Show less” button displays correctly on small screens, ensuring a cleaner and more consistent experience.`})]}),`\n`,_jsxs(Update,{label:`November 4, 2025`,id:`november-4%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`richer-workflow-context`,children:_jsx(_components.strong,{children:`Richer workflow context`})}),_jsx(_components.p,{children:`Workflow steps now have access to event IDs and additional context data. This allows you to build smarter workflows that utilize detailed event information.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-embedded-content-sharing`,children:_jsx(_components.strong,{children:`Fixed: Embedded content sharing`})}),_jsx(_components.p,{children:`We resolved issues affecting sharing functionality for Photo Frame and Meme Generator components. Your embedded content now shares smoothly as intended.`})]}),`\n`,_jsxs(Update,{label:`October 30, 2025`,id:`october-30%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`clearer-navigation-buttons`,children:_jsx(_components.strong,{children:`Clearer navigation buttons`})}),_jsx(_components.p,{children:`Carousel and vote navigation buttons are now more prominent. We applied consistent styling to improve clarity and user interaction.`})]}),`\n`,_jsxs(Update,{label:`October 21, 2025`,id:`october-21%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`query-parameters-for-embeds`,children:_jsx(_components.strong,{children:`Query parameters for embeds`})}),_jsx(_components.p,{children:`Embed SDK and React Native widgets now support passing query parameters like UTM tags. You can also configure parameter forwarding directly in the Admin Portal embed settings.`}),_jsx(Heading,{level:`3`,id:`scheduled-card-visibility`,children:_jsx(_components.strong,{children:`Scheduled card visibility`})}),_jsx(_components.p,{children:`You can now hide cards on a page using scheduling configurations. This gives you control to show or hide content automatically at selected times.`}),_jsx(Heading,{level:`3`,id:`custom-leaderboard-ranks`,children:_jsx(_components.strong,{children:`Custom leaderboard ranks`})}),_jsx(_components.p,{children:`Trivia leaderboards can now display specific ranks, such as 13th or 66th, instead of just the top players. This offers more flexibility for your competitive trivia experiences.`}),_jsx(Heading,{level:`3`,id:`smarter-asset-library`,children:_jsx(_components.strong,{children:`Smarter asset library`})}),_jsx(_components.p,{children:`The Asset Library now remembers your last folder location, sorting, and view preferences. This helps you pick up exactly where you left off for a smoother workflow.`}),_jsx(Heading,{level:`3`,id:`random-frame-display`,children:_jsx(_components.strong,{children:`Random frame display`})}),_jsx(_components.p,{children:`You can now randomize the display order of frames for each user. This provides a fresh and dynamic experience every time the photo frame is accessed.`}),_jsx(Heading,{level:`3`,id:`cleaner-trivia-admin`,children:_jsx(_components.strong,{children:`Cleaner trivia admin`})}),_jsx(_components.p,{children:`We reorganized the settings and styling sections in trivia admin screens for better clarity. We also removed drop shadows from various images to clean up the visual interface.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-competition-entry-limits`,children:_jsx(_components.strong,{children:`Fixed: Competition entry limits`})}),_jsx(_components.p,{children:`Entry limit validation now performs more reliably on competitions with high activity.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-leaderboard-data-cloning`,children:_jsx(_components.strong,{children:`Fixed: Leaderboard data cloning`})}),_jsx(_components.p,{children:`Trivia leaderboard data sources now wire up correctly when cloned in the block editor.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-entitlement-updates`,children:_jsx(_components.strong,{children:`Fixed: Entitlement updates`})}),_jsx(_components.p,{children:`Entitlements now update immediately after you create a new subscription.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-workflow-cloning`,children:_jsx(_components.strong,{children:`Fixed: Workflow cloning`})}),_jsx(_components.p,{children:`Workflows within cards now update their entities properly when the card is cloned.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-hub-color-palette`,children:_jsx(_components.strong,{children:`Fixed: Hub color palette`})}),_jsx(_components.p,{children:`Updating the hub color palette from outside Hub Settings no longer overwrites the existing palette.`})]}),`\n`,_jsxs(Update,{label:`October 8, 2025`,id:`october-8%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`fixed%3A-currency-input-validation`,children:_jsx(_components.strong,{children:`Fixed: Currency input validation`})}),_jsx(_components.p,{children:`Currency inputs with trailing zeros now validate and display correctly without inconsistencies.`}),_jsx(Heading,{level:`3`,id:`precise-eligibility-filtering`,children:_jsx(_components.strong,{children:`Precise eligibility filtering`})}),_jsx(_components.p,{children:`You can now filter participants based on contact properties, subscription status, list membership, or loyalty balance. This allows for much more precise targeting.`}),_jsx(Heading,{level:`3`,id:`time-based-receipt-rules`,children:_jsx(_components.strong,{children:`Time-based receipt rules`})}),_jsx(_components.p,{children:`We added time-of-day operators to receipt validation rules. This enables you to apply specific conditions based on exactly when a transaction occurred.`}),_jsx(Heading,{level:`3`,id:`entry-time-filtering`,children:_jsx(_components.strong,{children:`Entry time filtering`})}),_jsx(_components.p,{children:`Eligibility rules can now include entry date and time filters. This gives you more flexibility for time-specific campaign configurations.`}),_jsx(Heading,{level:`3`,id:`attachment-size-warnings`,children:_jsx(_components.strong,{children:`Attachment size warnings`})}),_jsx(_components.p,{children:`You will now see a warning if your distribution attachments exceed the allowed size limit. This helps prevent failed sends before they happen.`}),_jsx(Heading,{level:`3`,id:`custom-analytics-tracking`,children:_jsx(_components.strong,{children:`Custom analytics tracking`})}),_jsx(_components.p,{children:`Admins can now define exactly which contact properties are tracked for frontend analytics. This improves data flexibility and gives you more control over your insights.`})]}),`\n`,_jsxs(Update,{label:`October 1, 2025`,id:`october-1%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`fixed%3A-swiper-text-visibility`,children:_jsx(_components.strong,{children:`Fixed: Swiper text visibility`})}),_jsx(_components.p,{children:`We adjusted the text color in swiper result answers to ensure better readability across all themes.`})]}),`\n`,_jsxs(Update,{label:`September 26, 2025`,description:`Latest Updates`,id:`september-26%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`refreshed-illustrations`,children:_jsx(_components.strong,{children:`Refreshed illustrations`})}),_jsx(_components.p,{children:`We have replaced various system images with new illustrations for a updated, refreshed look.`}),_jsx(Heading,{level:`3`,id:`clearer-photo-frame-editor-instructions`,children:_jsx(_components.strong,{children:`Clearer Photo Frame editor instructions`})}),_jsx(_components.p,{children:`We improved the instructions within the Photo Frame editor to make setup easier and clearer.`}),_jsx(Heading,{level:`3`,id:`improved-email-address-readability`,children:_jsx(_components.strong,{children:`Improved email address readability`})}),_jsx(_components.p,{children:`Long email addresses in contact lists and views are now truncated. This makes the interface cleaner and easier to read.`}),_jsx(Heading,{level:`3`,id:`customizable-progress-bars-in-treasure-hunt`,children:_jsx(_components.strong,{children:`Customizable progress bars in Treasure Hunt`})}),_jsx(_components.p,{children:`You can now override progress bar limits and customize the completion text shown when a user reaches 100%.`}),_jsx(Heading,{level:`3`,id:`transparent-text-editor`,children:_jsx(_components.strong,{children:`Transparent text editor`})}),_jsx(_components.p,{children:`The rich text editor background is now transparent. This makes it much easier to edit and view white text against your design.`}),_jsx(Heading,{level:`3`,id:`clearer-sms-setup`,children:_jsx(_components.strong,{children:`Clearer SMS setup`})}),_jsx(_components.p,{children:`We clarified the input fields for alphanumeric Twilio SMS senders to reduce confusion during setup.`}),_jsx(Heading,{level:`3`,id:`bulk-content-moderation`,children:_jsx(_components.strong,{children:`Bulk content moderation`})}),_jsx(_components.p,{children:`You can now approve or reject UGC uploads, photo frames, and meme generator submissions in bulk. This speeds up your moderation workflow significantly.`}),_jsx(Heading,{level:`3`,id:`import-validation-rules`,children:_jsx(_components.strong,{children:`Import validation rules`})}),_jsx(_components.p,{children:`You can now copy and import receipt validation rules. This saves time when setting up similar validation logic across campaigns.`}),_jsx(Heading,{level:`3`,id:`simplified-poll-results`,children:_jsx(_components.strong,{children:`Simplified poll results`})}),_jsx(_components.p,{children:`Poll result screens now display in a simplified format when there is only one question involved.`}),_jsx(Heading,{level:`3`,id:`custom-banner-colors`,children:_jsx(_components.strong,{children:`Custom banner colors`})}),_jsx(_components.p,{children:`Confirmation and Closed message banners now support custom colors to better match your branding.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-disqualified-entries`,children:_jsx(_components.strong,{children:`Fixed: Disqualified entries`})}),_jsx(_components.p,{children:`Disqualifying a trivia entry now properly removes it from the leaderboard.`}),_jsx(Heading,{level:`3`,id:`improved-grid-layouts`,children:_jsx(_components.strong,{children:`Improved grid layouts`})}),_jsx(_components.p,{children:`The Asset Library and UGC uploads now use a simple grid layout instead of masonry. This makes scanning and selecting files easier.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-timeline-scrolling`,children:_jsx(_components.strong,{children:`Fixed: Timeline scrolling`})}),_jsx(_components.p,{children:`We improved the scrolling experience when you are editing the loyalty timeline.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-coupon-exports`,children:_jsx(_components.strong,{children:`Fixed: Coupon exports`})}),_jsx(_components.p,{children:`Viewing and exporting coupon recipients now includes records linked to deleted contacts.`})]}),`\n`,_jsxs(Update,{label:`September 11, 2025`,id:`september-11%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`fixed%3A-salesforce-step-labels`,children:_jsx(_components.strong,{children:`Fixed: Salesforce step labels`})}),_jsx(_components.p,{children:`We resolved inconsistencies in step labels and improved modal loading states for a smoother Salesforce workflow experience.`}),_jsx(Heading,{level:`3`,id:`salesforce-http-data`,children:_jsx(_components.strong,{children:`Salesforce HTTP data`})}),_jsx(_components.p,{children:`HTTP request details are now included for transaction journal and Get Object steps. This makes troubleshooting integrations clearer and easier.`})]}),`\n`,_jsxs(Update,{label:`September 9, 2025`,id:`september-9%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`loyalty-timeline-for-contact-activity`,children:`Loyalty Timeline for Contact Activity`}),_jsx(_components.p,{children:`Contact activity history is now displayed on a timeline, giving clearer visibility into engagement over time.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-video-upload-progress-indicator`,children:`Fixed: Video Upload Progress Indicator`}),_jsx(_components.p,{children:`A loading indicator is now displayed during video uploads, providing clear feedback on upload progress.`}),_jsx(Heading,{level:`3`,id:`auto-reject-duplicate-receipts`,children:`Auto-Reject Duplicate Receipts`}),_jsx(_components.p,{children:`A new setting automatically rejects duplicate receipts based on merchant name, date/time, and amount, ensuring cleaner data collection.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-trivia-question-reordering-issues`,children:`Fixed: Trivia question reordering issues`}),_jsx(_components.p,{children:`Resolved problems where reordering questions after a game started sometimes caused questions to be skipped or shown out of order.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-trivia-screens-not-appearing-during-gameplay`,children:`Fixed: Trivia screens not appearing during gameplay`}),_jsx(_components.p,{children:`Resolved an issue where newly added screens would not appear during live gameplay.`})]}),`\n`,_jsxs(Update,{label:`September 3, 2025`,id:`september-3%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`fixed%3A-email-editor-crash`,children:_jsx(_components.strong,{children:`Fixed: Email editor crash`})}),_jsx(_components.p,{children:`Resolved a crash that occurred when adding a button to an email outside of a hub context.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-turnstile-connection`,children:_jsx(_components.strong,{children:`Fixed: Turnstile connection`})}),_jsx(_components.p,{children:`Resolved a crash that occurred when attempting to connect the Turnstile app.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-audit-log-filter`,children:_jsx(_components.strong,{children:`Fixed: Audit log filter`})}),_jsx(_components.p,{children:`Resolved a crash that occurred when attempting to open the audit log filter.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-contact-event-logs`,children:_jsx(_components.strong,{children:`Fixed: Contact event logs`})}),_jsx(_components.p,{children:`Resolved a crash that occurred when viewing details for “contact added to list” events in the audit log.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-portal-stability`,children:_jsx(_components.strong,{children:`Fixed: Portal stability`})}),_jsx(_components.p,{children:`We resolved multiple issues that were causing crashes in the admin portal to improve overall stability.`})]}),`\n`,_jsxs(Update,{label:`September 1, 2025`,id:`september-1%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`fixed%3A-image-resolution`,children:_jsx(_components.strong,{children:`Fixed: Image resolution`})}),_jsx(_components.p,{children:`Picker result, option, and detail images now display in higher resolution for a clearer visual experience.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-insight-dashboards`,children:_jsx(_components.strong,{children:`Fixed: Insight dashboards`})}),_jsx(_components.p,{children:`We addressed a crash that occurred when creating insight dashboards to improve reliability.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-salesforce-transactions`,children:_jsx(_components.strong,{children:`Fixed: Salesforce transactions`})}),_jsx(_components.p,{children:`We corrected an issue requiring a currency code and improved point formatting in the Salesforce Transaction Journal workflow step.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-tag-loading`,children:_jsx(_components.strong,{children:`Fixed: Tag loading`})}),_jsx(_components.p,{children:`Tags now load properly to ensure smoother navigation and usage.`})]}),`\n`,_jsxs(Update,{label:`August 29, 2025`,id:`august-29%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`localized-built-in-text`,children:_jsx(_components.strong,{children:`Localized built-in text`})}),_jsx(_components.p,{children:`You can now translate standard text in Memory Challenge and Live Trivia cards into Spanish and Portuguese. This helps you localize experiences for broader audiences.`}),_jsx(Heading,{level:`3`,id:`quick-survey-resends`,children:_jsx(_components.strong,{children:`Quick survey resends`})}),_jsx(_components.p,{children:`A new action in the survey recipients table lets you quickly resend communications. This helps you boost response rates with less effort.`}),_jsx(Heading,{level:`3`,id:`advocacy-score-insights`,children:_jsx(_components.strong,{children:`Advocacy score insights`})}),_jsx(_components.p,{children:`We added an “Advocacy Score” option to Opinion Scale questions, complete with analytics. This makes it easier to measure brand loyalty and sentiment.`}),_jsx(Heading,{level:`3`,id:`direct-survey-links`,children:_jsx(_components.strong,{children:`Direct survey links`})}),_jsx(_components.p,{children:`You can now open and preview surveys directly from the survey table via a new “Link” column. This saves you clicks when managing surveys.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-prize-filter-rules`,children:_jsx(_components.strong,{children:`Fixed: Prize filter rules`})}),_jsx(_components.p,{children:`You can now correctly select “is set” and “is not set” options in prize filter rules.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-text-colors`,children:_jsx(_components.strong,{children:`Fixed: Text colors`})}),_jsx(_components.p,{children:`Text color settings now apply correctly to lobby, scratch, and result screens.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-game-layouts`,children:_jsx(_components.strong,{children:`Fixed: Game layouts`})}),_jsx(_components.p,{children:`Layouts for scratch and watch \u0026 win are now consistent between the admin editor and the front-end view.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-html-card-ratios`,children:_jsx(_components.strong,{children:`Fixed: HTML card ratios`})}),_jsx(_components.p,{children:`Aspect ratio settings now apply correctly in both the front-end and editor preview for HTML cards.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-hub-validation`,children:_jsx(_components.strong,{children:`Fixed: Hub validation`})}),_jsx(_components.p,{children:`Hubs now check the site cache first when validating existence, improving accuracy and performance.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-survey-triggers`,children:_jsx(_components.strong,{children:`Fixed: Survey triggers`})}),_jsx(_components.p,{children:`Survey workflow trigger filters now work as expected to ensure your automation runs correctly.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-table-pagination`,children:_jsx(_components.strong,{children:`Fixed: Table pagination`})}),_jsx(_components.p,{children:`Table pagination controls in the portal are now properly aligned.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-empty-state-images`,children:_jsx(_components.strong,{children:`Fixed: Empty state images`})}),_jsx(_components.p,{children:`We corrected broken images that were appearing on empty state screens in the portal.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-thuzi-environment-settings`,children:_jsx(_components.strong,{children:`Fixed: Thuzi environment settings`})}),_jsx(_components.p,{children:`The Thuzi workflow environment selection no longer reverts from production to staging after saving.`}),_jsx(Heading,{level:`3`,id:`consistent-swiper-colors`,children:_jsx(_components.strong,{children:`Consistent swiper colors`})}),_jsx(_components.p,{children:`Swiper result screens now inherit modal colors to ensure a consistent design across your card.`}),_jsx(Heading,{level:`3`,id:`better-image-management`,children:_jsx(_components.strong,{children:`Better image management`})}),_jsx(_components.p,{children:`We fixed drag overlay behavior and enabled moving multiple files at once in the workspace.`}),_jsx(Heading,{level:`3`,id:`enhanced-workspace-organization`,children:_jsx(_components.strong,{children:`Enhanced workspace organization`})}),_jsx(_components.p,{children:`A new folder structure and select image button make managing your workspace images much easier.`}),_jsx(Heading,{level:`3`,id:`updated-mailchimp-flow`,children:_jsx(_components.strong,{children:`Updated Mailchimp flow`})}),_jsx(_components.p,{children:`The connection flow now uses the “id” callback page for a smoother integration process.`}),_jsx(Heading,{level:`3`,id:`custom-badge-notifications`,children:_jsx(_components.strong,{children:`Custom badge notifications`})}),_jsx(_components.p,{children:`You can now customize badge toast notifications to better personalize the user achievement experience.`}),_jsx(Heading,{level:`3`,id:`ugc-accent-colors`,children:`UGC accent colors`}),_jsx(_components.p,{children:`Card shell customization now includes an accent color option, which applies to the UGC upload outline and icon.`}),_jsx(_components.p,{children:`Restrict email updates`}),_jsx(_components.p,{children:`A new setting allows you to prevent users from updating their email addresses in forms.`}),_jsx(_components.p,{children:`Toggle swiper scores`}),_jsx(_components.p,{children:`You can now toggle the result score display (“You got X out of X”) on or off in Swiper cards.`}),_jsx(_components.p,{children:`Styled instant win forms`}),_jsx(_components.p,{children:`Extra data forms within instant win cards can now be styled to match your campaign’s look and feel.`}),_jsx(_components.p,{children:`Automated workflow cloning`}),_jsx(_components.p,{children:`Workflows now automatically clone when you copy cards, surveys, or hubs within the same workspace.`}),_jsx(_components.p,{children:`AI brand guidelines`}),_jsx(_components.p,{children:`You are now prompted to complete brand guidelines before generating content, ensuring AI outputs match your style.`})]}),`\n`,_jsxs(Update,{label:`August 5, 2025`,description:`Major Feature Release`,id:`august-5%2C-2025`,children:[_jsx(Heading,{level:`3`,id:`workspace-brand-guidelines`,children:_jsx(_components.strong,{children:`Workspace brand guidelines`})}),_jsx(_components.p,{children:`You can now define brand guidelines at the workspace level. Kai uses this information to generate content that better reflects your brand’s identity.`}),_jsx(Heading,{level:`3`,id:`rich-text-profile-descriptions`,children:_jsx(_components.strong,{children:`Rich text profile descriptions`})}),_jsx(_components.p,{children:`The profile description field now supports HTML editing. This allows for rich formatting like bold text, font sizing, and hyperlinks.`}),_jsx(Heading,{level:`3`,id:`default-site-timezones`,children:_jsx(_components.strong,{children:`Default site timezones`})}),_jsx(_components.p,{children:`You can now define a default timezone for your site. This supports more accurate timing across all your features.`}),_jsx(Heading,{level:`3`,id:`api-domain-security`,children:_jsx(_components.strong,{children:`API domain security`})}),_jsx(_components.p,{children:`You can now set which domains are permitted to access the new public API for Photo Frame and Meme Generator content.`}),_jsx(Heading,{level:`3`,id:`timezone-aware-countdowns`,children:_jsx(_components.strong,{children:`Timezone aware countdowns`})}),_jsx(_components.p,{children:`Countdown timers can now be set to specific timezones, ensuring accurate timing for users in different regions.`}),_jsx(Heading,{level:`3`,id:`precise-competition-closures`,children:_jsx(_components.strong,{children:`Precise competition closures`})}),_jsx(_components.p,{children:`Competition end times can now be set using specific timezones, giving you precise control over campaign deadlines.`}),_jsx(Heading,{level:`3`,id:`loyalty-toast-notifications`,children:_jsx(_components.strong,{children:`Loyalty toast notifications`})}),_jsx(_components.p,{children:`Loyalty campaigns can now trigger on-screen toast notifications. This gives users real-time feedback when they complete loyalty actions.`}),_jsx(Heading,{level:`3`,id:`loyalty-tier-gating`,children:_jsx(_components.strong,{children:`Loyalty tier gating`})}),_jsx(_components.p,{children:`You can now restrict access to specific data capture forms based on a user’s loyalty tier.`}),_jsx(Heading,{level:`3`,id:`points-as-prizes`,children:_jsx(_components.strong,{children:`Points as prizes`})}),_jsx(_components.p,{children:`You can now award loyalty points directly as a prize outcome within the card builder.`}),_jsx(Heading,{level:`3`,id:`public-ugc-api`,children:_jsx(_components.strong,{children:`Public UGC API`})}),_jsx(_components.p,{children:`You can now retrieve approved user-generated Photo Frame and Meme Generator items using a public API.`}),_jsx(Heading,{level:`3`,id:`cleaner-card-ui`,children:_jsx(_components.strong,{children:`Cleaner card UI`})}),_jsx(_components.p,{children:`You can now choose to hide the gameplay status indicator from cards for a cleaner, less cluttered interface.`}),_jsx(Heading,{level:`3`,id:`enhance-text-with-ai`,children:_jsx(_components.strong,{children:`Enhance text with AI`})}),_jsx(_components.p,{children:`You can now use the Enhance Text feature to improve content in HTML and email fields, directly inside the editor.`}),_jsx(Heading,{level:`3`,id:`shuffle-swiper-options`,children:_jsx(_components.strong,{children:`Shuffle swiper options`})}),_jsx(_components.p,{children:`Swiper now supports randomly shuffling the order of options to keep each play-through fresh.`}),_jsx(Heading,{level:`3`,id:`visual-tag-chips`,children:_jsx(_components.strong,{children:`Visual tag chips`})}),_jsx(_components.p,{children:`Tag-related workflow steps now show visible chips. This provides better clarity and makes editing easier.`}),_jsx(Heading,{level:`3`,id:`predictor-slider-suffixes`,children:_jsx(_components.strong,{children:`Predictor slider suffixes`})}),_jsx(_components.p,{children:`You can now add unit suffixes to predictor slider questions to provide clearer context for user input.`}),_jsx(Heading,{level:`3`,id:`new-opinion-scale-field`,children:_jsx(_components.strong,{children:`New opinion scale field`})}),_jsx(_components.p,{children:`A new Opinion Scale field is now available, letting users give feedback using a customizable, pre-defined scale.`}),_jsx(Heading,{level:`3`,id:`coupon-error-feedback`,children:_jsx(_components.strong,{children:`Coupon error feedback`})}),_jsx(_components.p,{children:`Users now get clear error messaging if they enter an invalid shared barcode.`}),_jsx(Heading,{level:`3`,id:`clearer-code-uploads`,children:_jsx(_components.strong,{children:`Clearer code uploads`})}),_jsx(_components.p,{children:`We improved the language in the upload modal to better explain the expected column headers.`}),_jsx(Heading,{level:`3`,id:`invalid-variable-alerts`,children:_jsx(_components.strong,{children:`Invalid variable alerts`})}),_jsx(_components.p,{children:`Invalid variables are now highlighted with clear visual indicators in the email editor.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-precise-search`,children:_jsx(_components.strong,{children:`Fixed: Precise search`})}),_jsx(_components.p,{children:`Search now treats full queries as a single term. This improves result accuracy and better matches your expectations.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-quiz-capture-warnings`,children:_jsx(_components.strong,{children:`Fixed: Quiz capture warnings`})}),_jsx(_components.p,{children:`A warning now appears if no quiz results are linked to data capture steps to prevent lost data.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-avatar-selection`,children:_jsx(_components.strong,{children:`Fixed: Avatar selection`})}),_jsx(_components.p,{children:`The selected avatar now uses the drawer text color, making it easier to see which option is active.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-analytics-formatting`,children:_jsx(_components.strong,{children:`Fixed: Analytics formatting`})}),_jsx(_components.p,{children:`We resolved issues where some funnel analytics numbers were not formatting correctly.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-cloned-data-sources`,children:_jsx(_components.strong,{children:`Fixed: Cloned data sources`})}),_jsx(_components.p,{children:`You can now edit or delete data sources from cloned screens with data feeds as expected.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-workflow-previews`,children:_jsx(_components.strong,{children:`Fixed: Workflow previews`})}),_jsx(_components.p,{children:`Workflow steps with long, unbroken text (like URLs) now wrap correctly in the preview pane.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-radio-button-colors`,children:_jsx(_components.strong,{children:`Fixed: Radio button colors`})}),_jsx(_components.p,{children:`Radio button colors now render correctly across all theme combinations.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-text-area-resizing`,children:_jsx(_components.strong,{children:`Fixed: Text area resizing`})}),_jsx(_components.p,{children:`Text input fields with multiple lines now expand automatically as users type.`}),_jsx(Heading,{level:`3`,id:`kai-access-button`,children:_jsx(_components.strong,{children:`Kai access button`})}),_jsx(_components.p,{children:`The Kai button is now more prominently placed in the main portal header for easier access.`}),_jsx(Heading,{level:`3`,id:`kai-now-for-everyone`,children:_jsx(_components.strong,{children:`Kai now for everyone`})}),_jsx(_components.p,{children:`Kai, your AI assistant for card building and creative generation, is now live for all customers across the platform.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-entry-condition-text`,children:_jsx(_components.strong,{children:`Fixed: Entry condition text`})}),_jsx(_components.p,{children:`Hub entry condition descriptions now update immediately as expected.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-email-validation`,children:_jsx(_components.strong,{children:`Fixed: Email validation`})}),_jsx(_components.p,{children:`Forms now correctly validate email addresses that use numeric domains.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-narrowcast-scrollbars`,children:_jsx(_components.strong,{children:`Fixed: Narrowcast scrollbars`})}),_jsx(_components.p,{children:`We removed unnecessary scrollbars that were appearing on some narrowcast device displays.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-profile-icons`,children:_jsx(_components.strong,{children:`Fixed: Profile icons`})}),_jsx(_components.p,{children:`We fixed an issue where duplicate profile icons would appear in the portal editor.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-coupon-workflow-scope`,children:_jsx(_components.strong,{children:`Fixed: Coupon workflow scope`})}),_jsx(_components.p,{children:`Workflow steps for distributing coupons now correctly follow their assigned hub context.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-form-text-alignment`,children:_jsx(_components.strong,{children:`Fixed: Form text alignment`})}),_jsx(_components.p,{children:`Text alignment settings are now properly applied to HTML fields in Forms.`}),_jsx(Heading,{level:`3`,id:`subscription-event-variables`,children:_jsx(_components.strong,{children:`Subscription event variables`})}),_jsx(_components.p,{children:`Workflow and event variables now include a contact’s subscription settings, allowing for more targeted communications.`}),_jsx(Heading,{level:`3`,id:`richer-prize-data`,children:_jsx(_components.strong,{children:`Richer prize data`})}),_jsx(_components.p,{children:`Workflow events for PrizeAwarded now include more detailed prize data for use in downstream logic or integrations.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-transparent-qr-codes`,children:_jsx(_components.strong,{children:`Fixed: Transparent QR codes`})}),_jsx(_components.p,{children:`QR codes with transparent backgrounds now render correctly across all browsers and devices.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-meme-test-images`,children:_jsx(_components.strong,{children:`Fixed: Meme test images`})}),_jsx(_components.p,{children:`Custom images now display correctly during testing, replacing the placeholder images.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-portal-page-load`,children:_jsx(_components.strong,{children:`Fixed: Portal page load`})}),_jsx(_components.p,{children:`We fixed a bug that caused card pages to fail when opening in the portal.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-spin-to-win-styling`,children:_jsx(_components.strong,{children:`Fixed: Spin to Win styling`})}),_jsx(_components.p,{children:`Spin to Win cards now apply your configured styling settings correctly.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-spin-to-win-cloning`,children:_jsx(_components.strong,{children:`Fixed: Spin to Win cloning`})}),_jsx(_components.p,{children:`Cloned Spin to Win cards now retain their settings when copied to another hub.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-embedded-layouts`,children:_jsx(_components.strong,{children:`Fixed: Embedded layouts`})}),_jsx(_components.p,{children:`We removed excess spacing on embedded card covers to ensure a tighter, cleaner layout.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-contact-merging`,children:_jsx(_components.strong,{children:`Fixed: Contact merging`})}),_jsx(_components.p,{children:`Merging contacts by email now correctly retains all associated data, including orphaned fields.`}),_jsx(Heading,{level:`3`,id:`fixed%3A-hovercard-scrolling`,children:_jsx(_components.strong,{children:`Fixed: Hovercard scrolling`})}),_jsx(_components.p,{children:`Hovercards with long lists of loyalty sources now scroll properly within the view.`})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"November 2025","description":"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.","rss":"true","href":"/changelog/2025-november"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"November 11, 2025","slug":"november-11%2C-2025","depth":1,"children":[]},{"title":"November 4, 2025","slug":"november-4%2C-2025","depth":1,"children":[]},{"title":"October 30, 2025","slug":"october-30%2C-2025","depth":1,"children":[]},{"title":"October 21, 2025","slug":"october-21%2C-2025","depth":1,"children":[]},{"title":"October 8, 2025","slug":"october-8%2C-2025","depth":1,"children":[]},{"title":"October 1, 2025","slug":"october-1%2C-2025","depth":1,"children":[]},{"title":"September 26, 2025","slug":"september-26%2C-2025","depth":1,"children":[]},{"title":"September 11, 2025","slug":"september-11%2C-2025","depth":1,"children":[]},{"title":"September 9, 2025","slug":"september-9%2C-2025","depth":1,"children":[]},{"title":"September 3, 2025","slug":"september-3%2C-2025","depth":1,"children":[]},{"title":"September 1, 2025","slug":"september-1%2C-2025","depth":1,"children":[]},{"title":"August 29, 2025","slug":"august-29%2C-2025","depth":1,"children":[]},{"title":"August 5, 2025","slug":"august-5%2C-2025","depth":1,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"komotechnologies","siteName":"Komo Knowledge Base","title":"November 2025 - Komo Knowledge Base","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-23T10:00:02.725Z","originalFileLocation":"changelog/2025-november.md"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Komo Knowledge Base\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"November 2025 - Komo Knowledge Base\">\u003cmeta data-mint-head property=\"og:description\" content=\"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Komo Knowledge Base\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://knowledge.komo.tech/changelog/2025-november\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://komotechnologies.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=November+2025\u0026amp;description=Stay+informed+about+the+latest+updates%2C+features%2C+and+improvements+to+Komo+Engagement+Engine.\u0026amp;theme=1786409f8d80b456b17441aa\u0026amp;signature=a72aa2e3ad6c26034585432d69a9e2e3d4a1bd18d304ae7f2d14e1e2639d36e9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"November 2025 - Komo Knowledge Base\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://komotechnologies.mintlify.site/_mintlify/api/og/v2?division=Documentation\u0026amp;title=November+2025\u0026amp;description=Stay+informed+about+the+latest+updates%2C+features%2C+and+improvements+to+Komo+Engagement+Engine.\u0026amp;theme=1786409f8d80b456b17441aa\u0026amp;signature=a72aa2e3ad6c26034585432d69a9e2e3d4a1bd18d304ae7f2d14e1e2639d36e9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/komotechnologies/ljnij03Q3e4Pb6F4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Komo Knowledge Base\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#485AA2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://knowledge.komo.tech/changelog/2025-november\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/changelog/2025-november.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://knowledge.komo.tech/#organization\",\"name\":\"Komo Knowledge Base\",\"url\":\"https://knowledge.komo.tech\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/komotechnologies/hOGlJdRCRzddzv3v/images/Komo_symbol.png?fit=max\u0026auto=format\u0026n=hOGlJdRCRzddzv3v\u0026q=85\u0026s=8be9c5fa3564a8968edb8328aa4b04cd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://knowledge.komo.tech#website\",\"name\":\"Komo Knowledge Base\",\"url\":\"https://knowledge.komo.tech\",\"publisher\":{\"@id\":\"https://knowledge.komo.tech/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://knowledge.komo.tech/changelog/2025-november#webpage\",\"url\":\"https://knowledge.komo.tech/changelog/2025-november\",\"name\":\"November 2025\",\"description\":\"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.\",\"dateModified\":\"2026-06-23T10:00:02.725Z\",\"isPartOf\":{\"@id\":\"https://knowledge.komo.tech#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://knowledge.komo.tech/changelog/2025-november#article\",\"headline\":\"November 2025\",\"name\":\"November 2025\",\"description\":\"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.\",\"url\":\"https://knowledge.komo.tech/changelog/2025-november\",\"mainEntityOfPage\":{\"@id\":\"https://knowledge.komo.tech/changelog/2025-november#webpage\"},\"dateModified\":\"2026-06-23T10:00:02.725Z\",\"publisher\":{\"@id\":\"https://knowledge.komo.tech/#organization\"},\"isPartOf\":{\"@id\":\"https://knowledge.komo.tech#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Komo Knowledge Base\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Komo Knowledge Base\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/changelog/2025-november.md","siteName":"Komo Knowledge Base","nav":{"global":null,"anchors":[{"anchor":"Knowledge Base","pages":[{"title":"Knowledge Base","href":"/getting-started/hub-setup/welcome-to-komo-read-me-first"}]},{"anchor":"Changelog","pages":[{"title":"November 2026","href":"/changelog/2026-november"},{"title":"October 2026","href":"/changelog/2026-october"},{"title":"September 2026","href":"/changelog/2026-september"},{"title":"August 2026","href":"/changelog/2026-august"},{"title":"July 2026","href":"/changelog/2026-july"},{"title":"June 2026","href":"/changelog/2026-june"},{"title":"May 2026","href":"/changelog/2026-may"},{"title":"April 2026","href":"/changelog/2026-april"},{"title":"March 2026","href":"/changelog/2026-march"},{"title":"Feburary 2026","href":"/changelog/2026-february"},{"title":"December 2025","description":"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.","href":"/changelog/2025-december"},{"title":"November 2025","href":"/changelog/2025-november"},{"title":"October 2025","description":"Stay informed about the latest updates, features, and improvements to Komo Engagement Engine.","href":"/changelog/2025-october"},{"title":"September 2025","href":"/changelog/2025-september"},{"title":"August 2025","href":"/changelog/2025-august"}]}]},"basePath":"","title":"November 2025 - Komo Knowledge Base","buildId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","deploymentId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","dynamics":[],"chunks":[]}