All Skills

E
$npx skills add fullstorydev/fs-skills --skill fullstory-getting-started

Fullstory Getting Started Guide

🎯 START HERE: This is the definitive entry point for Fullstory implementation. If you're unsure where to begin, you're in the right place.

πŸ€– AGENT NOTE: Do NOT load all skills into context. If the user's request is unclear, ask what they want to focus on before loading additional skills. See "Key Takeaways for Agent" section below for loading strategy.


How Core Skills Work: SKILL.md First

Every core skill follows a three-file pattern. You always start with SKILL.md for concepts, then go to the platform-specific file for implementation code.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  CORE SKILL FILE STRUCTURE                                                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  πŸ“– SKILL.md (START HERE)                                                   β”‚
β”‚  β”œβ”€β”€ Platform-agnostic concepts                                             β”‚
β”‚  β”œβ”€β”€ API reference and parameters                                           β”‚
β”‚  β”œβ”€β”€ Best practices and anti-patterns                                       β”‚
β”‚  β”œβ”€β”€ When to use this API                                                   β”‚
β”‚  └── Links to SKILL-WEB.md and SKILL-MOBILE.md                             β”‚
β”‚                                                                             β”‚
β”‚           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                             β”‚
β”‚           β–Ό                                   β–Ό                             β”‚
β”‚                                                                             β”‚
β”‚  🌐 SKILL-WEB.md                       πŸ“± SKILL-MOBILE.md                   β”‚
β”‚  JavaScript/TypeScript                 iOS (Swift/SwiftUI)                  β”‚
β”‚  React, Vue, Angular                   Android (Kotlin/Compose)             β”‚
β”‚  Next.js, Svelte, etc.                 Flutter (Dart)                       β”‚
β”‚  Implementation code                   React Native                         β”‚
β”‚  Framework patterns                    Implementation code                  β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example: Using the Analytics Events Skill

  1. Read fullstory-analytics-events/SKILL.md β€” Learn event naming, property types, rate limits, best practices
  2. Then read the implementation file for your platform:
    • Web β†’ SKILL-WEB.md for JavaScript/TypeScript code
    • Mobile β†’ SKILL-MOBILE.md for iOS/Android/Flutter/React Native code

Mobile Sequencing: Which Skills, In What Order?

For mobile implementations, the mobile-instrumentation-orchestrator helps you understand which skills to implement in what sequence:

Privacy Controls β†’ User Identification β†’ Page Properties β†’ Analytics Events β†’ Logging

The orchestrator doesn't replace reading SKILL.md files β€” it tells you which SKILL.md files to read and when, then routes to the appropriate SKILL-MOBILE.md sections for implementation.


Understanding the Skill Architecture

The Fullstory Skills Repository (FSR) is organized in layers. Understanding this architecture helps you find the right guidance quickly.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  FULLSTORY SKILLS ARCHITECTURE (Start at Top, Work Down)                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  CORE SKILLS (API Foundation) ← START HERE                            β”‚ β”‚
β”‚  β”‚  fullstory-identify-users, fullstory-analytics-events, etc.           β”‚ β”‚
β”‚  β”‚  β†’ Complete API reference and implementation guidance                 β”‚ β”‚
β”‚  β”‚  β†’ SKILL.md: Platform-agnostic concepts and best practices            β”‚ β”‚
β”‚  β”‚  β†’ SKILL-WEB.md: JavaScript/TypeScript implementation                 β”‚ β”‚
β”‚  β”‚  β†’ SKILL-MOBILE.md: iOS, Android, Flutter, React Native               β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό orchestrated by                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  META SKILLS (Strategy Layer)                                          β”‚ β”‚
β”‚  β”‚  fullstory-getting-started (YOU ARE HERE)                             β”‚ β”‚
β”‚  β”‚  fullstory-privacy-strategy, universal-data-scoping-and-decoration    β”‚ β”‚
β”‚  β”‚  mobile-instrumentation-orchestrator                                  β”‚ β”‚
β”‚  β”‚  β†’ Expert guidance on using core APIs together effectively            β”‚ β”‚
β”‚  β”‚  β†’ Decision frameworks: what data, where, when                        β”‚ β”‚
β”‚  β”‚  β†’ Implementation sequencing (which core skills in what order)        β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό guided by                              β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  INDUSTRY SKILLS (Domain Expert Layer)                                 β”‚ β”‚
β”‚  β”‚  fullstory-banking, fullstory-ecommerce, fullstory-healthcare, etc.   β”‚ β”‚
β”‚  β”‚  β†’ Industry-specific privacy requirements and regulations             β”‚ β”‚
β”‚  β”‚  β†’ Domain-specific data capture patterns                              β”‚ β”‚
β”‚  β”‚  β†’ Compliance guidance (HIPAA, PCI, GLBA, GDPR)                       β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                    β”‚                                        β”‚
β”‚                                    β–Ό enhanced by                            β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  FRAMEWORK SKILLS (Enhancement Layer)                                  β”‚ β”‚
β”‚  β”‚  fullstory-stable-selectors, fullstory-test-automation                β”‚ β”‚
β”‚  β”‚  β†’ Cross-platform tooling: stable identifiers, test generation        β”‚ β”‚
β”‚  β”‚  β†’ Optional enhancements for automation and testing readiness         β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Skill Layer Reference (Top to Bottom)

