Developer Experience
Signal-First Architecture · Developer Experience
Fullstory
×
Adobe

The Agentic Developer
Experience

Deploy Fullstory through Adobe Tags. Name your DOM with data-fs-element. Decorate it with FS Skills properties. Full Capture ingests everything. AI agents navigate your DOM, query your data, and stream only the signals Adobe needs — without a single custom tag or sprint.

Adobe Tags Extension FS Skills Fullstory MCP New Adobe AEP

One decoration pass.
Everything follows.

AEM BEM class names are invisible to every tool that needs to understand your site — analytics platforms, test frameworks, monitoring agents, and AI. The same problem, five times over.

FS Skills solves it once. Name each element with data-fs-element, then add five structured properties. Fullstory Full Capture ingests every interaction natively. Adobe gets behavioral signals without a tagging sprint. AI agents navigate your live DOM and query your captured data using the same vocabulary your developer wrote.

And now — the Fullstory MCP connects any AI coding assistant directly to your captured user behavior, in private beta.

Your DOM is invisible to every tool that needs to understand it.

AEM component class names like cmp-teaser__action-link tell your stylesheet everything — and everything else nothing. The same opacity problem recurs for every tool your organization relies on.

Without Semantic Decoration

Opaque by default

Every tool that needs to understand your DOM is flying blind. The data exists — the meaning doesn't.

  • Analytics platforms match on fragile CSS selectors that break every deploy
  • Test automation writes brittle selectors tied to internal class naming conventions
  • Monitoring has no vocabulary to describe component state or hydration failure
  • AI coding agents see generic generic generic in the a11y tree — un-navigable
  • Adobe XDM schema requires a developer sprint per new behavioral signal
With FS Skills Decoration

Semantic once. Readable everywhere.

One decoration pass gives every downstream tool a shared vocabulary. The DOM finally means something.

  • Fullstory Full Capture ingests every interaction natively — no event tags
  • Test selectors target [data-id="Add to Cart"] — stable across deploys
  • data-state exposes component health in real time
  • AI agents navigate by name through the a11y tree — no training data required
  • Adobe signals computed and streamed server-side — business self-serves
Name it. Then describe it.

FS Skills works in two layers. The first gives every meaningful element a human-readable name — readable by CUAs, session replay, metrics builders, and humans reviewing source. The second adds structured properties that power analytics, testing, monitoring, and Adobe.

This has always been the Fullstory way. The industry is only now catching up — AI needs semantics to understand your DOM. FS Skills was built for this. The same attributes that make your site legible to humans make it navigable by agents.
1
Semantic Naming
Human-readable identity — read by Fullstory, CUAs, session replay, and the metrics builder
data-fs-element Names the element everywhere Fullstory surfaces it. The anchor that CUAs navigate through the a11y tree. No data payload — pure semantic identity.
2
Structured Properties
Typed, queryable business data — ingested by Full Capture, powering analytics, testing, monitoring, and Adobe signals
data-component Component type — used in Fullstory metrics, Adobe XDM schema fields, and test selectors
data-id Element identifier within a component — stable selector for test automation
data-section Page region context — powers section-scoped analytics and behavioral funnels
data-position Ordinal position within a list or grid — enables rank-based click analysis
data-state Runtime component state — tracks loading, error, and hydration health automatically
Before — Opaque AEM Component product-card.html
<div class="cmp-teaser__content">
  <h2 class="cmp-teaser__title">Running Shoes</h2>
  <button class="cmp-teaser__action-link">Add to Cart</button>
</div>
After — Named + Decorated product-card.html
// Layer 1 — semantic name (CUA-navigable, human-readable)
<div data-fs-element="Product Card"
     // Layer 2 — structured properties (analytics, testing, Adobe)
     data-component="Product Card"
     data-section="Category Grid"
     data-position="3"
     data-state="in-stock">
  <h2 data-id="Product Title">Running Shoes</h2>
  <button data-fs-element="Add to Cart"
          data-id="Add to Cart"
          role="button">Add to Cart</button>
</div>
Write it once. Every tool benefits.

The decoration pass is a one-time investment that compounds across every function in your organization. Analytics, engineering, QA, ops, marketing, and AI — all reading from the same semantic vocabulary.

