IntroVox is a Nextcloud app that gives new users a guided, step-by-step tour through Nextcloud's main features on first login. Tour content is fully customizable per language, and steps can be restricted to specific user groups for role-based onboarding.
This guide helps you get started quickly based on your role.
IntroVox shows new users an interactive onboarding tour the first time they log in. The tour:
- Highlights key Nextcloud UI elements (Files, Calendar, Search, Settings, etc.)
- Auto-translates into every language Nextcloud supports via Transifex (
nextcloud/introvoxresource) - Lets each user skip, restart, or permanently disable it
- Lets administrators override the default tour copy per language and per user group
Behind the scenes the tour engine is Shepherd.js, wrapped in a Vue 3 frontend with a PHP backend that stores configuration in Nextcloud's appconfig table.
- Log in to Nextcloud — the tour starts automatically after a short delay (if your administrator has enabled it)
- Click Next / Back or use
Enter/Backspaceto navigate - Press
Escapeor click ✕ to close the tour (it will reappear next login) - Click Done on the final step or Skip and don't show again to permanently disable auto-start
- Restart anytime via Personal Settings → IntroVox → Restart tour now
See User Overview and Taking the Tour for the full walkthrough.
- Install IntroVox from the Nextcloud App Store (or via
occ app:install introvox) - Go to Settings → Administration → IntroVox
- Toggle Wizard enabled for all users — the tour is now live in every language Nextcloud supports, no per-language opt-in needed
- Only if you want custom copy for a specific language: open the Steps tab, click + Add language override, pick a language and edit
- Optionally restrict steps to specific groups for role-based onboarding
See the Admin Guide and Managing Wizard Steps for detailed configuration.
Before evaluating IntroVox at scale, read:
- Architecture Overview — Vue 3 frontend, Shepherd.js tour engine, PHP backend, appconfig storage
- API Reference — public + admin endpoints
- Multi-Language Support — Transifex integration and auto-discovery of language files
| Concept | Description |
|---|---|
| Wizard step | A single tour step with a title, HTML content, optional CSS selector to highlight an element, and a position (left/right/top/bottom). |
| Centered step | A step with no CSS selector — appears as a centered modal. Used for welcome and conclusion screens. |
| Attached step | A step with a CSS selector — appears next to the highlighted element with a glowing border. |
| Language override | Custom per-language copy that replaces the auto-translated defaults. Stored in appconfig under wizard_steps_<lang>, only created when an admin saves edits. |
| Group visibility | Steps can be restricted to specific Nextcloud groups via the visibleToGroups field. Empty = visible to all users. |
| Default steps | Built-in step definitions auto-translated via Transifex; loaded when no custom configuration exists for a language. |
| Wizard version | A counter (wizard_version) bumped by admin actions like "Show wizard to all users" — frontend uses it to decide whether to re-show. |
- Native Nextcloud integration — uses NC's
IConfigfor storage,IL10Nfor language detection,IGroupManagerfor group filtering, andIUserSessionfor per-user state. - Server-side group filtering —
visibleToGroupsenforcement happens in the PHP backend (ApiController), so users cannot see hidden steps via browser tools. - Transifex-driven translations — the
nextcloud/introvoxTransifex resource feeds every default tour string. New language files (l10n/<lang>.json) land via the Nextcloud sync bot; no code changes required and admins don't need to opt them in.
- User Overview — Taking the tour
- Admin Guide — Setup and configuration
- Managing Wizard Steps — Step CRUD
- Architecture Overview — System design
- Multi-Language Support — Adding new languages via Transifex
- Group-Based Visibility — Role-based onboarding
- Installation — App Store and manual install