LayerPurposeWhen to UseEntry Point
1. CoreComplete Fullstory API expertise across web and mobileNeed to implement a specific API (identify, events, properties, etc.)Always SKILL.md first, then SKILL-WEB.md or SKILL-MOBILE.md
2. MetaExpert guidance on using APIs togetherPlanning implementation, deciding where data goes, sequencingSKILL.md (orchestrates which core skills to use)
3. IndustryDomain-specific compliance and patternsWorking in regulated industries or need vertical-specific guidanceSKILL.md (references core skills for implementation)
4. FrameworkCross-platform tooling and automationNeed stable selectors for testing/AI, want test automationSKILL.md, then SKILL-WEB.md or SKILL-MOBILE.md

Core Skills: The API Foundation

Each core skill provides complete guidance for one Fullstory API. Always start with SKILL.md for concepts, then read the platform-specific implementation file.

Core SkillAPIStart HereThen Implementation
fullstory-identify-usersUser identificationSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-anonymize-usersSession anonymizationSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-user-propertiesUser attributesSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-page-propertiesPage/screen contextSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-element-propertiesInteraction contextSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-analytics-eventsCustom eventsSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-privacy-controlsMask/exclude elementsSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-user-consentGDPR/CCPA consentSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-capture-controlPause/resumeSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-observe-callbacksLifecycle hooksSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-loggingSession loggingSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
fullstory-async-methodsPromise-based APIsSKILL.mdSKILL-WEB.md or SKILL-MOBILE.md

Meta Skills: Expert Orchestration

Meta skills don't replace core skills β€” they help you use core skills effectively.

Meta SkillPurpose
fullstory-getting-startedEntry point β€” skill architecture, navigation, web quick start
mobile-instrumentation-orchestratorMobile sequencing β€” which core skills to implement and in what order (routes to SKILL-MOBILE.md files)
fullstory-privacy-strategyPrivacy expert β€” what to capture, mask, exclude, hash (works with fullstory-privacy-controls)
universal-data-scoping-and-decorationData placement expert β€” user vs page vs element vs event (works with property skills)

Industry Skills: Domain Expertise

Industry SkillRegulationsKey Concerns
fullstory-bankingPCI, GLBA, SOXFinancial data exclusion, amount ranges
fullstory-healthcareHIPAA, HITECHPHI exclusion, BAA requirements
fullstory-ecommercePCI, CCPA, GDPRConversion tracking, payment exclusion
fullstory-gamingGaming licenses, AMLResponsible gaming, wager exclusion
fullstory-saasSOC 2, GDPRFeature adoption, customer data
fullstory-travelPCI, GDPRBooking flows, ID exclusion
fullstory-media-entertainmentCOPPA, GDPREngagement, children's privacy

Framework Skills: Enhancement Tooling

Framework SkillPurpose
fullstory-stable-selectorsStable identifiers for Fullstory search, testing, and AI agents (CUA)
fullstory-test-automationGenerate test automation from decorated codebases

How to Navigate: Common Questions

QuestionGo ToThen
"How do I implement user identification?"fullstory-identify-users/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"How do I track events?"fullstory-analytics-events/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"How do I protect sensitive data?"fullstory-privacy-controls/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"What data should I capture vs mask vs exclude?"fullstory-privacy-strategy/SKILL.md(strategy, then core skills)
"Should this be a user property, page property, or event?"universal-data-scoping-and-decoration/SKILL.md(strategy, then core skills)
"What order should I implement mobile APIs?"mobile-instrumentation-orchestrator/SKILL.md(sequencing, routes to SKILL-MOBILE.md)
"I'm in healthcare/banking/etc β€” what rules apply?"fullstory-{industry}/SKILL.md(guidance, references core skills)
"How do I add stable selectors for testing/AI?"fullstory-stable-selectors/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"How do I generate tests from my decorated codebase?"fullstory-test-automation/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md