📡
Fullstory Analytics
Every interaction indexed automatically. Build segments and metrics using your element names — no event tags, no replay configuration, no schema setup.
🤖
CUA Navigation
data-fs-element surfaces in the a11y tree as the node name. AI coding agents navigate to button "Add to Cart" without training data, selectors, or maintenance.
🧪
Test Automation
[data-id="Add to Cart"] survives CSS renames, clientlib rebuilds, and style system updates. FS Skills grades decoration maturity 0–4 and generates selectors to match.
💚
Component Monitoring
data-state tracks component health in real time. Stuck in loading? Hydration failure? Caught automatically — before a user rage-clicks.
🚀
Adobe XDM Signals
Fullstory Data Layer computes behavioral properties from the semantic DOM. Anywhere Activations stream them server-side. New signal = new XDM field. No sprint.
🧠
Fullstory MCP
AI coding assistants query frustrations, pull session replays, and diagnose real user issues — using the same element names your developer wrote into the DOM.
The business self-serves. No dev bottleneck.

Today, every new behavioral signal Adobe needs requires a developer sprint: write a tag, map an event, deploy a rule. Fullstory Anywhere eliminates that cycle entirely.

From tagging backlog to self-service signals

Fullstory Full Capture + Anywhere Activations replace event-by-event tagging with a computed, schema-driven pipeline

Before — Every signal requires a sprint
📋

Business requests a signal

"We need to know when users see the out-of-stock modal"

Ticket created
⚙️

Developer writes the tag

Event listener → alloy sendEvent → XDM field → Adobe Tags rule

1–2 sprint cycles
🔁

Repeat × 47

Each new signal starts the cycle over. Backlog grows. Insight lags reality.

Engineering bottleneck
After — Add one XDM field. Done.
Full Capture ingests everything The semantic DOM is already decorated. Every interaction is already a structured event. Nothing to tag.
Data Layer computes behavioral properties Frustration signals, component error rates, search exit rates — derived automatically from Full Capture data.
Anywhere Activations stream server-side The business adds a field to the XDM schema. The signal flows to Adobe immediately. No PR, no deploy, no sprint.
Migrate JS interactions to first-class events Every data-fs-element interaction becomes a structured behavioral event, enriched with business context. Your XDM schema grows with your understanding.
Your AI now speaks Fullstory.

The Fullstory MCP connects any MCP-compatible AI coding assistant — Claude, Cursor, VS Code Copilot — directly to your captured user behavior. Query frustrations, pull session replays, and diagnose real issues without leaving your IDE. And because your DOM is decorated with data-fs-element, the agent speaks your business language — not anonymous div selectors.

The feedback loop: MCP discovers friction on Add to Cart via discover_groups. Subtext navigates to the live page, takes an a11y snapshot, reads the decorated elements, and diagnoses the issue — all through the same semantic vocabulary FS Skills was designed for. Agent finds the bug. Agent opens the PR.
mcp.json Claude · Cursor · VS Code
{
  "mcpServers": {
    "fullstory": {
      "type": "http",
      "url":  "https://api.fullstory.com/mcp/fullstory"
    }
  }
}

Auth via OAuth on first connection. Subsequent connections are automatic. Request early access at developer.fullstory.com/mcp/

Analytics Natural language → data
build_segment Natural language → segment definition
compute_metric Execute metrics and scope results
get_pages List page definitions with regex filtering
StoryAI Opportunities Frustration signals
discover_groups Surface top frustration signals across your product
get_opportunity_stats Live-computed stats for a specific signal
classify_opportunity Triage signals through session sampling
Sessions Real user evidence
get_sessions Sessions matching a segment + direct replay URLs
get_session_events Full chronological event transcript
Four steps. No sprint required.

The full agentic developer experience deploys incrementally. Each step delivers value independently and compounds with the next.

The Agentic Developer Experience

From zero to fully agentic — each tier is deployable independently and adds to the one before it.

Step 1

Deploy the Fullstory extension for Adobe Tags

Install via Adobe Exchange. Configure your org ID. Publish. Fullstory is live — capturing every interaction across your entire Adobe Tags property. No code, no tags, no sprint.

Step 2

Name every meaningful element with data-fs-element

One attribute per element. FS Skills guides your developers — or their AI coding assistants — through the process. Named elements appear in session replay, the metrics builder, and the a11y tree immediately.

Step 3

Decorate with FS Skills structured properties

Add data-component, data-id, data-section, data-position, data-state. Test selectors stabilize. Monitoring activates. Adobe XDM signals start flowing via Anywhere Activations — no developer bottleneck.

Step 4

Enable the Fullstory MCP — private beta

Connect your AI coding assistant to your captured user data. Query frustrations. Pull session replays. Diagnose real issues without leaving your IDE. Learn more at developer.fullstory.com/mcp