How to Search Custom User Data

As you may have read in the FS.identify() and FS.setUserVars() articles, you have the ability to pass custom data into FullStory via the JavaScipt API. This article will go into depth about how you can use the power of FullStory OmniSearch to find specific events and sessions within FullStory.

Not only is FullStory search useful in searching for the most recent custom field data, but you can also search for historical custom field events. There's a bit of nuance to getting it right, so let's take a deep dive:

Custom Fields and the User Profile

When you send custom fields to FullStory, the data will show up in the User Profile:


The values for the fields correspond to the most recent event that set that custom field. We call this data the "user tip" because this is the tip—or most recent—of the data for this user. 

In the example above for Jane Doe, "Reeses" was the most recent event for the "Favorite Snack" field. The call to set this may have looked like:

FS.setUserVars({"favoriteSnack_str": "Reeses"})

Keep in mind that it may take a few minutes for the user tip data to be indexed and show up in the user profile in FullStory.

Searching Custom Fields in the User's Profile

When you do a search for a custom field in FullStory from within OmniSearch, you'll be searching for data that matches the User Profile.


Notice how the Favorite Snack custom field becomes part of the User Filter section of the search results:



This data corresponds to the User Profile that we looked at in the previous section of this article.

User Filters and Event Filters

When you do a search in FullStory, you'll notice User Filters and Event Filters.


User Filters 

As explained earlier, the criteria in the User Filters section correspond to the data in the User Profile as it exists now, what we call the "user tip data". This part of the search always corresponds to the latest state of the data. User Filters are not affected by the time constraints (e.g. "Past month") in the top left because User Filters only looks at the current state of the user profile data, not what it may have looked like in the past. (It is possible to search for user profile data in the past, which we'll explore further below).

Event Filters

Event Filters provide a way to search for data related to the events that happened during a FullStory session. These events include visited pages, clicked elements, Rage Clicks, etc. Unlike User Filters, the criteria in Event Filters are affected by the time constraints in the upper left. So for example, if your time box is Yesterday, you'll only see events that happened yesterday.

User Filters with Event Filters

Following the example in the screenshot above, we're saying:

Show me all users who have a "Favorite Snack" value of "Reeses" right now....

....who clicked an element with the text "Purchase" within the past month

The User Filter is not constrained by time—it's always current—but the Event Filter, is constrained by time.

Searching for Past Custom Field Data

Using Event Filters, you can "scope" the search to look for past custom field data. Here's an example:


In the above example, note that we're using an Event Filter to look for "Any Activity". We refined the event to set the scope of the search, which allows us to search for the value of a custom field at some time in the past. This is because, when we're in the Event Filters section, we're searching for the actual events when the custom fields were set, not the current tip of user profile, as is the case with User Filters.

In the above screenshot, note how we're searching for when "Order Item" had the value "Cherries". Contrast this to the screenshot at the very top of the page, where you can see how the latest value—the one stored in the User Profile—is currently Mangocados. By using event search to search for data in the past, we're able to go beyond just the user tip.

Custom Vars and FS.log

One limitation to keep in mind when searching for custom field data in the Event Filters is that the FullStory UI when watching a session doesn't currently tell you when a particular custom field value was captured. You can trust that the event did in fact happen within the session, but it may be difficult to tell exactly when it happened when watching the session. That being said, if you call FS.log() at the same time and with the same data as FS.setUserVars(), you'll be able to see the data in the FullStory console during playback. Here's an example:

function setUserVarsAndLog(data){

setUserVarsAndLog({"favoriteFood_str": "Bananas"})

Running the above code would show up like this within the FullStory console:


Going Beyond the User Profile

You can unlock many potential use cases for custom fields when you go beyond the User Profile data and begin using custom field data for search as well. Here are a few custom field ideas that, if implemented, would unlock new search opportunities:

  • Note when a user saw an error message. You would then be able to search for sessions when a particular error message was seen.
  • Note when a particular product feature was utilized. This would let you construct segments based on product usage.
  • Note when a customer has a particular attribute. For example, if you wanted to capture account state, you could search for events where "Account State" was "In Trial".

With the power of custom fields and OmniSearch, you can take full control of what becomes searchable within FullStory.

Need to get in touch with us?

The FullStory Team awaits your every question.

Contact us