What is Data Export?

A note on Data Export

Access to Data Export is dependent on your FullStory plan. Please contact your Account Executive or support@fullstory.com to learn more. 

Additional note on Data Export

Looking to go deep with Data Export? Check out The Guide to Data Export. The guide will take you on a deep dive of why you would use Data Export, technical implementation details, and examples to explore with your own data. You can also find SQL recipes for querying Data Export data in the Data Export Cookbook.

When the FullStory JavaScript loads, every object, page event and interaction on your site is automatically recorded and indexed. This system of data collection is what allows our empathy inducing playback to be paired with a powerful search feature. We also use the information we’re collecting to bubble-up relevant, instant feedback for a wide audience, such as Rage Clicks, Error Clicks, and Dead Clicks.

Our primary purpose at FullStory is to provide the best tool possible for you to improve your customer’s experience. Since we’re indexing so many events, we’re aware that there is some pretty powerful data under the hood and much of it could be applied more specifically to your organization. We’re also aware that the programmers, data scientists, and software engineers you have on staff may be salivating at the thought of getting their hands on the hard data we’re collecting! So we designed a feature with your top priorities in mind.

What is Data Export?

The Data Export provides a periodic, raw data extract of events that have been recorded for your organization and an API endpoint to retrieve the data extracts. 

Find a detailed overview of the Data Export via FullStory's Guide to Data Export, which includes a case study. See the Walkthrough for Building a Feature Usage Dashboard.

What information is available with Data Export?

See below for a full list of Data Export contents.

How do I use the information from Data Export?

The possibilities are endless! This data set can be used on its own or to supplement existing models that aim to analyze user behavior. You can simply use the data for providing your marketing team with a point and click analysis tool or you can plug it into your fraud detection (e.g.) algorithm to add extremely powerful data to your model. The point is, you know best how the data is most relevant to your business needs. 

How often are Data Export files updated?

The data is provided to you in the form of bundles. By default, a bundle contains data about events that occurred during a period of 24 hours. This period can be changed to anywhere between 30 minutes to 24 hours. This bundle will be available to download 24 hours after the last event in this bundle occurred. For example, if your bundle period was set to 6 hours, a data export bundle corresponding to events that happened on Jan 1 between 9:00 AM - 3:00 PM will be available to download on Jan 2 at 3:00 PM.

Data Exports are generated “on-demand,” meaning the data in the JSON bundles are fetched directly from our servers at the time that the bundle is requested. Note that because of swan song bundles and the on-demand nature of data export, exports can vary slightly depending on when the files are requested. The 24 hour delay for downloading data export files helps to ensure that more swan song bundles have been accounted for before the data export download begins.

How does user deletion interact with Data Export?

Data Exports are generated "on-demand," meaning the data in the JSON bundles are fetched directly from our servers at the time that the bundle is requested. Therefore, if you delete `Joe Smith` today and export data files tomorrow, Joe Smith's data will not be in those data files, as FullStory no longer has the user's data to include in the file. 

If you are fetching data export files daily, the data that you pull down and store on your servers may include personal data. This means when a user requests deletion, you may also need to delete their data from the data warehouse where you are storing FullStory's data exports. 

How do I access Data Export files?

There are two ways to access your Data Export extracts. 

  1. Via API: We have exposed an API endpoint to allow a more constant fetch of data. 
    1. You can also use this open source tool called Hauser to easily import data into Redshift
  2. Manually: An extract  can be downloaded from the FullStory app in one click. The data will be in JSON format and the file will be gzipped. You will have access within FullStory to the previous 100 extracts:


How far back in time can I export data?

Data export availability matches the session retention length that you currently subscribe to. This means that if your account is configured for 2 months of session retention, you will be able to export data for sessions that are up to two months old. It is important to note that once sessions expire and are deleted, they are truly not recoverable.


External Integrations

Data Export Contents

User/Session Fields

Name Export Field Name Description
User Id UserId A unique identifier for a user cookie on a given device/browser. This ID may be reset if the User clears their cookies, switches devices, changes browsers, etc. This field is not visible within the FullStory UI—see UserAppKey below for more information.
User App Key UserAppKey The user identifier that was passed to FullStory from your system using FS.identify. This field is visible in the FullStory UI as "User ID" when looking at a user's profile.
Individual Id IndvId A unique identifier for the Individual that combines all Users with the same User App Key. For example, if you’ve identified user 123 whenever they visit your site, their Individual will include all of their Sessions across devices, browsers, etc. The IndvdId value is not visible within the FullStory UI, but it is part of the session URL.
Session Id SessionId The identifier for a particular session, within the context of a single user.  Use Session Id and User Id together as a compound key to uniquely identify sessions across all export data.
User Email Address UserEmail The email address that was set via FS.identify or FS.setUserVars.
User Display Name UserDisplayName The display name that was set via FS.identify or FS.setUserVars.
IP Address PageIp The IP address captured at the start of the session.
Custom User Variables (custom var name) If you're passing any user variables into FullStory, we'll include them in the export.  Each additional variable will appear as a separate field in the export file, where the field name is the variable name as provided to the FS.setUserVars function. Note that, if loading export bundles into Redshift or BigQuery with hauser, the custom variable fields are amalgamated into a single JSON document under a field named “CustomVars” prior to import into the export staging table.

For more information about understanding user and session variables, see From Individual, User, and Session ID to replay.

Page Fields

A “page” tracks each instance when a user loaded a page with a particular URL.  The "PageId" is an Id that indicates the page was loaded or refreshed from the web server. A series of events for a single session can have one PageId and multiple PageURLs if it is a Single Page App that loads from the server once (one PageId) and then changes URLs without loading from the server again (a common pattern).

