Building Flows

This guide will walk you through the basics of building flows in Appcues. When building a flow, it's important to think about what sort of experience you're trying to create for your users. This will help inform exactly what you want each step of your flow to look like, as well as what components you will add to those steps. 

What's covered below:


Appcues Webinar - Builder 101

If you'd like to watch a demonstration of all the steps that go into building an Appcues flow, including some handy tips and tricks, check out this webinar focused on our Flow Builder. 

The pattern types that make flows

A flow is made up of steps, and each one of those steps will be one of four pattern types: Modals, Slideouts, Hotspots, and Tooltips.

View live pattern examples here!

Big, screen-takeover experiences. Because they have more space, they are great for giving users context at the start of the flow.

Read more about how we've used them to welcome and motivate users, announce new features, or give your users a "choose your own adventure" onboarding experience.

Slideouts

Smaller, less intrusive way to communicate your message. Great for announcing smaller releases, collecting product feedback, or driving users to specific actions.

Hotspots

Helpful guideposts in your product. Great for "passive" feature discovery. Use hotspots to provide your users with on-demand guidance or tips, or point out smaller UI changes.

Hotspots are unique in that you can have several visible on the page at the same time, although only one at a time can be expanded.

Tooltips

Next action pointers. Tooltips are best used to direct sequences and walk-throughs. With tooltips, you might point out a useful feature on your site or tell users where to click next.

Back to top


Step settings

The presentation and behavior of each step in your flow can be customized using step settings. Here's a lightning-quick tour of the options in the step settings panel.

  • Theme: choose which theme to apply to that step (or step group).
  • Position (slideouts only): select where on the screen the slideout should display.
  • Backdrop (slideouts and tooltips only): add a backdrop to the step (for making sure the user is able to focus on it).
  • Progress bar (modals and slideouts only): display a horizontal bar for users to track progress through the flow.
  • Skippable: allow the user to dismiss this step (exits the entire flow).
  • Beacon (hotspots and tooltips only): style the point the step is anchored on.
  • Alignment (hotspots and tooltips only): customize the arrow that points to the beacon.
  • Placement (hotspots and tooltips only): change where on the page the step appears. For more on anchoring steps to elements on the page, check out our doc on CSS selectors.
  • Progress on click of (tooltips only): while not a visible setting in the step settings, tooltips that don't have a button with a "Next" action will automatically be set to progress when the element they're pointing to is clicked.  

Adding additional steps

When creating a new step, you can choose to add it to the current step group or create an entirely new step group. Functionally, there are a few differences between these two options. For a detailed breakdown, check out our doc on Groups and Step-Groups.

Back to top


Adding components to a step

Components are what you put into each step and are how you make the flow content  yours. Add images, videos, text, buttons, survey options, and even custom HTML to your steps. Just choose the option from the menu to get started. After adding an element, you can re-size it as well.

Once added to your step, components can also be styled using the options in the Appcues Builder, in Themes, or by adding custom CSS to a theme. Read more about that topic in the guide to styling flow content.

Back to top

Component guides

Our goal is to make working with components in the Appcues Builder easy. But some components have advanced options, so we have specific guidelines for them below.

Working with buttons

Modals, Slideouts, Tooltips, and Hotspots support custom buttons.

You can use custom buttons to:
  • Move users to the next step in your flow. 👍
  • Direct users to a specific path (inside your app) or URL (outside your app).
  • Direct users to a custom step in the current step group (good for creating choose-your-own-adventure experiences). Learn more about branching logic.
  • Trigger a different flow (also good for self-direction around an app).
  • Track custom events and update user properties (which you can use for creating segments and goals, and targeting flows).

NOTE: Buttons with a "Previous step" action only work within the step group. You cannot use this action to go back to a different step group.

Custom buttons cannot be used to create new user properties but  can be used to update existing properties. If you select the option to "update user properties" this will update any existing user properties, but will not create a new property based on the custom button being pressed. Buttons can, however, be used to create a new event.

By default, these buttons will adopt the styles set in the theme. To change the button background color and button font color use the options in the Builder, or edit your theme's colors. When creating a button, you can also modify the alignment, margins, styling, and add a handful of button actions.

Working with videos and GIFs

You can add videos and GIFs to any pattern type - and we recommend you do! They are a great way to explain workflows visually.

To add a GIF: add an 'image/gif' component, and then upload the GIF. You can re-size or move it around the step from there.

To add a video: add a new 'video' component, and then paste in the embed code from a web video service. We explicitly support Wistia, Vimeo, and YouTube embeds, other services are supported using the HTML using 'iframes'. Check out the below video for a short tutorial on how to embed videos inside Appcues.

If you're running into issues with adding videos to your flow, please try to use a fallback option for the embed. This should be an embed code that includes minimal javascript and is an iFrame. Here's an example of what that might look like:

<iframe src="//fast.wistia.net/embed/iframe/avk9twrrbn" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" allowfullscreen mozallowfullscreen webkitallowfullscreen oallowfullscreen msallowfullscreen width="620" height="349"></iframe><script src="//fast.wistia.net/assets/external/E-v1.js" async></script>

Adding Full-Screen YouTube Videos

To allow the option for full-screen mode, add the below snippet in the HTML section within the iframe embed link (provided by YouTube):

allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" oallowfullscreen="true" msallowfullscreen="true"><iframe>

Working with Input Components

Input comments allow your users to provide information in various ways. For more information on these components check out our Creating Forms & Surveys guide.

Working with Custom HTML

