Skip to content

Fullstory

Fullstory’s behavioral data platform helps technology leaders make better, more informed decisions. By injecting digital behavioral data into their analytics stack, Fullstory’s patented technology unlocks the power of quality behavioral data at scale–transforming every digital visit into actionable insights.

This integration is maintained by Fullstory

About this integration

You can leverage Fullstory insights in Braze to build moment-to-moment pictures of a user’s website or app experience to deliver hyper-contextual messaging. Fullstory’s Session Summary API makes it possible to capture detailed metadata on a user’s browsing behavior for use in Braze messaging, which is particularly powerful when leveraged in a multi-step messaging journey like a Canvas.

The real-time value of Fullstory’s Session Summary data is best leveraged through Connected Content. By using connected content in a Canvas Context step, you can store Fullstory’s data throughout a user’s Canvas journey for use in any subsequent Canvas steps. This also avoids the need to write this data to a Braze user profile through custom events or attributes.

In the following example, Canvas Context data is leveraged in an Agent AI Canvas step to generate the optimal message to encourage a user to pick back up an abandoned cart. However, you can leverage the data to personalize the message directly, to determine the user’s journey via audience paths, or to determine the copy or assets used in subsequent messaging steps.

Use cases

Diagram showing Fullstory integration use cases with Braze

Prerequisites

Before you start, you need the following:

Requirement Description
A Fullstory Session API Authorization Token See Step 1 below.
A Braze Connected Content Authorization Token enabled See the note below on Early Access
A Braze Canvas Context Step See the note below on Early Access
Enabled Braze AI Agent Step See the note below on Early Access

Integrating Fullstory

Step 1: Set up Fullstory for Session Summary API enablement

A: Retrieving the Auth Token for the Session Summary API endpoint

To create a Fullstory API key, navigate to the Fullstory platform, then Settings > API Keys. Select the Standard permission level, and immediately copy the key value, as it appears only once.

B: Creating a session summary Profile ID

Following Fullstory’s guidance, create a session summary profile using the dedicated endpoint. This is where you define what sort of data you want the Session Summary response to provide to Braze. In the response to this request, Fullstory provides a Session “Profile ID”. This Profile ID is a key component of the connected content request body used in the following use case.

Step 2: Create the Connected Content Token Auth

  1. In Braze, navigate to Settings > Workspace Settings > Connected Content > Add Credential > Token Authentication.

  2. Name the authentication “fullstory”.

  3. Add the Header key “Authorization”. Supply the Header value Fullstory provided in the previous step.

  4. Under Allowed Domain, submit “api.fullstory.com”.

Screenshot of Braze showing the Edit Credential fields

Use case: Leverage Fullstory Session Summary data and Braze Canvas Context steps and AI Agents to create dynamic message journeys

Using Fullstory’s Activation Streams, you can trigger Braze Canvases immediately after key user interactions. The power of this integration lies in the unique client_session_id (accessible via {{canvas_entry_properties.${client_session_id}}}), which the system passes automatically from Fullstory to Braze. This ID acts as a key, allowing Braze to fetch the complete Session Summary of exactly what the user experienced.

By leveraging Canvas Context steps and Connected Content, you can use this ID to make an API request to Fullstory, retrieve the session data, and store it as a variable for use later in the journey.

Screenshot of Braze Canvas Context step showing the context variable `summary_result` being created and populated with a connected content call to Fullstory, to retrieve a session summary

With the Authorization token created earlier, use the following request structure to pull the Session Summary data.

1
2
{% connected_content https://api.fullstory.com/v2/sessions/{{canvas_entry_properties.${client_session_id} | url_encode}}/summary?config_profile=[YOUR-FULLSTORY-PROFILE-ID] :auth_credentials fullstory :save summary_result %}
{{summary_result | as_json_string }}

At this stage, the canvas can access the response to the Connected Content call, which contains the entire message payload for a user’s session.

Example Payload from Session Summary API
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
    "response": {
        "primary_goal": "User attempted to update payment method.",
        "issues_encountered": [
            "Received 'invalid card number' error twice.",
            "Clicked 'Submit' button multiple times with apparent frustration (based on event patterns)."
        ],
        "final_action": "Navigated away from payment page to dashboard.",
        "reason_for_termination_suggestion": "Could not update payment method successfully.",
        "help_pages_visited": [
            "/help/payment-errors"
        ]
    },
    "response_schema": {
        "type": "OBJECT",
        "properties": {
            "primary_goal": {
                "type": "STRING",
                "description": "A summary of the user's main objective during the session."
            },
            "issues_encountered": {
                "type": "ARRAY",
                "description": "A list of problems or errors the user faced.",
                "items": {
                    "type": "STRING",
                    "description": "A description of a single issue."
                }
            },
            "final_action": {
                "type": "STRING",
                "description": "The last significant action the user took before the session ended."
            },
            "reason_for_termination_suggestion": {
                "type": "STRING",
                "description": "A suggested reason for why the user ended their session."
            },
            "help_pages_visited": {
                "type": "ARRAY",
                "description": "A list of URLs for help or documentation pages the user visited.",
                "items": {
                    "type": "STRING",
                    "description": "The URL of a help page."
                }
            }
        },
        "required": [
            "primary_goal",
            "issues_encountered",
            "final_action",
            "reason_for_termination_suggestion",
            "help_pages_visited"
        ]
    }
}

You can leverage any of the data available in the object above using the context Liquid tag later in the user’s Canvas journey. The following steps show how you can use this data in an AI Agent Canvas step.

Create an AI Agent that can analyze Fullstory’s payloads and produce appropriate copy for your use case

Braze’s agents guidance outlines how Braze users can create AI Agents. By inserting an AI Agent step into a Canvas triggered by Fullstory, and including the Canvas Context step outlined above, users can feed their AI Agent Fullstory’s session summary data, for a wide range of purposes.

In this example, we use this data to allow the AI Agent to generate appropriate message copy for use in a content card, which can encourage the user to return to their abandoned basket.

Screenshot of Braze Agent Context creator with the prompt

Use the same name for the Context Liquid tag created in this step as the context Liquid tag used in the AI Agent step created earlier.

The prompt required for your use case varies, but for our best practices for creating effective agent prompts, see Writing Instructions in Creating Agents.

In your canvas, select an AI Agent step and then select the “Session Context” agent created from the drop-down menu. Save the output as a variable, in this case “message”, which you can place into message copy by using the Liquid tag {{context.${message}.message}}.

Screenshot of Braze Agent Context Canvas step with the prompt

Create a message step that leverages the AI Agent-created copy. Use the Liquid tag in this step.

New Stuff!