Name Export Field Name Description
Page Id PageId The identifier for a particular page load/refresh, within the context of a single session.  Use Page Id, Session Id, and User Id together as a compound key to uniquely identify pages across all export data.
Page URL PageUrl The full URL of the page on which the given event occurred.
Page Duration PageDuration The total time this User spent on this page during this session (milliseconds).  This is not a running total; every event for a given page will show the same total duration.
Active Page Duration PageActiveDuration The active time (mouse movement, text entry, clicks, etc.) this User spent on this page during this session (milliseconds).   This is not a running total; every event for a given page will show the same total duration.
Page Referrer URL PageRefererURL The page from which the user reached this page.  The referrer may be empty if the user manually entered the page URL, or if the referrer has been scrubbed, etc.


Event Fields

Name Export Field Name Description
Event Time EventStart The absolute time when the event occurred, in UTC, represented as a dateTime from the XML Schema Specification, e.g. 2018-01-04T20:07:11.191Z.
Event Type EventType The type of event that was recorded. Typical types are:
  • “abandon”: A form was abandoned.  Learn more about form abandonment.
  • “change”: The text in a text entry field was changed.  The Event Target Text field will contain the new text value.
  • “click”: An element on the page has been clicked.  The Event Target Text field will contain text of the clicked element, if applicable.
  • “custom”: A custom event that was sent via FS.event
  • “navigate”: a URL change, either to a completely new page or a new hash fragment.
  • “thrash”: The user moved the mouse cursor erratically or in circles.  Learn more about thrashed cursors.
Event Target Text EventTargetText Where applicable, this contains the text of the event target and its child elements. For example, if the user clicked a button that says “Pay now”, the event target text would be “Pay now”.  Long text may be truncated in some cases for performance reasons.
Event Target Selector EventTargetSelectorTok Where applicable, this contains the CSS selector for the event target.  This will be a fully qualified descendant selector, starting from the HTML element, and including all CSS selectors of elements that appear in the DOM when walking from the HTML element through its children to the event target.  Most non-alphanumeric characters within a selector will be encoded, e.g. “.my%2Dclass” rather than “.my-class”.


Behavior Heuristics

For some events, one of a series of modifier fields will be set to provide additional information regarding user behavior.

Name Export Field Name Description
Rage Clicks EventModFrustrated Your customer clicked one or more elements on the page many times in rapid succession, potentially because they were frustrated. For each of the click events in this series of clicks, the numeric value of this field is a running total of the number of clicks that have occurred. It will be zero for click events that were not part of a series of rage clicks.   Learn more about rage clicks.
Dead Clicks EventModDead Your customer clicked something, but nothing happened. Will be 1 for dead clicks, zero for non-dead clicks.
Error Clicks EventModError Your customer clicked something and a console error was generated, either by an actual error occurring, or by logging an error to the console. Will be 1 for error clicks, zero for non-error clicks.
Suspicious Actions EventModSuspicious Your customer entered text or navigated to a URL that was suspicious.  When set to zero, nothing was suspicious.  When 1, it indicates a possible SQL injection attack.  When 2, it indicates a possible cross site scripting attack.  Learn more about suspicious activity detection.


Console Statistics

Name Export Field Name Description
Console Infos/Logs PageNumInfos The number of times the JavaScript function console.log() was called, plus the number of times console.info() was called on the page. This is a running total for the page, and will steadily increase until the user navigates to a new page.
Console Warnings PageNumWarnings The number of times console.warn() was called on the page.  This is a running total for the page.
Console Errors PageNumErrors The number of times console.error() was called, plus the number of JavaScript errors that occurred on the page.  This is a running total for the page.


Environment Fields

Name Export Field Name Description
PageLatLong The latitude/longitude corresponding to this session.  These values are derived using IP geolocation, which is only capable of pinpointing a user’s general area, often just at the city level, not their exact location.
User Agent PageAgent The full user agent string for the system on which this session was recorded.
Browser PageBrowser The browser that was used for this session, as derived from the User Agent. Current possible values: Chrome, Firefox, Internet Explorer, Microsoft Edge, Safari, Opera, Mobile App, Yandex, Robot, Unknown.  New values may be added to this list at a later date.
Device PageDevice The device type that was used for this session, as derived from the User Agent.  Current possible values: Desktop, Mobile, Tablet, Robot, Unknown.  New values may be added to this list at a later date.
Operating System PageOperatingSystem The operating system type that was used for this session, as derived from the User Agent.  Current possible values: Chrome OS, OS X, iOS, Windows, Windows Phone, Linux, Robot, Unknown.  New values may be added to this list at a later date.


Dev Tools Fields

All of the following fields represents the duration (in milliseconds) since the page began to load until the corresponding event was fired.

DOM Content Loaded LoadDomContentTime DOMContentLoaded fires when the initial HTML document has been loaded and parsed. Often this milestone occurs before stylesheets, images, and subframes finish loading, so the DOMContentLoaded event occurs before a page is done painting.
Page Load LoadEventTime The onload event or "Page Load" fires when the whole page and all of its dependent resources have finished loading. Page Load often occurs later, after the point in time when the page is rendered and interactive for a user.
First Meaningful Paint LoadFirstPaintTime The First Meaningful Paint event relates to the moment when the biggest "above-the-fold" layout change has happened and when web fonts have loaded. We believe that this metric relates most closely to a user's experience in terms of perceiving a page to be "loaded".

Need to get in touch with us?

The FullStory Team awaits your every question.

Contact us