Mobile SDK Installation

For mobile SDK installation and initial setup, Fullstory provides comprehensive official guides. Use these for SDK setup, then return to the core skills' SKILL-MOBILE.md files for API usage guidance.

Official Installation Guides by Platform

PlatformInstallation GuideWhat It Covers
Android (Kotlin)Getting Started with Android Data CaptureComprehensive Android setup: Gradle, initialization, ProGuard, configuration
+ Jetpack ComposeGetting Started with Jetpack ComposeAdditional Compose-specific setup (use with Android guide above)
iOS (UIKit/Swift)Getting Started with iOS Data CaptureComprehensive iOS setup: CocoaPods/SPM, initialization, Info.plist
+ SwiftUIIntegrating Fullstory into a SwiftUI AppAdditional SwiftUI-specific setup (use with iOS guide above)
FlutterGetting Started with Flutter Mobile Appspub.dev setup, Dart initialization
React NativeGetting Started with React Native Capturenpm/yarn setup, native linking
Cordova/CapacitorGetting Started with Cordova or CapacitorPlugin installation, hybrid app setup

Android: Agent-assisted setup

For Android, you can use the in-repo setup guide so the AI companion can apply the changes for you:

  • File: SKILL-ANDROID.md (in this folder)
  • Flow: The agent will prompt you for your Fullstory Org ID, then insert the correct snippets into your project’s project/build.gradle (or settings.gradle), app/build.gradle, and initialization code as needed.
  • Use this when: You want copy-paste-free setup and are starting a new Android integration.

After the agent applies the edits, continue with the core skills’ SKILL-MOBILE.md files for API usage (identify, events, properties, privacy).

After SDK Installation

Once the SDK is installed and capturing data:

  1. Read the core skill SKILL.md for the API you need (e.g., fullstory-identify-users/SKILL.md)
  2. Then read SKILL-MOBILE.md for platform-specific implementation code
  3. Use mobile-instrumentation-orchestrator/SKILL.md for recommended implementation order

Note: The official guides above cover SDK installation. The skills repository covers API usage β€” how to identify users, track events, set properties, handle privacy, etc.


Web Quick Start Guide

Note: This section provides a web quick start overview. For complete API guidance, always read the relevant core skill's SKILL.md first, then its SKILL-WEB.md for detailed implementation code.


The Fullstory Web API Ecosystem

Complete API Reference (Browser v2)

APIMethodPurposeCore Skill
IdentityFS('setIdentity', { uid, properties })Identify known usersfullstory-identify-users
AnonymizeFS('setIdentity', { anonymous: true })End identified sessionfullstory-anonymize-users
User PropertiesFS('setProperties', { type: 'user', ... })Update user attributesfullstory-user-properties
Page PropertiesFS('setProperties', { type: 'page', ... })Set page contextfullstory-page-properties
Element Propertiesdata-fs-* attributesCapture interaction contextfullstory-element-properties
EventsFS('trackEvent', { name, properties })Track discrete actionsfullstory-analytics-events
ObserversFS('observe', { type, callback })React to FS lifecyclefullstory-observe-callbacks
LoggingFS('log', { level, msg })Add logs to sessionfullstory-logging
ConsentFS('setIdentity', { consent: bool })Control capture consentfullstory-user-consent
Capture ControlFS('shutdown') / FS('restart')Pause/resume capturefullstory-capture-control
Async MethodsFS('*Async') variantsPromise-based API callsfullstory-async-methods

API Categories

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        FULLSTORY BROWSER API v2                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  IDENTITY & USER                                                     β”‚
β”‚  β”œβ”€β”€ setIdentity (uid)        - Identify users                      β”‚
β”‚  β”œβ”€β”€ setIdentity (anonymous)  - Anonymize users                     β”‚
β”‚  β”œβ”€β”€ setIdentity (consent)    - Manage consent                      β”‚
β”‚  └── setProperties (user)     - Update user attributes              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  CONTEXT & PROPERTIES                                                β”‚
β”‚  β”œβ”€β”€ setProperties (page)     - Page-level context                  β”‚
β”‚  └── Element Properties       - Interaction-level context           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  EVENTS & ACTIONS                                                    β”‚
β”‚  └── trackEvent               - Discrete business events            β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  PRIVACY & CONTROL                                                   β”‚
β”‚  β”œβ”€β”€ fs-exclude / fs-mask     - Element privacy classes             β”‚
β”‚  β”œβ”€β”€ shutdown / restart       - Capture control                     β”‚
β”‚  └── consent                  - User consent management             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  LIFECYCLE & UTILITIES                                               β”‚
β”‚  β”œβ”€β”€ observe                  - Lifecycle callbacks                 β”‚
β”‚  β”œβ”€β”€ log                      - Session logging                     β”‚
β”‚  β”œβ”€β”€ getSession               - Get session URL                     β”‚
β”‚  └── *Async variants          - Promise-based methods               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Web Snippet Installation

