Features
What Bootstrapware Onboard includes


Required and optional steps
Required and optional items in one flow. Skip optional items. Blocked items show Complete … first copy and no primary CTA. Up to 32 items per flow.
Next-step task CTA
The first incomplete unblocked item is highlighted as the next step. Items with href use a primary Continue (or ctaLabel) link; Mark complete is secondary. Items without href keep Mark complete primary. Clicking the href CTA does not auto-complete.
Mixed scope
User-scoped and workspace-scoped steps in one flow. Shared steps key off workspaceKey.
Facts reconciliation
Sticky facts on mount. Call completeStep from the host on real actions. factKey wins over item key.
Eligibility
Gate items and flows by role, plan, or flags (max 16). Presentation only; never overrides stored progress.
Celebrate card
When required setup is satisfied, the widget shows a You're all set card above the checklist. The progress bar, optional-remaining copy, skip, snooze, dismiss, and resume stay. Hide and Show collapse that card in this browser. hideWhenComplete collapses it again once required setup is complete.
Undo a skipped step
Skipped optional steps show Undo and Mark complete. Undo calls optional unskipStep and deletes that skipped progress row. A stored skip counts only while the step stays optional. If that step later becomes required, the leftover skip is ignored.
Section, modal, window, or launcher
presentation is section, modal, window, or launcher, with optional defaultOpen. theme is light or dark. Omit theme and the checklist stays the light default. Hosts skin with --bsw-ob-* tokens. Progress and hosted-config load errors show Retry instead of an empty checklist.
Dismiss and snooze
Dismiss hides without 100% progress. Snooze tucks the widget away (default 1d and 7d) without stealing focus.
Completion semantics
requirementsSatisfied vs completionTransitionRecorded. Copy-only revisions do not re-fire flow_completed.
Integration summaries
reportOutcome for integration-reported outcomes. Hosted webhooks or BYO onEvent. Opaque ids only.
Preview and rollback
Preview never writes progress. Restore copies an immutable revision into draft, then republish.
BYO adapter
Full OnboardAdapter including reportOutcome. Progress on your API. Published config still loads with a publishable key.
Hosted progress
Omit adapter; pass flowId + publishableKey. Live Hosted requires authorToken from your BFF.
Host-asserted identity
Pass user={{ id }} and workspaceKey. Bootstrapware does not authenticate end users.
Flow configuration
Items (optional href and ctaLabel), eligibility, requireAuthorToken, empty state, snooze days, origins, branding. Draft until you publish. ctaLabel round-trips dashboard, MCP, published config, and the widget.
Configuration revisions
Every publish is a revision. MCP list_revisions and restore_revision. Step keys keep progress across restores.
Test and live environments
bsw_test_* and bsw_live_* keys. Live config needs BYO or Hosted entitlement. Local adapter stays free.
Operational sessions
Dashboard usage metadata: started, completed, test vs live. Never host context. Counts are not invoices.
Webhooks
Hosted flow events with HMAC signing. Identifiers only. BYO uses onEvent on your backend.
MCP for flow config
Create, draft, publish, restore. Never host context or flags. Keys, webhooks, and billing stay dashboard-only.
Author tokens
BFF-minted assertions for live Hosted. Default permissions omit reset. Widget never mints tokens.
Parked (not shipped): product tours, welcome modals, visual builder, CDP, A/B, NPS, MAU billing, inferred clicks, email/SMS nudges, realtime co-browsing.