Documentation Index
Fetch the complete documentation index at: https://developers.autoplay.ai/llms.txt
Use this file to discover all available pages before exploring further.
Streaming every user click to Autoplay via FullStory Streams
This tutorial sets up a FullStory Stream that fires a webhook to the Autoplay SDK every time a user clicks anything in your product — capturing what they clicked, when, and on which page. Everything is configured inside the FullStory dashboard. No code changes to your frontend are required.Prerequisites
Before starting, confirm the following:- FullStory is already installed and capturing sessions in your product. Verify by running
FS('getSession', { format: 'id' })in the browser console — if it returns a string, capture is active. - Anywhere: Activation is included in your FullStory plan. Streams is available on Enterprise and Advanced plans. Check under Settings → Anywhere → Activation — if the menu item is missing, confirm your plan tier with your FullStory account manager.
- You have Admin or Architect role in FullStory. Required to create and manage Streams.
- You have your Autoplay ingest endpoint URL and auth token. You’ll enter these into the Stream destination in Step 2. Retrieve them from the Autoplay dashboard.
- Check your Activation Quota before going live. Single-event Streams consume 1/100th of an Activation per trigger. At high click volumes this quota can be significant — confirm your limit with your FullStory account manager. See the Activation Quota docs.
Step 1 — Navigate to Streams
In the FullStory dashboard:- Name:
autoplay-every-click - Description:
Streams every user click event to the Autoplay SDK — captures target text, page URL, and timestamp.
Step 2 — Configure the destination
This tells FullStory where to POST the data. Set it up as follows:| Field | Value |
|---|---|
| Destination type | HTTP Endpoint |
| Request Method | POST |
| API Endpoint URL | Your Autoplay ingest URL |
| Authentication | Bearer token (or whichever auth Autoplay requires) |
Get the Autoplay ingest endpoint URL and auth token from the Autoplay SDK setup guide: https://developers.autoplay.ai/recipes/intercom-tutorial
Step 3 — Define the trigger
This is what causes the Stream to fire. You want it to fire on every single click, across every page, for every user.- Under Definition, click Select an event
- Choose Element Clicked
- Do not add any dependent criteria or filters — leaving it empty means it matches every click, not just clicks on specific elements
- Under How often should the definition match? select On every event
“On every event” is critical here. The alternative — “Once per session” — would only fire once per user session regardless of how many times they click. You want Autoplay to receive a signal for every individual click.The definition should look like this when complete:
Step 4 — Configure the field mapping
This defines exactly what data gets sent to Autoplay in each webhook payload. Switch to the JSON view in the Field Mapping section and paste the following:What each field captures
| Field | FullStory source | What it tells Autoplay |
|---|---|---|
target_text | event.0.target_text | The visible text of the element clicked — e.g. "Export CSV", "Save changes". This is the primary signal for the LLM to understand intent. |
element_name | event.0.element_name | The name FullStory assigns to the element — useful when target_text is empty (e.g. icon buttons). |
page_url | event.0.url | The full URL of the page where the click happened. |
timestamp | event.0.event_time | ISO 8601 UTC timestamp of when the click occurred — e.g. "2025-10-21T14:17:34.073Z". |
timestamp_unix | converted from event_time | Unix timestamp version — easier to sort and compare programmatically. |
session_replay_url | event.0.app_url_event | A deep link that opens the FullStory session replay at the exact moment this click happened. Invaluable for debugging. |
user_id | event.0.user_id | The user ID from your system, if setIdentity has been called. Links the click to a known user. |
user_email | event.0.user_email | The user’s email, if provided via setIdentity. |
session_id | device_id + session_id concatenated | The composite {device_id}:{session_id} format required by the FullStory Server API. Pass this value when calling the Sessions API or when keying Autoplay’s context store. |
Whytarget_textandelement_nametogether?target_textcaptures the visible label on the element — the text the user sees.element_nameis the name FullStory uses internally, which is often derived fromaria-label,id, or element attributes when there’s no visible text. Sending both means Autoplay always has a readable identifier even for icon-only buttons or inputs.
Whysession_replay_urlusingapp_url_eventand notapp_url_session? Theapp_url_eventfield deep-links to this specific click in the recording, not just the start of the session. Every payload Autoplay receives has a one-click path to the exact frame where that click happened.
Step 5 — Send a test and verify
Before saving, use the built-in Send Test feature to confirm the connection is working:- Click Send Test
- Under Request, review the sample payload — check the field names match what you configured
- Under Server Response, confirm you see
200 OK
- Double-check the Autoplay endpoint URL for typos
- Confirm the auth token is correct and hasn’t expired
- Make sure Autoplay’s endpoint accepts
POSTrequests withContent-Type: application/json
Step 6 — Save and activate
Click Save. The Stream is now live. Every time any user clicks anything in the product, FullStory will POST a webhook to Autoplay within a few seconds of the click occurring. The payload will contain the clicked element text, the page URL, and the timestamp.What the payload looks like
Here is an example of what Autoplay receives for each click:Verifying clicks are flowing
To confirm end-to-end after saving the Stream:- Open your product in a browser and click around on several elements
- In FullStory, go to Settings → Anywhere → Activation and open the
autoplay-every-clickStream — you should see recent activity in the event log - Check your Autoplay event log to confirm payloads are arriving with the correct
target_textandpage_urlvalues
Iftarget_textis empty for some clicks: This means the user clicked an element with no visible text — for example, an icon button or an image. In these cases fall back toelement_name, which FullStory derives from accessibility attributes. If both are empty, the element has no accessible label and may be worth fixing in the product regardless.
Rate limits and delivery
FullStory does not rate limit outbound Streams. However, your Autoplay endpoint needs to be sized appropriately. If your FullStory account captures 50 sessions per second and every session has frequent clicks, your endpoint could receive a high volume of requests. FullStory will retry failed requests up to 30 times over 5 hours if your endpoint returns a5xx response or times out.
FullStory sends Stream requests from the following IP addresses — whitelist these on your Autoplay endpoint if needed:
- US region:
8.35.195.0/29 - EU region:
34.89.210.80/29
References
- FullStory Streams help doc: https://help.fullstory.com/hc/en-us/articles/360045134554-Streams
- FullStory Streams developer reference: https://developer.fullstory.com/anywhere/activation/streams/