For snippet installation and configuration, see the official Fullstory documentation:

Getting Started with Web β€” Comprehensive guide covering:

  • Snippet installation (HTML, npm @fullstory/browser, Google Tag Manager, Segment, Tealium)
  • Configuration options (_fs_org, _fs_namespace, _fs_capture_on_startup)
  • Browser SDK usage

After Snippet Installation

Once the snippet is installed and capturing data:

  1. Read the core skill SKILL.md for the API you need (e.g., fullstory-identify-users/SKILL.md)
  2. Then read SKILL-WEB.md for JavaScript/TypeScript implementation code
  3. Use the API reference below to find the right skill for your use case

Note: The official guide covers snippet installation. The skills repository covers API usage β€” how to identify users, track events, set properties, handle privacy, etc.


Web Implementation Order

Phase 1: Foundation
β”œβ”€β”€ 1. Install snippet
β”œβ”€β”€ 2. Implement privacy controls (fs-exclude, fs-mask)
β”œβ”€β”€ 3. Implement user identification (login flow)
β”œβ”€β”€ 4. Implement anonymization (logout flow)
└── 5. Set up basic page properties (pageName)

Phase 2: Context
β”œβ”€β”€ 6. Add user properties (plan, role, company)
β”œβ”€β”€ 7. Enhance page properties (search terms, filters)
└── 8. Add element properties (product IDs, positions)

Phase 3: Events
β”œβ”€β”€ 9. Implement key business events
β”œβ”€β”€ 10. Add funnel tracking
└── 11. Add feature usage tracking

Phase 4: Advanced
β”œβ”€β”€ 12. Set up observers for session URL
β”œβ”€β”€ 13. Implement consent flows (if GDPR required)
β”œβ”€β”€ 14. Add error logging
└── 15. Implement capture control (if needed)

Phase 5: Enhancement (Optional)
β”œβ”€β”€ 16. Add stable selectors (fullstory-stable-selectors)
└── 17. Generate test automation (fullstory-test-automation)

Minimum Viable Implementation

For a basic integration, implement these APIs:

// 1. Identify users on login
FS('setIdentity', {
  uid: user.id,
  properties: {
    displayName: user.name,
    email: user.email
  }
});

// 2. Set page context
FS('setProperties', {
  type: 'page',
  properties: {
    pageName: 'Dashboard'
  }
});

// 3. Track key events
FS('trackEvent', {
  name: 'Feature Used',
  properties: {
    featureName: 'export'
  }
});

// 4. Anonymize on logout
FS('setIdentity', { anonymous: true });

Privacy First: Three Privacy Modes

Before capturing any data, understand the three privacy modes:

Privacy Mode Comparison

ModeCSS ClassWhat Leaves DeviceEvents CapturedUse For
Exclude.fs-exclude❌ Nothing❌ NoPasswords, SSN, PHI, card numbers
Mask.fs-mask⚠️ Structure onlyβœ… YesNames, emails, addresses
Unmask.fs-unmaskβœ… Everythingβœ… YesPublic content, products

Quick Privacy Decision

Is this data regulated (HIPAA, PCI, GLBA)?
     β”‚
     YES β†’ fs-exclude (nothing leaves device)
     β”‚
     NO
     β”‚
     β–Ό
Is this PII (name, email, address)?
     β”‚
     YES β†’ fs-mask (structure captured, text replaced)
     β”‚
     NO
     β”‚
     β–Ό
Is this public/business data?
     β”‚
     YES β†’ fs-unmask or default (everything captured)

Privacy by Industry Quick Reference

