Rich content editor

Userflow just got an awesome rich content editor. When you focus a step’s content in the Flow builder, you’ll see this (notice the new toolbar):

Empty editor

We’ve put a lot of work into making it incredibly smooth to use. It’s custom-built on top of something called Slate.js, which means it’s not like a regular boring WYSIWYG editor that seems out of place. It uses proper Userflow components, supports user attributes, and allows for much more advanced and customized content in the future.

Attributes

Before, user attributes could be inserted by putting a variable name in curly brackets, e.g. {{name}} . Not very user-friendly. Now it’s as simple as clicking “Insert user attribute”. You can still use the {{name}} - or just {name} - syntax, which will automatically be replaced with an attribute. This way, we also validate that the attribute actually exists. Finally, attributes now support fallback values, which will be displayed if the attribute is missing for a user.

Attributes

Links can be inserted by selecting some text and then clicking the “Insert link” button or pressing Cmd + K (on Mac, use Ctrl + K on other platforms). The URL field is even a “rich” content editor itself supporting variables!

Links

Images

Images can be uploaded directly into Userflow, or you can enter a URL where an existing image is stored.

The width of the image can be specified in a percentage of the flow width or an exact number of pixels. Height is automatically calculated to keep the same proportions.

Images can also be links. Just select the image and click the “Insert link” button (or press Cmd + K).

Images

Videos

You can also embed videos from popular video providers. We currently support YouTube, Vimeo or Wistia. Let us know if your favorite provider is missing, and we’ll add it!

Video sizing can be managed just like with images.

Basic text formatting

You can, of course, still use bold and italic text. We’ve also added text-align controls (left, center, right). We’re planning to add more formatting options soon, such as block styles (Normal text, Heading 1, Heading 2), text color, code blocks and more.

User-fills-in-input conditions

One pattern that’s been a little cumbersome in Userflow has been to perform an action - such as go to next step - when the user is done filling in an input field.

Before, you could make a condition such as if Name input has any value . The problem here is that this condition becomes true immediately as the user types the first character. But, it’s usually not appropriate to continue to the next step until the user is done typing.

This is where the new User fills in input condition type fits perfectly. It only becomes true once 1 second has passed without the user typing any more characters. This 1 second is reset with every keystroke, giving the user a natural feeling when being sent to the next step.

Here’s a demo of how it works:

User fills in input demo

Ignore element text

It’s now easier to select elements containing dynamic text (e.g. user-chosen names) in your web app.

In the example below, we’re trying to select the first row in the table, which contains a dynamic project name. Our flow should not depend on the exact name since it will be different for other users. Notice in the lower-left corner how Userflow, by default, picks the name of the project:

With text

If instead, we click the Settings (cog) icon, check “Ignore element text” and point to the element again, then we get this:

Without text

Now Userflow discards the element’s text and uses the best CSS selector it can find for it.

User and session management

You can now view details about users’ flow sessions in Userflow. A session means a specific user viewing a specific flow.

If you click a session row on the view-user or flow-overview pages, you can see all its details:

View session

You can dig into why/when the flow was started, why/when it ended, exactly which steps the user saw and how long time it took them.

You can now also delete individual sessions - or a whole user (including all their sessions) - using the new “User options” and “Session options” three-dot buttons on the view-user and view-session pages respectively. This is great for testing , as you can test flows’ auto-start conditions over and over with the same user. You can also delete a user’s complete history to comply with GDPR.

Custom inputs in conditions

Many apps use custom input fields such as combo boxes, date fields or type-ahead fields.

combobox

Userflow has a nifty condition type, Text input value , which can read the value of a text input and compare it to some value you define. Such a condition could, for example, advance the user to the next step.

Text input value condition

Until now, dealing with the value of custom input fields was a pain though. They simply didn’t work with +Text input value_ conditions. Now they do work!

It just takes a single line of configuration in your app (have your developers do this). With the new userflow.registerCustomInput() method, you can tell Userflow to treat your custom inputs as regular text inputs. Userflow will then read the text content of matching elements. Example:

userflow.registerCustomInput('.my-combobox-value')

Demo:

custom input demo

Let me know if you’d like help setting this up in your app!

Multiple active flows and hidden conditions

We’ve released 3 new features, which make it easier to work with multiple flows.

Previously, a user could only have one active flow at a time. The flow would be visible at all times until it was closed for good.

Automatically hide flows

With the new “Hidden condition” feature, you can define a condition, which, when matching your user, causes the flow to be temporarily hidden. When the condition no longer matches your user, the flow will be shown again.

