Features
What Bootstrapware Onboard includes


Required and optional steps
Mark complete, skip optional items, and blocked copy when dependencies are unmet. Up to 32 items per flow.
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.
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, eligibility, requireAuthorToken, empty state, snooze days, origins, branding. Draft until you publish.
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, launcher, visual builder, CDP, A/B, NPS, MAU billing, inferred clicks, email/SMS nudges, realtime co-browsing.