IndustryDefault RecommendationIndustry Skill
HealthcareUse Private by Default mode; explicit unmask onlyfullstory-healthcare
BankingExclude financial data; mask PIIfullstory-banking
GamingExclude amounts; mask user infofullstory-gaming
E-commerceUnmask products; mask checkout PII; exclude paymentfullstory-ecommerce
SaaSUnmask features; mask user contentfullstory-saas
TravelUnmask search/booking; mask traveler PII; exclude IDsfullstory-travel
MediaUnmask content; mask profilesfullstory-media-entertainment

Quick Decision Guide

"Where should I put this data?"

Is this data about WHO the user is?
(plan, role, company, signup date)
     β”‚
     YES β†’ User Properties (setIdentity or setProperties type: 'user')
     β”‚
     NO
     β”‚
     β–Ό
Is this data the same for the entire page?
(search term, product ID on detail page, filters)
     β”‚
     YES β†’ Page Properties (setProperties type: 'page')
     β”‚
     NO
     β”‚
     β–Ό
Is this data specific to one element among many?
(product ID in a grid, position in list)
     β”‚
     YES β†’ Element Properties (data-fs-* attributes)
     β”‚
     NO
     β”‚
     β–Ό
Is this a discrete action/event?
(purchase, signup, feature used)
     β”‚
     YES β†’ Event (trackEvent)

Deep Dive: See universal-data-scoping-and-decoration/SKILL.md for comprehensive guidance.

Quick Reference Table

I want to...Use this APICore Skill
Link sessions to a usersetIdentityfullstory-identify-users
Add user attributessetProperties(user)fullstory-user-properties
Set page contextsetProperties(page)fullstory-page-properties
Track what was clickedElement Propertiesfullstory-element-properties
Track a conversiontrackEventfullstory-analytics-events
Handle logoutsetIdentity(anonymous)fullstory-anonymize-users
Get session URLobserve or getSessionfullstory-observe-callbacks
Implement GDPR consentsetIdentity(consent)fullstory-user-consent
Pause recordingshutdown/restartfullstory-capture-control
Log errors to sessionlogfullstory-logging
Protect sensitive dataCSS classesfullstory-privacy-controls

Industry-Specific Quick Start

Banking/Financial Services

// Use internal customer ID, never SSN or account numbers
FS('setIdentity', { uid: customer.customerId });

// Exclude all financial data, use ranges if needed
// Add fs-exclude to: balances, transactions, account numbers
FS('trackEvent', {
  name: 'transfer_completed',
  properties: {
    transfer_type: 'internal',
    amount_range: '$100-$500'  // Never exact amount
  }
});

β†’ See fullstory-banking/SKILL.md for complete guide

E-commerce

// Rich product tracking is valuable
FS('setProperties', {
  type: 'page',
  properties: {
    pageName: 'Product Detail',
    productId: product.id,
    productName: product.name,
    price: product.price  // Prices are fine in e-commerce
  }
});

// Track conversions with full details
FS('trackEvent', {
  name: 'purchase_completed',
  properties: {
    order_id: order.id,
    revenue: order.total,
    item_count: order.items.length
  }
});

β†’ See fullstory-ecommerce/SKILL.md for complete guide

Healthcare

// Extremely limited capture - use anonymous sessions if possible
FS('setIdentity', { uid: generateSessionId() });  // No linking to patient

// Exclude EVERYTHING medical - masking is NOT sufficient
// Use Private by Default mode
// Only track: navigation, errors, page load times

β†’ See fullstory-healthcare/SKILL.md for complete guide

SaaS

// Rich user identification for feature adoption
FS('setIdentity', {
  uid: user.id,
  properties: {
    displayName: user.firstName,
    plan: organization.plan,
    role: user.role,
    org_id: organization.id
  }
});

// Track feature usage comprehensively
FS('trackEvent', {
  name: 'feature_first_use',
  properties: {
    feature_name: 'report_builder',
    days_since_signup: user.daysSinceSignup
  }
});

β†’ See fullstory-saas/SKILL.md for complete guide


Testing Your Integration

1. Verify Snippet Installation

Open browser console and check:

typeof FS !== 'undefined'  // Should be true
FS('getSession')           // Should return session URL

2. Check Privacy Controls

In browser DevTools:

  • Verify .fs-exclude classes on sensitive elements
  • Verify .fs-mask classes on PII fields
  • Watch a session replay and confirm masked/excluded content

3. Check User Identification

After login, verify in Fullstory:

  • Session shows user's displayName
  • User can be found by search
  • User properties appear in session details

4. Validate Events

After triggering events:

  • Check Events panel in Fullstory session
  • Verify event properties are captured correctly
  • Test event-based searches work

