User onboarding for
Angular apps
Flows integrates with Angular as a service. Add user onboarding, trigger from route events, and keep your components untouched.

Trusted by leading engineering, product, and design teams
How Flows powers Angular user onboarding
Flows integrates with Angular's dependency injection system. Initialize it as a service, identify users after authentication, and trigger onboarding workflows from anywhere in your component tree.
Product tours.
Guide users step-by-step through your product with tooltips, modals, and hints that feel native to your app.
Embeddable components.
Embed interactive content directly inside your app layout: checklists, empty states, and contextual guides without floating overlays.
Custom components.
Use your own design system and component library to build adoption experiences that match your product's look and feel exactly.
Localization.
Deliver workflow content in any language to reach a global user base.
User targeting.
Target specific users or segments with AND/OR logic to show the right experience to the right person.
Analytics.
Track workflow performance with built-in analytics. Measure completion rates, drop-off, and engagement across all your adoption experiences.
Designed for unlimited customizability
Flows is designed to be a “Headless product adoption platform”. We’ll focus on user state problems, so you can focus on your own product.
Frequently asked questions
Initialize the Flows SDK inside a root-level Angular service and call it after your auth service resolves user identity. From there, Flows evaluates targeting rules and activates the right onboarding workflow automatically, with no logic needed in individual components. See the Angular installation guide for step-by-step instructions and code examples.
Yes. Flows detects client-side navigation and re-evaluates trigger conditions on each route change. You can configure onboarding steps to activate only on specific routes without adding custom route guards or navigation hooks.
Pass user properties when initializing Flows, typically from your auth service after login. Set targeting rules in the Flows dashboard using properties like createdAt or a hasOnboarded flag, and Flows handles the rest without any component-level conditional logic. Check out our guide on targeting only new users.
No. Flows operates outside Angular's change detection cycle. Workflow state changes are event-driven and don't trigger unnecessary re-renders. If you need to reflect Flows state in your Angular components, you can wrap it in an observable or a signal.
Yes. Flows doesn't depend on Angular's module system. Initialize the SDK in your bootstrapped provider or root module and it works the same way regardless of whether you're using NgModule-based or standalone component architecture.
Build better Angular user onboarding today
A lightweight SDK that fits Angular's service-based architecture. Add onboarding workflows without touching your components.


