Common questions from IntroVox administrators. For user-facing questions, see the User FAQ.
- Open Nextcloud in your browser
- Press F12 to open Developer Tools
- Click the "Inspect element" icon (cursor with square)
- Click the element you want to highlight
- Use the visible class/ID/attribute in your selector:
- Class:
.classname - ID:
#id-name - Link with URL:
a[href*="/apps/files/"]
- Class:
For reliability, use multiple selectors separated by commas — see Best Practices.
Yes. Supported tags include <p>, <strong>, <b>, <em>, <i>, <ul>, <ol>, <li>, <br>, <a href="...">.
Security note: Step
titleandtextare stored as-is and rendered as HTML by Shepherd.js. Admins are trusted to author tour copy directly. Until v1.7.0 the backend passed both fields throughOCP\Util::sanitizeHTMLwhich actually escapes rather than sanitises HTML, causing literal<p>tags to surface in the wizard; that double-escape was removed.
Example:
<p>Welcome to <strong>Nextcloud</strong>!</p>
<ul>
<li>📁 Upload files easily</li>
<li>📅 Manage your calendar</li>
</ul>A centered step has no CSS selector (attachTo left empty). It appears as a centered modal in the middle of the screen — good for welcome/conclusion steps.
Method 1 — Browser console:
window.nextcloudWizard.reset();
window.nextcloudWizard.start();Method 2 — Personal Settings: Personal Settings → IntroVox → Restart tour now, then refresh the page.
Yes, fully supported. Make sure your Nextcloud server uses UTF-8 (default).
There's no built-in conditional logic, but:
- Enable/disable toggle lets you hide steps without deleting them
- Group-based visibility restricts steps to specific user groups (Group Visibility)
- Non-matching CSS selectors are gracefully handled (v1.4.1+ falls back to centered display)
5–8 is ideal. More than 10 risks tour fatigue. See Best Practices.
You don't have to do anything. Every language that has a translation on the Nextcloud Transifex nextcloud/introvox resource becomes available automatically — the sync bot pulls the translations into l10n/<lang>.json via PRs, and end users in that language immediately see the auto-translated tour.
If you want custom copy for a specific language (different from the auto-translated default), open the Steps tab, click + Add language override, pick the language, edit, save.
See Multi-Language Support for the full Transifex flow.
Yes — that's what overrides are for. Each override-language has its own independent wizard_steps_<lang> configuration that replaces the auto-translated defaults for that language. Languages without an override get the defaults.
Select the language in the dropdown → click 🔄 Reset → confirm. The override row is deleted; from then on Transifex updates flow through automatically for that language.
The wizard falls back to the English defaults for that user. (NC's per-app language detection falls back to the system default; IntroVox forces an English fallback in DefaultStepsService so users never see a surprise third language.)
Not recommended. Each override-language should have its own coherent copy. Languages without an override use the auto-translated Transifex defaults.
Several options:
- Limit app to groups (Nextcloud-level, recommended for full exclusion) — Settings → Apps → IntroVox → Limit to groups
- Group-based step visibility (v1.2.0+) — restrict individual steps to groups (Group Visibility)
- Globally — uncheck Enable wizard for all users
(Per-language opt-out was removed in v1.7.0 — that pattern doesn't scale across 80+ Transifex languages.)
Yes (since v1.1.0):
- "Skip and don't show again" button on the first step
- "Permanently disable the introduction tour" checkbox in personal settings
- Completing the tour (clicking Done on the last step)
Admins can override these with Show wizard to all users.
As of v1.5.0, IntroVox declares compatibility with Nextcloud 32–34 and requires PHP 8.1+. Check appinfo/info.xml for the authoritative list.
| Action | localStorage | Server preference | Auto-start next login? |
|---|---|---|---|
| ✕ Close | Marked as "seen" | Not changed | Yes |
| Done button | Marked as completed | Permanent-disable set | No (unless admin force-shows) |
| Skip and don't show again | Marked as completed | Permanent-disable set | No (unless admin force-shows) |
See CHANGELOG.md for the full version history. Highlights:
- v1.7.0 — Transifex-driven language model: every translated language available automatically, admin UI shifts from "enable languages" to "manage overrides",
enabled_languagesconcept dropped; fixes for HTML-escape, wrong-language fallback, client-side re-translation; #17 and #18 closed - v1.6.1 — fix for previously-shown steps stacking behind the current step
- v1.6.0 — Transifex translation infrastructure, auto-discovery of language display names, ~50 new translatable strings for PWA install instructions
- v1.5.0 — Enterprise subscription support, NC 34 support, CSRF + XSS hardening
- v1.4.3 — defensive
is_array()guard preventing HTTP 500 on corrupt config - v1.4.2 — fallback selectors and 10s timeout for app-menu readiness
- v1.4.1 — steps with missing target elements now fall back to centered display
- v1.2.0 — group-based step visibility
- v1.1.0 — user control (permanent disable), Import/Export, dynamic language detection
- v1.0.6 — multi-language autostart, multi-selector fallbacks, ID-based step ordering
- Global settings:
oc_appconfig(wizard_enabled,wizard_version) - Per-language overrides:
oc_appconfig(wizard_steps_<lang>— only present when an admin saved an override) - User preferences (permanent disable):
oc_preferences(user-scoped)
1.6.x installs may still carry a stale
enabled_languagesrow. The 1.7.0 code ignores it; it's harmless and left in place for downgrade safety.
See Backend Architecture.
Technically yes, but not recommended. Use the admin interface or the Import/Export feature to avoid corruption. Since v1.4.3, if wizard_steps_<lang> doesn't decode to a valid array, the backend falls back to defaults rather than crashing.
Yes. Standard Nextcloud reverse-proxy setups work; just ensure JavaScript and CSS files are served correctly through your proxy.
Telemetry was added in v1.4.x and reports anonymous usage stats (user counts, tour-completion events) to licenses.voxcloud.nl. Since v1.5.0, the payload includes the configured subscription key and a hasExtendedSupport flag, used by the license server to verify Enterprise claims. Admins can disable telemetry in the Support tab.
After every major Nextcloud upgrade, when adding new essential apps, and based on user feedback (quarterly is a reasonable cadence). See Best Practices → Review Quarterly.
No — mix it up:
- Centered steps for welcome, transitions, and conclusion
- Attached steps for specific UI elements you want to highlight
Not built-in. You can manually swap exports for different time periods and gather user feedback, but there's no built-in cohorting.