SaaS Onboarding Step 2: Research and Mapping

This is the 2nd part of our blog post series about SaaS onboarding. The first step and blog post was about Setting a Goal. In this blog post, we move to the 2nd step in the process, namely researching and mapping the customer journey. Some organizations might already have a very clear view of their customer journey, while others will need to do more research and mapping before starting to build their new onboarding.


Read full post


The Analytics tab under flows, checklists and launchers just got a major overhaul, which we’re excited to share with you.

The top section shows the number of views and completion rate over time.

Flow analytics

Flows have a new Step funnel, which makes it easy to spot drop-off points.

Step funnel

Similarly, checklists have a Task breakdown section.

Read more in our Analytics guide

New feature: Localization

Userflow now has full Localization support, making it easy to manage content in multiple languages. Build a flow once, and only translate the bits that vary from language to language.

We’ve put a lot of thought into the Localization feature, and believe it’s the best solution on the market. See highlights below.

Text translated

Localization highlights

  • You can both translate content directly in Userflow, and export/import using multiple formats (for translators working in external translation platforms).
  • You can change both the original content and the translated content at any point in time. This doesn’t require taking the current version offline. Translations work with our regular version control. Userflow elegantly detects when the original text changes, and informs you of which translations may need an update.
    • Other tools suffer problems with locking your original content once you start translation, or require you to take flows offline if you later want to change the translations.
  • You can translate all parts of a flow, including images and videos.
    • Other tools limits translation to only the text bits.
  • You can enable and publish content for each language, one by one, as soon as their translations are ready.
  • Working with text formatting is smooth. If you have a text such as “Now click Projects to continue” (notice that “Projects” is bold), Userflow will extract a single text to be translated: “Now click <b>Projects</b> to continue”.
    • Other tools will break this into 3 separate texts: “Now click”, “Projects” and “to continue”. This can be very challenging for translators to translate, since there’s no context, and can therefore result in poor translations once combined.

Read more in our Localization guide.

SaaS Onboarding Step 1: Set a Goal

As more and more business is moving online, SaaS products are becoming increasingly advanced. To ensure conversion, adoption and retention even the most intuitive products require a strong focus on the onboarding experience. I recently joined Userflow as a co-founder where we are on a mission to make this easier. In this blog post series, I will try to highlight key steps to take to build a great SaaS onboarding journey. This first post is focused on the first logical step, namely setting a goal for why you want to improve your onboarding in the first place.

Set a Goal

Read full post

New feature: Launchers

Today we’re launching a brand new powerful feature: Launchers!

With Launchers, you can embed beacons/icons/buttons in your app outside the context of flows. You can use them to draw users’ attention towards certain parts of your app or add little explanation tooltips here and there.

To create a launcher, sign in to Userflow and go to Content, click Create content and pick the new Launcher type. Launchers are published like flows and checklists.

Read full post

"Starts/ends with" conditions

You can now match attribute values based on what they start or end with:

Sign in with two-factor authentication

A few ways this could be useful to you:

  • If you have a set of attribute values that all start with the same beginning, such as pro-2020, pro-2021 etc., you can now match them in one go.
  • To randomize whether a flow starts, you could use something like “User ID ends with 1”. Assuming your IDs are numeric, it’ll randomly match 10% of your users.

Two-factor authentication

Today we’re adding support for two-factor authentication. Two-factor authentication helps safe-guard your Userflow account by asking for both your regular password and a time-based code from an Authenticator app when you sign in. This means your account can’t be breached even if someone were to get a hold of your email and password.

We recommend that all users enable two-factor authentication.

Go to Settings -> My account, scroll down, and click the Require two-factor authentication when I sign in switch to set it up.

Next time you sign in, you’ll see this after entering your password:

Sign in with two-factor authentication

Faster and smaller Userflow.js

TL;DR: Userflow.js page load impact lowered by 40%. Closest comparable solution’s JavaScript footprint is 8x larger/slower than Userflow.js. Upgrade your userflow.js installation to take full advantage.

At Userflow we CARE about performance. In my past career, I’ve optimized the page load time of numerous web apps. I’d hate for Userflow to be a contributing factor in making our customers’ apps slow.

When you include any third-party JavaScript in your app (such as Userflow.js), it has an impact on your page load time. The browser has to download, parse and evaluate all this JavaScript. The more, the slower your web app becomes.

Userflow.js was already incredibly light-weight, but our latest update takes performance to the next level. Userflow.js now ships 2 separate builds:

  1. A fast and small build for modern browsers (>90% of average global users). By taking advantage of modern browser features, we can ship a smaller amount of JavaScript that runs more efficiently. Our modern build is just 15.3 kB (52.2 kB uncompressed), which is around 40% less than before. The closest (JavaScript-size-wise) comparable solution ships 8x as much JavaScript, while other provider ships 23x as much.
  2. A legacy build for older browsers. This allows us to support older browsers, without hurting performance in modern browsers. We’re even pretty close to supporting IE11 (full support coming soon!).

Your Userflow.js installation will automatically load the best build for each user’s browser.

Here’s a comparison between Userflow and 4 other providers, showing how much smaller Userflow.js is. Remember that less JavaScript = faster page load time.

JS footprint

We recommend asking your developers to upgrade your Userflow.js installation:

Filter event conditions by attributes

Here’s a new 😋 feature, which gives you an even more powerful way to target users or adapt to their behavior.

Event conditions can already be used in Auto-start conditions for flows, Completed conditions for tasks etc. Example: Start a flow when a user changes their subscription plan.

When your app tracks an event, it may add additional information about the event in the form of event attributes. Here’s an example of when a user changes their subscription plan, and we want to know which plan they change to:

userflow.track('subscription_plan_changed', {plan_id: 'pro'})

The new thing: Event conditions now support filtering based on these event attributes. Example: Start a flow when a user changes to the Pro subscription plan specifically.

Event condition where

Notice the new “Where Plan Id is pro” part.

Just like with regular user attribute conditions, you can add multiple event attribute conditions. The attributes can be strings, which you can compare with equality (is/is not) or whether they contain a substring. They can also be integers, which you can use to compare using equality, less than, greater than, etc. Date and boolean event attributes work, too!

You can even use this with Userflow-generated events, such as Flow Started, to e.g. start one flow 7 days after a user completes another flow:

Event condition where

Conditionally visible checklist tasks

You can now set a condition for whether a checklist task should be visible or not.

This is useful if a task should only be presented to users that can actually complete it. Here’s an example, where we only show a task to the owner of the account:

Only show task if

Simply switch on Only show task in the task’s side panel. You can use any of the regular conditions here.