Troubleshooting

Fullstory Not Loading

if (typeof FS === 'undefined') {
  console.error('Fullstory not loaded - check snippet installation');
}

Common causes:

  • Snippet not in <head>
  • Wrong org ID
  • Ad blocker blocking script
  • Content Security Policy blocking

User Not Identified

console.log('Identifying user:', user.id);
FS('setIdentity', { uid: user.id });

Common causes:

  • uid is undefined or null
  • setIdentity called before FS loads
  • Identity called with wrong syntax

Privacy Not Working

Common causes:

  • CSS class not on element (check DevTools)
  • Child element needs its own class
  • Conflicting CSS selector rules in Settings

Key Takeaways for Agent

When helping developers with Fullstory implementation:

1. Don't Load All Skills β€” Ask First

Context efficiency is critical. There are 12+ core skills, multiple meta/industry/framework skills. Loading them all would bloat the context window unnecessarily.

If the user's intent is unclear, ASK:

  • "What are you trying to implement today?" (identity, events, privacy, etc.)
  • "What platform are you building for?" (web, iOS, Android, Flutter, React Native)
  • "Are you in a regulated industry?" (healthcare, banking, insurance, etc.)

Then load only the relevant skills:

  • 1-2 core skills based on what they're implementing
  • 1 industry skill if applicable
  • Framework skills only if they mention testing/selectors

2. SKILL.md First β€” Always

  • Core skills: Always read SKILL.md first for concepts, then SKILL-WEB.md or SKILL-MOBILE.md for implementation
  • Meta skills: Provide orchestration and strategy, route TO core skills
  • Industry skills: Provide domain guidance, reference core skills for implementation
  • Framework skills: Same pattern β€” SKILL.md first, then platform-specific

3. Skill Architecture Summary

  • Core skills: Complete API guidance β€” SKILL.md (concepts) + SKILL-WEB.md + SKILL-MOBILE.md (implementation)
  • Meta skills: Expert orchestration β€” help decide WHICH core skills to use and in WHAT ORDER
  • Industry skills: Domain-specific compliance β€” reference core skills for HOW to implement
  • Framework skills: Enhancement tooling β€” stable selectors, test automation (same file pattern)

4. Privacy First

  • Ask what industry/regulations apply
  • Point to appropriate industry skill
  • Default to more restrictive privacy in regulated industries

5. Implementation Order Matters

  • Start with privacy controls
  • Then identification (login/logout)
  • Add page properties (pageName is crucial for Journeys)
  • Then events and element properties

6. Skill Loading Strategy

Minimal load for common scenarios:

User IntentLoad These Skills Only
"Help me identify users"fullstory-identify-users/SKILL.md + platform file
"Help me track events"fullstory-analytics-events/SKILL.md + platform file
"Help me with privacy"fullstory-privacy-controls/SKILL.md + platform file
"I'm building mobile"mobile-instrumentation-orchestrator/SKILL.md (it routes to others)
"I'm in healthcare"fullstory-healthcare/SKILL.md + fullstory-privacy-controls/SKILL.md
"I need stable selectors"fullstory-stable-selectors/SKILL.md + platform file
"I'm not sure what I need"Ask the user before loading anything

7. Common User Questions

QuestionStart WithThen
"How do I link sessions to users?"fullstory-identify-users/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"Where should I put this data?"universal-data-scoping-and-decoration/SKILL.md(routes to appropriate core skills)
"How do I track conversions?"fullstory-analytics-events/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"What should I mask vs exclude?"fullstory-privacy-controls/SKILL.mdSKILL-WEB.md or SKILL-MOBILE.md
"What order for mobile?"mobile-instrumentation-orchestrator/SKILL.md(sequences which core SKILL.md β†’ SKILL-MOBILE.md)

8. Routing Pattern

For any implementation question:

  1. Start with SKILL.md of the relevant core skill (concepts, API reference, best practices)
  2. Then platform-specific β€” SKILL-WEB.md or SKILL-MOBILE.md for implementation code
  3. Add industry guidance if in a regulated vertical (references core skills)
  4. Add framework skills for enhancements (stable selectors, test automation)

Web SDK Documentation

Mobile SDK Installation Guides (Help Center)

Mobile SDK API Documentation (Developer Portal)

Help Center


This getting started guide is the definitive entry point for Fullstory implementation. For detailed API guidance, see core skills. For mobile implementation, see the mobile instrumentation orchestrator. For industry-specific requirements, see industry skills.