Release history
usertour releases
Usertour is an open-source user onboarding platform. It allows you to create in-app product tours, checklists, and surveys in minutes—effortlessly and with full control.The open-source alternative to Userflow and Appcues
All releases
20 shown
Viewer UI hardening + UI package consolidation
Capability permissions + error/toast improvements
Locale-aware sign‑in + deep‑link restore
Schema-driven Actions, package flattening, event descriptions
- Publish/edit flows now use per‑environment source of truth (contentOnEnvironments) instead of deprecated Content.publishedVersionId; adjust any custom logic accordingly.
- Session status badges prioritize Dismissed > Completed > Active in UI displays.
- Removed legacy Rules engine (v1) from shared-components.
- Replaced Theme Builder v1 inspector with schema-driven field components.
- Conditions system now powers every condition surface in admin and runtime; all previous Rules consumers migrated.
- Theme Builder v2: three-column layout, variations support, macOS‑style preview frame, per‑setting tooltips, unsaved changes warning, seed from current Base settings.
- Schema-driven Conditions system covering user-attr, page, event, segment, content, element, text-input, time, task-clicked, and group condition types with Where‑clause UI and standalone exports.
Full changelog
This release lands Theme Builder v2 — a full three-column rebuild with variations, schema-driven settings, and macOS-style browser-chrome previews — and replaces the legacy Rules engine with a schema-driven Conditions system that powers every condition
surface in the admin and runtime.
It also brings multi-environment safety to publish/edit flows, sliding-indicator animation to tab navigation, and a broad UI consistency pass across settings tables, list headers, and content detail chrome.
What's Changed
🎨 Theme Builder v2
- Rebuilt the theme builder as a three-column shell with variations on the left, schema-driven settings in the right inspector, and a live macOS-chrome preview in the middle.
- Added variations support with drag-to-reorder, inline rename, conditions, and Base pinning.
- Replaced the legacy v1 inspector with schema-driven field components (typed FieldDef schema, cascade rules, coverage-tested round-trip).
- Restored per-setting tooltips on every inspector field with full i18n in en-US and zh-Hans.
- Added preview-frame chrome (browser bar + widget switcher) so widgets keep their intended layout context.
- Added unsaved-changes warning on close and pre-publish readonly + validation guards.
- Theme detail now lives inside the shared sidebar shell, matching the rest of the admin's detail-page architecture.
- New variations seed from the current Base settings rather than factory defaults.
- Polished active color swatch labels, font-color positioning, Auto fallback rendering, primary brand color seeding, banner alignment in chrome, and many smaller details.
🧱 Conditions (schema-driven replacement for Rules)
- Replaced v1 Rules with a schema-driven Conditions system covering every condition type (user-attr, current-page, event, event-attribute, segment, content, element, text-input, text-fill, time, task-clicked, group).
- Migrated every Rules consumer in the admin and shared editor to the new component; deleted v1 Rules from shared-components.
- Added a Where-clause UI for event filters with errors that bubble up to the outer event chip and a [Where] badge that distinguishes it from [If].
- Added standalone exports for Frequency, IfCompleted, Wait, and Priority that reuse the same primitives.
- Validation now spans snapshot, property-based, and production-fixture tests.
📅 Conditions polish
- Date attributes now render in the chip as MMM d, yyyy, matching the picker trigger.
- Split absolute-date operator labels into separate dropdown vs chip forms so "Signed up on May 13, 2026" reads naturally.
- Inline the two range inputs for between on a single row.
- Keep "Add value" alive when list-attribute popovers reopen, and hide stale list values on valueless operators (is empty / has any value).
- Commit invalid edits on popover close so the save gate catches them; block save when checklist / resource center conditions are incomplete.
- Honor the consumer's filterItems array order in the add-condition dropdown.
- The DateTimePicker calendar now sits above its parent popover (no more z-index clipping in builder chrome) and matches the conditions-popover trigger hover language.
- Say "Add filter" instead of "Add condition" when the same component is used to filter a list (segments, user/company tables).
✨ Tabs & UI animation
- Replaced the instant data-state styling on Tabs with a shared motion.span that slides between triggers via framer-motion's layoutId. Pill and underline variants both ride the same mechanism.
- Added a variant="primary" cva variant for tinted active pills (replaces six call sites that hand-rolled data-[state=active]:bg-primary overrides).
- The content detail header's underline now slides between Analytics / Content / Versions on route change.
🛡️ Multi-environment safety
- useContentBuilder and the rename / open-editor form now decide whether to fork using contentOnEnvironments (per-env source of truth) instead of the deprecated Content.publishedVersionId field. Resolves a class of bugs where a publish in one
environment could send authors straight into a still-live version in another. - Session status badges flip to terminal-first priority (Dismissed > Completed > Active) so a session that was completed and then dismissed reads as Dismissed, matching the underlying event log.
- "Finished in X" wording in session lists aligned to "Completed in X" to match the canonical FLOW_COMPLETED event name.
- Removed the "Published X ago" badge from the content detail header — per-env publish times don't reduce to one number, and version history surfaces the detail when needed.
📋 Settings & list cleanup
- Dropped the CreatedAt column from Attributes / Events / Environments settings tables. API keys keep it because creation time is a real security / rotation signal.
- Unified the eight "New X" buttons across settings and content lists onto a single RiAddLine + mr-2 h-4 w-4 pattern. Fixed New Events → New Event along the way.
- Segment headers now use horizontal dots (matching page-level overflow conventions elsewhere).
🔧 Fixes & refactors
- Fixed analytics: NPS / Scale response-rate denominator now aligns with the rolling-window aggregate.
- Fixed resource center: active session resumes on refresh regardless of current page; attrCodes preloaded from action-block clickedActions.
- Fixed content loading spinner to center reliably inside detail pages' min-h-full containers via a min-h-[60vh] floor.
- Extracted CompactPopoverTrigger to consolidate three identical inline trigger className chains (ConditionCombobox, ConditionSelect, DateTimePicker).
- Several i18n polishes across theme-builder option labels ("Dismiss the flow", "Show a speech bubble instead"), DateTime operator phrasing, dead placement keys, etc.
- Build / typecheck: exported forwardRef prop interfaces so tsup --dts can emit valid declarations; aligned border.borderRadius type to number.
Full Changelog: https://github.com/usertour/usertour/compare/v0.7.1...v0.7.2
- Resource Center enforces one-session-per-user behavior with reactivation prevention
- Admin-ended session tracking for server-side ended sessions
- Session ending capability for Banner and Resource Center in analytics/session management
Full changelog
This release focuses on Resource Center session behavior, admin-ended session tracking, and a small documentation improvement in the web app.
What's Changed
🧭 Resource Center
- Updated Resource Center to follow one-session-per-user behavior, matching Banner behavior.
- Prevented dismissed or completed Resource Centers from being reactivated for the same user.
- Added a Resource Center guide link to the Resource Centers list header.
📊 Analytics & Session Management
- Added support for ending Banner and Resource Center sessions from the analytics/session management flow.
- Added admin-ended tracking for server-side ended sessions.
- Added end-reason attributes for Banner and Resource Center dismissed events.
- Reused dismissed-event session ending logic across Checklist, Launcher, Banner, and Resource Center.
⚙️ SDK & Types
- Added
ADMIN_ENDEDas a content end reason. - Added
banner_end_reasonandresource_center_end_reasonevent attributes. - Bumped
@usertour/sdkfrom0.6.4to0.6.6.
Full Changelog: https://github.com/usertour/usertour/compare/v0.7.0...v0.7.1
- Resource Center with tabs, blocks, search, and detail views
- Multi-provider live chat integration
- Resource Center analytics and reporting
Full changelog
This release introduces Resource Center end-to-end, with major upgrades across content building, SDK delivery, theming, live chat, analytics, and user-facing navigation.
It also improves user, company, and session management workflows, with redesigned detail pages, better activity feeds, stronger table customization, and clearer analytics.
What's Changed
🧭 Resource Center
- Added Resource Center as a new content type with full builder, preview, SDK, widget, and server support.
- Added tab-based Resource Center navigation with configurable tabs, icons, ordering, and filtered visibility.
- Added Resource Center blocks for rich text, action links, dividers, content lists, sub-pages, and live chat.
- Added search, detail views, and grouped display for Resource Center content lists.
- Added Resource Center launcher behavior, visibility controls, open/close lifecycle handling, and persisted navigation state.
- Added conditional block visibility and attribute preloading for more personalized Resource Center experiences.
- Added Resource Center theme settings for launcher styling, panel sizing, header background, logo upload, and layout controls.
💬 Live Chat & Actions
- Added live chat block support for multiple providers and custom JavaScript providers.
- Added SDK live chat management for loading, showing, hiding, and cleaning up provider widgets.
- Improved live chat behavior when Resource Center blocks are opened, closed, or destroyed.
- Added collapse-to-launcher behavior after Resource Center action and content-list item clicks.
📊 Analytics
- Added Resource Center analytics for views and clicks grouped by tab and block.
- Added Resource Center event attributes for tab ID and tab name.
- Added analytics support for announcement-style Resource Center content.
- Improved analytics charts, granularity controls, session columns, and status display.
- Improved analytics labels, tooltips, ranking indicators, and CSV export handling.
- Fixed Resource Center analytics ordering and array payload handling.
👥 Users, Companies & Sessions
- Redesigned user, company, and session detail pages with clearer layout and navigation.
- Added richer activity feeds with event categorization, icons, translations, and count labels.
- Improved session lists with clickable rows, status columns, and clearer session detail views.
- Improved company/member attribute display and membership layouts.
- Added
externalIdcolumns for user and company tables. - Added collapsible search and improved filter toolbar behavior for user and company tables.
- Improved column customization with drag-and-drop, search, visibility management, and divider rows.
🎨 UI & Builder Improvements
- Added a shared icon picker with upload, URL, and built-in icon options.
- Replaced initials avatars with a curated default avatar icon set.
- Improved Resource Center builder layout, block settings, validation, loading states, and error tooltips.
- Added Resource Center preview support in theme settings.
- Improved admin layouts, subpage layouts, warning display, and navigation clarity.
- Rewrote tooltips and labels across auto-start, hide rules, attributes, events, announcements, and Resource Center settings.
⚙️ SDK, Server & Infrastructure
- Added SDK Resource Center APIs and global launcher visibility handling.
- Added Resource Center socket handling, reconnect restoration, session activation, and
RESOURCE_CENTER_STARTEDsupport. - Improved server-side content orchestration, session building, condition evaluation, socket emitting, and event tracking.
- Added PostgreSQL backup script support and Dockerfile updates for backup tooling.
- Added Redis TLS support through environment configuration.
- Updated default initialization for missing attributes and clearer predefined attribute descriptions.
Full Changelog: https://github.com/usertour/usertour/compare/v0.6.0...v0.7.0
- Event trackers
- Self-hosted admin panel
- License management
- Banner content type
- URL-based targeting
- Banner placement controls
Fixed Popper positioning flash and flicker issues, corrected SDK button padding calculations, and fixed Tailwind font-weight variable mappings.
- TipTap-style editor
- Custom launcher icons
- Speech bubble support
Fixed column filter bugs in segments, improved UI with focus effects and animations, fixed checklist completion animation issues, and standardized button components.