Onboarding overhaul: slim wizard, progress widget, guided activation UX
Setup Wizard: reduced from 10 steps to 5 (Company Info → QB Migration →
Pricing Defaults → Named Ovens → Notifications). Removed Doc Numbering,
Job Settings, Payment Terms, Pricing Tiers, and Team Members steps — these
all have sensible defaults and are accessible any time in Company Settings.
Wizard now completes in ~5 minutes instead of 15–20.
Dashboard progress widget (new): "Get the most out of your shop" checklist
appears for Company Admins after wizard completion. Tracks six post-setup
activation tasks with dynamic progress badge, motivating subtitle copy,
collapsed-state persistence via localStorage, and a full completion state
("Your shop is fully set up 🎉") that replaces the checklist at 100%.
The next recommended step is highlighted with a solid CTA button and a
subtle blue row tint. Completed steps show encouraging green subtext instead
of just "Done". Widget disappears from controller when AllDone would have
caused a silent vanish — now renders the completion state instead.
Guided activation (Daily Board): rewrote the BoardIntroStep callout to lead
with "This is your shop in real time" and a plain-English description of the
board's purpose. Added a separate InstructionText field to
GuidedActivationCalloutViewModel so the "Move this job to the next stage"
action prompt renders as a distinct bold line with an arrow icon rather than
being buried in the body copy. After the stage change, the confirmation
callout now reads "Nice — your workflow just updated" to reinforce what just
happened before prompting the invoice step.
All copy passes the "shop owner, not SaaS" test: no technical jargon,
benefit-driven descriptions, natural language throughout.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
(function () {
|
||||
var STORAGE_KEY = 'shopProgressCollapsed';
|
||||
var widget = document.getElementById('shopProgressWidget');
|
||||
if (!widget) return;
|
||||
|
||||
var body = document.getElementById('shopProgressBody');
|
||||
var toggle = document.getElementById('shopProgressToggle');
|
||||
var chevron = document.getElementById('shopProgressChevron');
|
||||
|
||||
function setCollapsed(collapsed) {
|
||||
body.style.display = collapsed ? 'none' : '';
|
||||
chevron.className = collapsed ? 'bi bi-chevron-down' : 'bi bi-chevron-up';
|
||||
toggle.title = collapsed ? 'Expand' : 'Collapse';
|
||||
try { localStorage.setItem(STORAGE_KEY, collapsed ? '1' : '0'); } catch (e) { }
|
||||
}
|
||||
|
||||
// Restore on load
|
||||
try {
|
||||
if (localStorage.getItem(STORAGE_KEY) === '1') setCollapsed(true);
|
||||
} catch (e) { }
|
||||
|
||||
toggle.addEventListener('click', function () {
|
||||
setCollapsed(body.style.display === 'none' ? false : true);
|
||||
});
|
||||
}());
|
||||
Reference in New Issue
Block a user