Every app contains a set of key mobile moments (e.g., registering a new account, login, purchase) that can either delight or frustrate a user. Mobile app users are notoriously fickle – in fact, market research shows that 75% of customers will abandon an app within 90 days. To keep your users engaged, you must focus your team on the most important flows in your app to ensure they are delivering the expected user experience. When a login fails or a checkout freezes, your team needs visibility into the root cause, so they can resolve the issue quickly. Use Apteligent’s user flows feature to monitor, prioritize, and troubleshoot critical flows within your app.
Imagine you are using an app to search for a flight, but after you tap “Search”, you’re stuck staring at your phone waiting and waiting for results. Then, it gets worse – when you tap the “Book Flight” button, the app crashes. Now you’re wondering, “did my payment go through? Did the reservation hold?”
What do you do next? Chances are you won’t try the same app again. You might try their website, or worse, use a competitor’s service. You can easily imagine how quickly apps can lose revenue and customers over a single poor user experience.
Three Ways to Improve User Experience Using User Flows
You can use Apteligent to monitor these key flows in your app to ensure your users don’t have those bad user experiences. Here are three ways to use user flows to improve your app’s user experience.
1. Monitor High Level App Performance Metrics – Prioritize Issues
Leverage the user flow Summary Page to monitor KPIs for your app and prioritize what your team works on before your next release. Monitor key metrics such as Success Rate, Fail Rate, and Revenue at Risk for key flows in your app such as “app load time”, “book a flight,” or “search.” Tracking these metrics over time and comparing them between app versions is key to improving user experience.
Filter and sort by date and failure rate to see the top five failed user flows for that period. Prioritize your user flows based on Volume, Fail Rate or Revenue at Risk to focus your efforts on issues that are critical and require immediate attention.
Tip: A common metric companies track is “App Load Time.” The time it takes for an app to load is often highly correlated to user engagement. By tracking you can measure how engaged and how deeply they are, tracking does not INSURE engagement. (“App Load” is a user flow that is automatically tracked in your app without adding any code to your app.)
2. Prioritize Crashes by User Flow
Some crashes are more important than others. Drill into a specific user flow such as “Book a Flight.” Through the “Root Cause Analysis” tab, you’ll be able to pinpoint all of the crashes that have prevented a user from booking their flight and prioritize fixing those crashes.
Tip: To optimize your user experience, take the top ten crashes that are failing important user flows and fix them every sprint.
3. Fix Issues Quickly
Now that we’ve identified an important user flow to fix, let’s see how to reproduce the issue so that it can be fixed as quickly as possible. Use the “Breadcrumb Trails” tab to view all of the individual user sessions that failed and all of the user events within each session.
As you can see from the screenshot above, you can reproduce a user’s experience and see exactly what an individual user was doing during a failed user flow. In the example above, we see a user searched for a flight, waited over three seconds for results to show up, tried to book a flight, lost internet connectivity, and the app crashed. Note that user flows also enable you to measure performance metrics related to the responsiveness of the UI (e.g. screen transitions). Will talk more about this in another article.
Common causes of failures such as network calls and changes to internet connectivity are tracked automatically and you can log your own custom events as well. Further pinpoint the issue using diagnostics such as the app version, device type and OS version. All of this granular information allows a QA team to easily recreate issues and developers to quickly fix issues.
Implementing User Flows
Now that you’ve seen how you can use user flows to create KPIs, prioritize crashes in key user flows, and fix issues quickly through breadcrumbs, let’s talk about how easy userflows are to set up.
To monitor a user flow (like booking a flight), you just need to add two lines of code in your app: beginUserflow and endUserflow. With these two lines of code, you’ll automatically monitor any failures due to a crash, how long it takes for a user to complete that flow, as well as how many succeeded and failed.
To initiate a user flow within your app, call the beginUserflow method. At this point, the Apteligent SDK begins timing the duration of the user flow and waits for it to succeed, fail, or be cancelled by the user.
// Android Example Crittercism.beginUserflow("Booking a Flight");
The endUserflow method terminates the userflow successfully, and should be called when the user has completed the path (ex: the flight has been successfully purchased).
// Android Example Crittercism.endUserflow("Booking a Flight");
You can track multiple user flows concurrently – just make sure you give each user flow a unique name (i.e. Checkout, Login, My Userflow).
You can further customize user flows by tracking additional types of failures (timeouts, manual failures, and cancelled user flows) and attaching metadata to user flows such as Revenue at Risk.
This feature is covered in greater depth in part two of this post.
With just a few lines of code, Apteligent user flows can give you and your team insight into the most critical moments within your app. Sort and filter user flows to properly allocate development resources and resolve the most important issues faster, ultimately increasing user retention and revenue.
To see Apteligent user flows in action click here.