Roll Your Own Integration

Didn’t find what you needed in either our supported or manual integrations? Take advantage of our Webhooks or Browser and Server APIs to create any integration that you need!

Add and Configure Fullstory

You know how to get the Fullstory snippet running on your site, but do you want to expose configuration for the snippet at some higher layer? Have a look at the first few lines of your data capture snippet, which should be similar to the following:

window['_fs_debug'] = false;
window['_fs_host'] = 'fullstory.com';
window['_fs_org'] = 'ABC123';
window['_fs_namespace'] = 'FS';

The variables set in these lines control the behavior of the data capture snippet:

  • _fs_debug - Toggles Fullstory debug mode. Set this to true if you want to see detailed console logs, and lots of them.
  • _fs_host - For successful data capture, please do not change this value; it should always be fullstory.com. 
  • _fs_org - The ID of the org or account into which data should be captured.
  • _fs_namespace - Used to change the namespace for the Fullstory API, to prevent namespace conflicts.

If you are building a tool that needs to deploy the snippet in a multi-tenant environment, you can collect values for the above variables and use them to generate customized snippets for each tenant.

When keeping copies of the data capture snippet in a source code or other repository, please be aware that the snippet does change from time to time, typically when we add new features. Older versions of the snippet will continue to capture data successfully, but newer features will not be available unless the snippet is updated.

Connect Fullstory on the Client

The Fullstory Browser API provides functions that you can use to integrate Fullstory into other platforms that drive your business.

Get a link to the currently captured session

You can use FS('getSession') to grab a link to the current session being captured. It's a great way to connect Fullstory to support tools, but the possibilities are endless. 

// This is an example script - don't forget to change it!
FS('observe', {
type: 'start',
callback: () => {
const sessionUrlFromBeginning = FS('getSession');
const sessionUrlAtTime = await FS('getSession', { format: 'url.now' });
}
});

// you can also modify the invocation with 'Async'
// this will return a Promise and await the response
const sessionUrlAtTime = await FS('getSessionAsync', { format: 'url.now' });

Send event data to Fullstory

You can use events to send all kinds of data specific to your site and your users' behavior to Fullstory. These events can drive any manner of session filters and segments that you design. FS('trackEvent', { name, properties }); is the browser API function you can use to create custom events. For example, you may want to search for sessions where users added specific products to their online shopping cart. You can do this by instrumenting the Cart button click with an event.

FS('trackEvent',
name: 'Product Added',
properties: {
cart_id: '130983678493',
product_id: '798ith22928347',
sku: 'L-100',
category: 'Clothing',
name: 'Button Front Cardigan',
brand: 'Bright & Bold',
variant: 'Blue',
price: 58.99,
quantity: 1,
coupon: '25OFF',
position: 3,
url: 'https://www.example.com/product/path',
image_url: 'https://www.example.com/product/path.jpg'
}
});

Add user profile data to Fullstory

You can use FS('setIdentity', { uid, properties }) and FS('setProperties', { type: 'user', properties }); to build rich profiles of your users in Fullstory and search for sessions that match that profile data.

FS('setProperties', { 
type: 'user',
properties: {
displayName : 'Daniel Falko',
email : 'daniel.falko@example.com',
pricing_plan : 'free',
popup_help : true,
total_spent : 14.50
}
});

Connect Fullstory on the Server

Use the Fullstory Server API to build server-to-server integrations.

You can use POST /v2/users to capture user profile data:

POST https://api.fullstory.com/v2/users

{
"uid": "xyz123",
"display_name": "Daniel Falko",
"email": "daniel.falko@example.com",
"properties": {
"pricing_plan": "paid",
"popup_help": true,
"total_spent": 14.55
}
}

You can use POST /v2/events to capture custom events:

POST https://api.fullstory.com/v2/events

{
"session": {
"id": "123456789:123456789"
},
"name": "Support Ticket",
"timestamp": "2022-03-15T14:23:23Z",
"properties": {
"id": 424242,
"priority": "Normal",
"source": "Email",
"title": "Account locked out"
}
}

(Both User data and Event data can be batch imported into Fullstory with the server API).

You can use the /sessions call to get a list of sessions for a given email:

#!/usr/bin/python
# TODO: Obtain API key and user email to lookup.
headers = {'Authorization':'Basic {}'.format(api_key)}
response = requests.get('https://api.fullstory.com/sessions/v2?email='+user_email, headers=headers)
json_data = json.loads(response.text)
for session in json_data:
 # TODO: Do something with the session links.

Need to get in touch with us?

The Fullstory Team awaits your every question.

Ask the Community Technical Support