When our component options aren't enough to achieve your design, or when you want to add content from other platforms to your steps, use the Custom HTML option.

You can add markup to a Custom HTML component, but we only support embeds from Calendly, Fleeq, Pulsemotiv, Typeform, and HubSpot. If you'd like to see another provider supported, please reach out.

Please note: For security reasons, we do not support JavaScript in Custom HTML blocks (outside some whitelisted partners). Most embedded content will require using an iframe embed.

The HTML editor will sanitize all input to prevent malicious content. This has an effect if you need to use JSON in HTML attribute values. You will need to use special formatting for these values so that they are rendered properly. All JSON values must have double quotes that are part of the JSON string replaced with &quot;. For example, myJsonAttribute="{"key":"value"}" must be entered into the HTML editor as myJsonAttribute="{&quot;key&quot;:&quot;value&quot;}"

Back to top


Building a flow across pages

If you're working on a flow that goes across different pages of your app (or if the URL will change as users navigate through the flow), there are a few key topics to review: 

Changing pages while building a flow

The Appcues Builder has two modes:
  1. Build - The default mode, for adding steps and editing content. While in this mode, certain interactions may be blocked on your app so that you can work on your flow without interruption.
  2. Navigate - This mode allows you to navigate to another page, as well as interact with your app. It is also helpful in surfacing dynamic elements on your page, such as a dropdown menu.

When you're ready to add steps on a new page, change to navigate mode by clicking the navigate button in the lower left of the builder next to the flow's name.

This will allow you to navigate as though the builder is closed. Go to the next page as your user would, or paste in a new URL. To continue building, click  Switch back to Build mode at the bottom of the screen.

Back to top

Page change settings

After navigating to a new page and creating a step, a page change will be added automatically. Page changes define how your user will get to the next page in the flow.

There are two types of page changes:
  1. Redirect Automatically - the user will be taken directly to a URL. Redirects are best when the user will click a link or button inside the step to navigate them, for example, a "Next" button in a modal or tooltip.
  2. Let Them Navigate - the user will navigate themselves to the page. This option is best when the user will need to interact with your app to move to the next step of the flow, or when the next step is on a dynamic/unique URL.

To update the settings for a page change, select the redirect step from the bottom bar. In the settings modal, you can set the URL where the next step will be shown. By default, it will be set to the URL you built the content on.

Building Across Dynamic or Personalized URLs

In some cases, the URLs on your site will be personalized for every user. For instance, if a URL is created dynamically with the ID for their account, or for the ID of the item they are looking at, etc. In that case, there are two options for getting that set up:

Using Wildcards (Let the user navigate only)

Use an asterisk * as a wildcard token in place of personalized information. This option is available for Let them navigate only.

For example, instead of:
<a href="http://appcues.com/account/123456/new">http://appcues.com/account/123456/new</a>
you can use: 
<a href="http://appcues.com/account/*/new">http://appcues.com/account/*/new</a>

If a user navigates to http://appcues.com/account/123456/new, the let them navigate step will see that it matches the wildcard criteria and will complete. Likewise, if a different user navigates to http://appcues.com/account/654321/new, the let them navigate step will still complete.

Note: The wildcard format works by checking a specific URL (where the user actually navigates to) against itself to see if it matches. The wildcard cannot be used to  redirect a user automatically because a user's browser will not know what specific characters it should use to replace the *.

Using custom properties for dynamic links 

You can use user properties in both your Redirect Automatically and Let Them Navigate page changes. You can also use them when creating links or custom buttons.  Simply insert the user property name inside two curly braces, and the user property will function as a variable.

User properties can be included using double curly brackets, for example:
<a href="http://appcues.com/user/guru">http://appcues.com/user/guru</a>
Could be achieved using the firstName user property: 
<a href="http://appcues.com/user/{{firstName}}">http://appcues.com/user/{{firstName}}</a>

Back to top


Building on Dynamic Elements

To place hotspots and tooltips on dynamic elements:
  1. Click to reposition your tooltip/hotspot or click on 'Place tooltip on element' from the builder side menu.
  2. When you have the tooltip/hotspot, hold shift to interact with the page.
  3. Place the tooltip or hotspot on the now-exposed element.

Things to keep in mind:

  • Hotspots work independently from each other and will appear at once as a group: if any hotspots in your flow are on dynamic elements, all other hotspots will appear first and continue to persist (unless clicked) until the dynamic element is exposed. 
  • Tooltips are sequential and will always launch in order: if your first tooltip is hidden on a dynamic element, the entire flow will not appear until that element is visible to your end-user
  • In the editor, when your element is not exposed you will see an error message that states "Element not found" -- you can still edit your text/HTML and when your element is again exposed, the tooltip or hotspot will re-position itself onto it. Preview your flow to verify that your tooltip or hotspot is attached to the right element (click the eye icon in the bottom right of your editor to preview the current flow or group)
  • While most hotspots and tooltips can attach to most dynamic elements, we don't currently support elements that appear and disappear upon hover

Placing multiple hotspots on a dropdown is not a great experience for your customers, especially because the dropdown might be closed and they will not be able to advance to the next step in the flow. Consider having a singular hotspot, at least, to let them know to open the dropdown first.


Tying it all together

While building, you can preview how a specific step or entire flow will behave by using the  Preview option. Preview is great for making sure all the steps in the flow work together just how you intended.

You can find Preview in the builder bar (look for the 👁️ icon). Head to the guide on testing flows for more.

Once you've got the basics down, the video below can help you bring it all together.

Back to top


Submit feedback on this doc ➤

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.