Build product adoption
your way

Break free from duct tape and rigid components. Flows is product adoption infrastructure that lets modern teams build anything, no-code or all-code.

Get started for free

Trusted by leading engineering, product, and design teams

Build anything with Flows

The Product Adoption suite

Turn new signups into power users. Give your team everything they need to guide, announce, and convert users at every stage of the journey.

Product Tours

Guide users to success, step-by-step

Build product tours that onboard new users, highlight features, and turn signups into active users.

Discover Product Tours

Batteries included

Pixel perfect, production ready components at your fingertips. Use them out of the box or customize them to fit your product.

Embeddable components

Put components directly within your product. Don't just put tooltips over your product.

Analytics

Learn how users move through your tours, which steps cause drop-off, and where to improve.

Workflows

Automate what happens at every step of the journey

Build multi-step experiences that react to what users actually do. Branch by role, plan, or behavior, and control exactly who sees what, and when.

Discover Workflows

Branching logic

Show different steps based on user role, plan, or what they've already completed.

Delays and scheduling

Reach users at the right moment, not all at once. Avoid overwhelming signups or reaching users too early.

Take actions

Update user properties, add users to segments, or trigger webhooks when a condition is met.

Surveys

Collect user feedback that drives decisions

Run NPS, CSAT, PMF, and custom surveys inside your product. Target the right users, collect responses in context, and act on real feedback.

Discover Surveys

Flexible surveys

With multiple choice, number rating, text input, emoji reaction, and link options. Use a template or build from scratch.

Net Promoter Score (NPS)

How likely are you to recommend us to a friend or colleague?

0

1

2

3

4

5

6

7

8

9

10

Not likely at all

Extremely likely

Customer Effort Score (CES)

How easy was it to use our product?

😞

😐

😊

😀

😍

Very difficult

Very easy

Customer Satisfaction (CSAT)

How satisfied are you with our service?

😞

😐

😊

😀

😍

Very dissatisfied

Very satisfied

Product/Market Fit (PMF)

How would you feel if you could no longer use Acme?

Not disappointed

Slightly disappointed

Very disappointed

User research

What could we do better?

Submit

Net Promoter Score (NPS)

How likely are you to recommend us to a friend or colleague?

0

1

2

3

4

5

6

7

8

9

10

Not likely at all

Extremely likely

Customer Effort Score (CES)

How easy was it to use our product?

😞

😐

😊

😀

😍

Very difficult

Very easy

Customer Satisfaction (CSAT)

How satisfied are you with our service?

😞

😐

😊

😀

😍

Very dissatisfied

Very satisfied

Product/Market Fit (PMF)

How would you feel if you could no longer use Acme?

Not disappointed

Slightly disappointed

Very disappointed

User research

What could we do better?

Submit

Targeted surveys

Ask only the right users or companies by targeting their property or behavior.

Analyze responses

Inspect right in Flows or export data into your warehouse for deeper analysis alongside your other metrics.

4. How would you rate your experience?

1,289 out of 1,500 people answered this question

Excellent

Good

Fair

Poor

Customization

Full control over every pixel

Our headless architecture lets you customize every part of your adoption experience without worrying about complex user states.

Discover what’s possible
export const Banner = (props) => {
  return (
    <div>
      <div>
        <h2>{props.title}</h2>
        {!props.hideCloseButton && (
          <button onClick={props.close}>
            Close
          </button>
        )}
      </div>
      <div>
        <p>{props.description}</p>
        <a href={props.buttonLink}>
          {props.buttonLabel}
        </a>
      </div>
    </div>
  );
};

Banner

https://your-cool-app.com

Custom components

Build with your own design system. No more generic widgets that clash with your product's UI.

Customize the theme

Change colors, typography, and spacing to match your app without rebuilding everything from scratch.

Build with our open-source SDKs

That give you full control. Documented, extensible, and built by developers for developers.

Pricing

Pay only for onboarded users

Stop paying for every user in your database. With Flows, you only pay for users who actually see an experience, making it the most cost efficient product adoption tool at any scale.

Explore Pricing

Free

No credit card needed

Get started for free
  • Up to 250 onboarded users per month

  • Unlimited team members

  • Unlimited workflows

  • Community support

Pay-as-you-go

Starts at $0.01 per MTU per month

Find out more

    Everything in Free, plus:

  • Unlimited onboarded users

  • Pay-as-you-go pricing

  • Priority support

Frequently asked questions

Flows gives you the building blocks for any in-product adoption experience: onboarding tours, feature announcements checklists, surveys, tooltips, welcome modals, and more. Because you build with your own components and design system, there is no ceiling. You are not limited to whatever a vendor decided to ship.

Most product adoption tools give you a fixed set of components and expect you to make them fit your product. Flows works the other way. You decide what gets built and how it looks. Use our built-in components, theme them, or replace them entirely with your own. Your design system stays intact and there is no third-party widget fighting with your UI.

You can install the SDK and have your first experience running in under 30 minutes. Getting started is a single npm install and a few lines of initialization code. From there, creating experiences takes minutes in the editor - no waiting on deploys.

Yes. You can get started for free with no time limit. The free plan covers everything you need to build and ship your first experiences. Paid plans unlock higher usage limits, and priority support.

Pricing is based on monthly tracked users (MTU) - the number of unique users who see a Flows experience in a given month. You are not charged for every user that visits your product, only those that interact with Flows content. Team seats are unlimited and free, so you can have your whole team building experiences without worrying about costs.

It depends on how you want to work. Non-technical teammates can create and update experiences using the no-code editor. Engineers can go deeper - writing custom components, hooking into your design system, and using the SDK directly. Both paths are first-class citizens in Flows, so your team can work however makes sense for the experience you're building.

Not directly - experiences from tools like Appcues or Chameleon can't be imported automatically. But we can help you get moved over, and we offer free usage until your existing contract expires so there's no overlap in costs while you migrate.

Yes, and that's one of the core reasons teams choose Flows. You can build adoption experiences using your own components, tokens, and styles instead of fighting a third-party widget. If you already have a button, a modal, or a tooltip in your design system, you can use it directly in Flows.

As much as you want. If you just need a few tweaks, you can theme our built-in components with your colors and typography. If you need something more specific, you can replace any component entirely with your own. There's no styling ceiling - Flows renders inside your app, so whatever your app can render, Flows can render.

Yes. Flows has a component API that lets you build any UI you want and wire it into the adoption engine. Your custom components receive the same targeting, sequencing, and analytics as built-in ones. This is how teams with mature design systems avoid the 'off-brand widget' problem entirely.

Flows works with any web-based product. We have a React SDK and JavaScript SDK so Flows can be used with Next.js, React, Vue, Angular, Svelte, plain JavaScript, or any other JS based app. If your product runs in a browser, Flows can run in it.

Yes. Flows supports localization out of the box. You can create experiences in any language, and the Flows SDK will render the correct version based on the user's locale. This allows you to provide a seamless experience for users around the world.

No. The Flows SDK is lightweight and loads asynchronously so it never blocks your critical rendering path. Experiences only load when they're needed, and nothing shows until a user matches a targeting condition.

Turn beginners into power users

Flows is the only product adoption platform that lets you build anything. Sign up today and have your first experience live in under 30 minutes.