Most onboarding specialists recommend that your onboarding sequence integrates and personalizes content based on what a user has or has not done within your app.

Of course, the big problem for a lot of us is that there's a big blank space when we talk about what users are doing in-app because building tools to track this takes time away from building the core components of our app, so it often doesn't happen or the cost in manpower and hardware to support it is too steep.) Ideally, as developers we need something inexpensive that can be dropped in and forgotten about expect for when we want to answer questions about user activity and user experience. The last thing we want is one more thing to maintain or update.

We ran into this a lot at Kahuti. We had some basic metrics built into our dashboard about how people were using the system. Things like new posts, new comments, number of users, clicks on ads and so on. Periodically we would need to add new metrics and it didn't take long to realize that our approach was flawed and that living in our dashboard didn't make sense because we needed a full application and UI dedicated exclusively to being able to capture, segment, slice, query and analyze user activity at an individual level--and in a flexible, extensible way that didn't add a lot of overhead.

My early philosophy with Kahuti was to get a MVP out the door and I'd write manual SQL queries to gather metrics. As things evolved I realized how many questions and theories were coming up that we couldn't answer or prove because we simply hadn't captured the data that could answer those questions. This is why I designed UserSignals to be greedy and try to capture as much data as possible because having the data means we can analyze it--and we could always filter it later!

We wanted something that was as easy to install as Google Analytics, just requiring a JavaScript snippet to be added to the application's master template for data to be automatically collected. In a bit of irony we ended up completely removing Google Analytics once we reviewed the data that was coming back from UserSignals because of privacy concerns and because the data coming from UserSignals was much more actionable and accurate.

Running UserSignals for several days on a production application yielded a treasure trove of data all correlated to individual users. This meant that we could create all sorts of strategies based on what users had or had not done in the system. We also automatically logged any browser errors and several other metrics like page speed that could reveal negative factors that we didn't anticipate during onboarding.


  1. The goal of creating personalized onboarding campaigns is to achieve more success during onboarding and ultimately to increase our conversion rate, whatever we define a conversion as.
  2. Personalizing means that we can formulate strategies for specific users/behaviors or groups of users/behaviors that help guide them through the app, discover new sections/features or educate them about advanced capabilities in sections they have shown an interest in.
  3. However, we need data both to inform and to deliver any sort of personalized onboarding. This is where UserSignals fits in, collecting and organizing the data automatically so you can use it when you're ready.
  4. Finally, once the data is collected we need to decide how to use it in productive ways. We have included a number of standard reports and segments within UserSignals to provide some instant insights but this is only the start and how UserSignals can be used within your ecosystem is very flexible.