You can, for example, use this to automatically hide a flow if your user navigates to a different page. In the following example, the flow automatically starts if a user navigates to /products and is temporarily hidden if the user leaves the /products page before completing the flow:

Hidden conditions

Multiple active flows per user

Before, flows were either active or closed. Flows can now be in 3 different states:

  • Active: The flow is visible to the user. This is the state all new flows start in.
  • Hidden: The flow is not visible to the user, but may become Active again later.
  • Ended: The flow is completely over and will never become visible again (unless the same flow is started over again later in a different session).

Users can have multiple flows in each state. Even multiple active flows. Only one active flow will be shown at a time though.

Having multiple flows active/hidden for a user, is very useful when you have different flows for different pages in your app. Imagine a “Products intro” flow only visible on /products , and a “Categories intro” flow only visible only on /categories . As the user navigates between the 2 pages, Userflow will automatically hide one and show the other.

Teaser: Userflow is getting checklists! With checklists, you can e.g. build a “Getting started” list of tasks new users should complete. For checklists, having multiple flows open (a regular flow and a checklist) is a requirement.

Assign start priorities to flows

When adding an auto-start condition to flows, you can now assign the flow a priority (Low, Lowest, Medium, High, Highest). If 2 auto-start conditions match a user, the flow with the higher priority will take precedence. The other flow will be started once the first flow is hidden or ended (assuming that the user still matches the condition).

A new flow can only be auto-started if the user does not have any active flows. I.e. flows can be auto-started if there are only hidden flows.

New, sleeker top menu

I’ve been wanting to do some work on the old top menu for a while:

Old header

It takes up too much space. It’s too dark - like a shadow over the important part of the app. The green accent under the active submenu item on top of the dark blue background is a little eye-irritating.

Here’s what the new top menu looks like:

New header

Its smaller size means more room for content. This will be especially important for the next version of the Flow Builder.

It has a white background to take as little focus away from the main content.

It has just one row of content. When navigating to a nested resource, such as a flow, the top menu items are replaced with the flow’s navigation menu using a sleek, but subtle, animation. A back-arrow will take the user back to the Flows list.

The Settings page now has a simple side menu, which makes it easier to add more settings pages in the future vs. having a horizontal menu that’s harder to scan with your eyes.

The help menu and user account menu have also been simplified with 2 simple circular components on the top right.

Language support

The flow UI from your users’ perspective now supports multiple languages.

Choose your desired language using Themes. If you don’t already have a custom theme, go to Settings -> Themes, click the Standard Theme, and duplicate it.

If you use multiple languages, you should make a theme for each language and apply the proper theme on each flow depending on the flow’s language.

The following languages are currently supported:

  • Danish
  • English (US)
  • German

We’re looking to add more languages on an on-going basis. If you’re missing your language, reach out at support@getuserflow.com, and we’ll add it.

Tooltips

You can now add tooltips anchored to specific elements in your web app. Tooltips are great if a flow step asks the user to click a specific element on the page.

Choose Tooltip in the Step appearance popover next to a step. Then select the element you want the tooltip to be anchored to. Optionally add an action or enable backdrop.

Tooltip demo

Tooltips join our 2 other step appearances: Speech bubbles and modals.

Tooltips feature highlights:

  • Tooltips are automatically scrolled into view.
  • Perform actions, such as going to the next step, when users click the target element.
  • Optional backdrop, which adds a semi-transparent layer on top of your app, revealing only the target element and the tooltip.
  • Tooltips are automatically placed either above, below, to the right of or to the left of the element - depending on what seems best for the user. You can optionally set your desired placement.

Themes

You can now customize the look’n’feel of your flows with Themes .

The new Theme designer can be found under Settings -> Themes:

Theme designer

This theme has a custom avatar, which is slightly larger than the default size. The speech bubble is placed on the bottom right and is a little wider than the default. It uses the Roboto font and a Material Design color scheme.

There’s a standard theme, which you can duplicate to make your own customizations.

You can mark a theme as your default theme using the three-dot menu on the Theme designer page. This will make all new flows use this theme by default.

You can change the theme for a flow under the three-dot menu, then click Settings.

You can also choose a different theme for individual steps by clicking the step’s avatar and checking “Use a different theme for this step”. This way you could, for example, place the speech bubble in a different corner for just a few steps.

Avatar and voice, which was previously possible to edit per flow, have been moved under themes. This should make it easier to manage.

Let us know if there are any aspects of your flows that you miss customization options for.