Documentation

3Guide SDK Installation & Usage

Complete guide to integrating 3Guide into your application. Two complementary bundles Full SDK for guides, chat & copilot, and Tracking SDK for friction analytics & detection. Use one or both.

Overview

3Guide is an AI-first digital adoption platform for B2B SaaS. It ships as two complementary bundles: the Full SDK (guideai.js) for interactive guides, AI chat, browser copilot, and the floating bubble; and the Tracking SDK (guideai-tracking.js) for friction analytics, detection, surveys, announcements, and session recording.

In-App Guides

AI-generated interactive walkthroughs with 6-tier fingerprinting that auto-heals when your UI changes.

Browser Copilot

Always-on AI assistant powered by RAG and your scanned knowledge base. Answers questions and walks users through tasks.

Friction Analytics

Detect rage clicks, dead clicks, and hesitation. 30+ auto-emitted events with PII stripping and AES-256-GCM encryption.

3Guide Platform Overview

3Guide Platform Overview

Full walkthrough of the 3Guide platform — from installation to creating your first guide.

TODO: Record and upload video, then replace videoId

Full walkthrough of the 3Guide platform — from installation to creating your first guide.

3Guide architecture — SDK, Scanner CLI, Dashboard, Browser Copilot, and Backend working together.

3Guide architecture — SDK, Scanner CLI, Dashboard, Browser Copilot, and Backend working together.

Platform architecture

Full SDK (guideai.js) — Guides, AI chat, browser copilot, floating bubble, segmentation, and deep UI analyzer. Handles guide playback, recording, and LLM-powered walkthroughs.

Tracking SDK (guideai-tracking.js) — Friction analytics, all detection modules (rage clicks, dead clicks, form tracking), help hints, announcements, NPS/CSAT surveys, feedback, chips, and session recording. No bubble, chat, guides, or copilot.

Scanner CLI — Analyzes your codebase to build a knowledge base of routes and elements. Supports 8+ frameworks.

Dashboard — Admin UI for creating guides, viewing analytics, managing settings, and accessing API keys.

Chrome Extension — Visual guide builder with element picker and live recording overlay.

Choose Your Bundle

3Guide ships two separate bundles. Pick the one that matches your needs.

Full SDK

guideai.js
Recommended

Interactive guides, AI chat, browser copilot, and the floating bubble. For guide-based onboarding, copilot assistance, and visual walkthroughs.

Includes

  • Interactive guide playback
  • AI browser copilot & chat
  • Floating bubble (drift / crawl)
  • Guide recording & authoring
  • Deep UI analyzer
  • Knowledge base loading
  • Segmentation & targeting
  • NPS & CSAT surveys

Not included

  • -Rage / dead click detection
  • -Form & scroll tracking
  • -Error & performance tracking
  • -Help hints & announcements
  • -Session recording
  • -Feedback prompts
html
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
></script>

Tracking SDK

guideai-tracking.js
Lightweight

Analytics-only bundle. All tracking, detection, and engagement UI without the guide/chat/copilot overhead.

Includes

  • Full event tracking & detection
  • Rage click / dead click detection
  • Help hints & announcements
  • NPS & CSAT surveys
  • Feedback prompts
  • Chips (contextual nudges)
  • Session recording
  • Feature flag support

Not included

  • -Floating bubble
  • -AI chat & copilot
  • -Guide playback
  • -Guide recording
  • -Resource center
  • -Support chat
html
<script
  src="https://cdn.3guideai.com/sdk/guideai-tracking.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
></script>

Which bundle should I use?

Use the Full SDK if you want interactive guides, AI chat, the floating bubble, or browser copilot. It focuses on guide-based onboarding and AI assistance — it does not include friction analytics or detection modules.

Use the Tracking SDK if you need friction analytics, rage/dead click detection, form tracking, error monitoring, session recording, surveys, and announcements — without any guide overlay or chat. Guide-related methods (showGuideById, dismissGuide, startRecording, etc.) are available as no-ops so you can switch bundles without changing your code.

Use both together if you want the full experience — add both script tags and get guides + copilot + analytics + detection. Both bundles expose window.guideai and use the same stub loader pattern.

Bundle comparison

FeatureFull SDKTracking SDK
Guide playback
AI chat & copilot
Floating bubble (drift / crawl)
Guide recording & authoring
Deep UI analyzer
Knowledge base loading
Segmentation & targeting
NPS & CSAT surveys
Chips (contextual nudges)
Basic session events
Full event tracking & batching
Rage / dead click detection
Form tracking
Scroll & engagement tracking
Error & performance tracking
Session recording
Help hints
Announcements
Feedback prompts
Feature flags

1) Install the SDK on your website

Get 3Guide running on your site in three steps.

Quick Start Tutorial

Quick Start Tutorial

Install the SDK, scan your codebase, and deploy your first guide.

TODO: Record and upload video, then replace videoId

Install the SDK, scan your codebase, and deploy your first guide.

1

Scan your project

Run the scanner against your codebase to build your knowledge base. The scanner auto-detects your framework.

bash
npx guideai-scan --key sk_live_YOUR_KEY --dir ./my-app
Terminal output after running the scanner CLI on a Next.js project.

Terminal output after running the scanner CLI on a Next.js project.

2

Add the CDN script to your site

Paste one of these script tags before </body> in your HTML. No npm install or build step required.

Full SDK — guides, chat, copilot, and bubble:

html
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
></script>

Tracking SDK — friction analytics, detection, surveys, and announcements:

html
<script
  src="https://cdn.3guideai.com/sdk/guideai-tracking.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
></script>
3

Identify your users (optional)

Pass visitor and account info so guides can be personalized and targeted.

javascript
window.guideai.initialize({
  visitor: {
    id: "user_123",
    email: "jane@acme.com",
    full_name: "Jane Doe",
    role: "admin",
  },
  account: {
    id: "acme_456",
    name: "Acme Corp",
    planLevel: "pro",
    is_paying: true,
    monthly_value: 299,
  },
});

That's it. With the Full SDK, users will see the floating help bubble, receive in-app guides, and have access to AI chat. With the Tracking SDK, friction analytics, detection, surveys, and announcements start working immediately. Use both together for the complete experience.

The 3Guide bubble appearing on a live site after installation.

The 3Guide bubble appearing on a live site after installation.

Add the CDN

Both bundles are delivered via CDN as IIFE scripts. No npm install or build step required. Just two required attributes on the script tag.

Basic script tag

Choose the bundle that fits your use case.

Full SDK (guides + chat + copilot + bubble):

html
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
></script>

Tracking SDK (analytics-only):

html
<script
  src="https://cdn.3guideai.com/sdk/guideai-tracking.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
></script>

Async stub loader (non-blocking)

Use this snippet to load either bundle without blocking page render. It creates window.guideai immediately and queues method calls until the full script loads. Both bundles use the same stub pattern.

Full SDK async loader:

html
<script>
(function(siteId, publicToken, apiUrl, cdnUrl){
  (function(p, e, n, d){
    var v, w, x, o;
    o = p[d] = p[d] || {};
    o._q = o._q || [];
    o._loaded = false;
    v = ['initialize','identify','updateOptions','pageLoad',
         'markFeature','showGuideById','dismissGuide',
         'validateGuideById','on','destroy','flushNow',
         'clearSession','startRecording','stopRecording',
         'cancelRecording','saveGuide',
         'showNPSSurvey','showCSATSurvey'];
    for (w = 0, x = v.length; w < x; ++w) (function(m){
      o[m] = o[m] || function(){
        o._q[m === 'initialize' ? 'unshift' : 'push'](
          [m].concat([].slice.call(arguments, 0))
        );
      };
    })(v[w]);
    var y = e.createElement(n);
    y.async = true;
    y.src = (cdnUrl || 'https://cdn.3guideai.com') + '/sdk/guideai.js';
    y.setAttribute('data-site-id', siteId);
    y.setAttribute('data-token', publicToken);
    if (apiUrl) y.setAttribute('data-api-url', apiUrl);
    var z = e.getElementsByTagName(n)[0];
    z.parentNode.insertBefore(y, z);
  })(window, document, 'script', 'guideai');
})(
  'site_YOUR_SITE_ID',
  'pk_live_YOUR_TOKEN',
  undefined, // apiUrl (optional)
  undefined  // cdnUrl (optional)
);
</script>

Tracking SDK async loader:

html
<script>
(function(siteId, publicToken, apiUrl, cdnUrl){
  (function(p, e, n, d){
    var v, w, x, o;
    o = p[d] = p[d] || {};
    o._q = o._q || [];
    o._loaded = false;
    v = ['initialize','identify','updateOptions','pageLoad','track',
         'trackFeature','markFeature','on','destroy','flushNow',
         'clearSession','showNPSSurvey','showCSATSurvey'];
    for (w = 0, x = v.length; w < x; ++w) (function(m){
      o[m] = o[m] || function(){
        o._q[m === 'initialize' ? 'unshift' : 'push'](
          [m].concat([].slice.call(arguments, 0))
        );
      };
    })(v[w]);
    var y = e.createElement(n);
    y.async = true;
    // NOTE: Use guideai-tracking.js for tracking-only
    y.src = (cdnUrl || 'https://cdn.3guideai.com') + '/sdk/guideai-tracking.js';
    y.setAttribute('data-site-id', siteId);
    y.setAttribute('data-token', publicToken);
    if (apiUrl) y.setAttribute('data-api-url', apiUrl);
    var z = e.getElementsByTagName(n)[0];
    z.parentNode.insertBefore(y, z);
  })(window, document, 'script', 'guideai');
})(
  'site_YOUR_SITE_ID',
  'pk_live_YOUR_TOKEN',
  undefined, // apiUrl (optional)
  undefined  // cdnUrl (optional)
);
</script>

Full SDK — all optionsguideai.js

The Full SDK script tag with every available attribute.

html
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_abc123"
  data-token="pk_live_xyz789"
  data-api-url="https://api.3guideai.com"
  data-cdn-url="https://cdn.3guideai.com"
  data-bubble-enabled="true"
  data-bubble-position="bottom-right"
  data-bubble-icon="robot"
  data-bubble-mode="drift"
  data-bubble-label=""
  data-widget-mode="guide"
  data-guides-enabled="true"
  data-auto-advance-on-target-click="true"
  data-chip-dismiss-seconds="300"
  data-theme-primary="#6366f1"
  data-theme-background="#ffffff"
  data-theme-text="#111827"
  data-theme-font="Inter"
></script>

Tracking SDK — all optionsguideai-tracking.js

The Tracking SDK script tag with every available attribute.

html
<script
  src="https://cdn.3guideai.com/sdk/guideai-tracking.js"
  data-site-id="site_abc123"
  data-token="pk_live_xyz789"
  data-api-url="https://api.3guideai.com"
  data-cdn-url="https://cdn.3guideai.com"
  data-recording="true"
  data-idle-timeout="20000"
  data-session-timeout-ms="1800000"
  data-batch-size="50"
  data-batch-interval-ms="30000"
  data-geolocation="off"
  data-help-hints="true"
  data-feedback-auto-prompt="true"
  data-feedback-prompt-delay-ms="300000"
  data-feedback-prompt-min-pageviews="10"
  data-announcement-surface="modal"
  data-announcement-frequency="once"
  data-announcement-display-mode="auto"
  data-announcement-auto-show-delay-ms="500"
  data-chip-dismiss-seconds="300"
  data-theme-primary="#6366f1"
  data-theme-background="#ffffff"
  data-theme-text="#111827"
  data-theme-font="Inter"
></script>

Single-page apps (React, Vue, Angular)

The SDK auto-detects route changes in SPAs via the History API and MutationObserver. If you use custom routing you can trigger page loads manually:

javascript
// Manual page_view for custom routing
window.guideai.pageLoad("/dashboard/settings");

Next.js example

Swap guideai.js for guideai-tracking.js if you only need tracking.

tsx
// app/layout.tsx
import Script from "next/script";

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        {/* Full SDK — or use guideai-tracking.js for tracking-only */}
        <Script
          src="https://cdn.3guideai.com/sdk/guideai.js"
          data-site-id="site_YOUR_SITE_ID"
          data-token="pk_live_YOUR_TOKEN"
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

React (Vite / CRA) example

html
<!-- index.html -->
<!DOCTYPE html>
<html>
  <head>
    <title>My App</title>
  </head>
  <body>
    <div id="root"></div>
    <script type="module" src="/src/main.tsx"></script>
    <script
      src="https://cdn.3guideai.com/sdk/guideai.js"
      data-site-id="site_YOUR_SITE_ID"
      data-token="pk_live_YOUR_TOKEN"
    ></script>
  </body>
</html>

Vue / Nuxt example

typescript
// nuxt.config.ts
export default defineNuxtConfig({
  app: {
    head: {
      script: [
        {
          src: "https://cdn.3guideai.com/sdk/guideai.js",
          "data-site-id": "site_YOUR_SITE_ID",
          "data-token": "pk_live_YOUR_TOKEN",
          defer: true,
        },
      ],
    },
  },
});

Plain HTML example

html
<!DOCTYPE html>
<html>
  <head>
    <title>My Website</title>
  </head>
  <body>
    <h1>Welcome</h1>

    <!-- Add before closing body tag -->
    <script
      src="https://cdn.3guideai.com/sdk/guideai.js"
      data-site-id="site_YOUR_SITE_ID"
      data-token="pk_live_YOUR_TOKEN"
    ></script>
  </body>
</html>
CDN Installation Walkthrough

CDN Installation Walkthrough

Step-by-step video showing how to add the 3Guide CDN to different frameworks (Next.js, React, Vue, HTML).

TODO: Record and upload video, then replace videoId

Step-by-step video showing how to add the 3Guide CDN to different frameworks (Next.js, React, Vue, HTML).

Scanner CLI

The scanner (@guideai/scanner) analyzes your codebase and uploads a knowledge base to 3Guide. It parses your JSX/TSX with Babel, extracts routes and interactive elements, and generates 6-tier fingerprints.

Scanner CLI Deep Dive

Scanner CLI Deep Dive

Learn how to scan your codebase, understand the output, and use dry-run mode for testing.

TODO: Record and upload video, then replace videoId

Learn how to scan your codebase, understand the output, and use dry-run mode for testing.

Install & run

bash
# Run with npx (no install)
npx guideai-scan --key sk_live_YOUR_KEY --dir ./my-app

# Or install globally
npm install -g @guideai/scanner
guideai-scan --key sk_live_YOUR_KEY --dir ./my-app

CLI options

FlagRequiredDefaultWhat it does
--keyYes*Your site API key (sk_live_*). Not needed with --dry-run.
--dirNocwdPath to your project root.
--api-urlNohttps://cdn.3guideai.com3Guide API endpoint.
--dry-runNofalseOutput scan result as JSON without uploading.
--outputNoWrite the scan result to a file.

Supported frameworks

The scanner auto-detects your framework from package.json and directory structure. No config needed.

Next.js (App Router)
Next.js (Pages Router)
React Router
Angular
Vue / Nuxt
Remix
SvelteKit
Static HTML

Dry run (preview without uploading)

bash
npx guideai-scan --dir ./my-app --dry-run --output scan-result.json
Scanner dry-run JSON output showing detected routes, elements, and fingerprints.

Scanner dry-run JSON output showing detected routes, elements, and fingerprints.

Scan output structure

json
{
  "framework": "nextjs-app-router",
  "routes": [
    {
      "path": "/dashboard",
      "page_title": "Dashboard",
      "component_name": "Dashboard",
      "dynamic_segments": [],
      "auth_required": false,
      "headings": ["Dashboard", "Analytics"]
    }
  ],
  "ui_map": { /* hierarchical component tree */ },
  "duration_ms": 1234
}

Vite plugin (auto-scan on build)

typescript
// vite.config.ts
import { guideaiPlugin } from "@guideai/scanner/plugins/vite";

export default defineConfig({
  plugins: [
    guideaiPlugin({
      key: process.env.GUIDEAI_KEY,
    }),
  ],
});

Webpack plugin

javascript
// webpack.config.js
const { GuideAIWebpackPlugin } = require("@guideai/scanner/plugins/webpack");

module.exports = {
  plugins: [
    new GuideAIWebpackPlugin({
      key: process.env.GUIDEAI_KEY,
    }),
  ],
};

Dashboard

The 3Guide dashboard is where you manage guides, view analytics, configure settings, and access your API keys.

Dashboard Tour

Dashboard Tour

Complete tour of the 3Guide dashboard — manage guides, view analytics, configure settings, and access API keys.

TODO: Record and upload video, then replace videoId

Complete tour of the 3Guide dashboard — manage guides, view analytics, configure settings, and access API keys.

Getting your API keys

Navigate to Settings → API Keys to find:

  • site_* — Your site ID (used in the script tag)
  • pk_live_* — Public token (safe for client-side, used in script tag)
  • sk_live_* — Secret key (server-side only, used for Scanner CLI)
Dashboard Settings page showing where to find your site ID, public token, and secret key.

Dashboard Settings page showing where to find your site ID, public token, and secret key.

Managing guides

The Guides section lets you create, edit, publish, and archive guides. You can set targeting rules, audience segments, and trigger conditions (manual, auto, URL match, element click).

Guide management view — create, edit, publish, and set targeting rules.

Guide management view — create, edit, publish, and set targeting rules.

Viewing analytics

The Analytics section shows guide completion rates, friction points, funnel analysis, and session recordings.

Analytics dashboard showing guide completion rates, funnel drop-off, and friction detection.

Analytics dashboard showing guide completion rates, funnel drop-off, and friction detection.

2) Public API (what you can call)

Both bundles are configured via data-* attributes on the script tag. Each bundle only reads the attributes relevant to its features. Sections below are labeled with the bundle they apply to.

Required attributes

AttributeTypeWhat it does
data-site-idstringYour site/workspace identifier from the dashboard.
data-tokenstringPublic API token (starts with pk_live_). Also used to derive the AES-256-GCM encryption key.

Endpoints

AttributeDefaultWhat it does
data-api-urlhttps://cdn.3guideai.comBackend API URL (override for self-hosted).
data-cdn-urlhttps://cdn.3guideai.comCDN base URL for knowledge base and asset loading.

Bubble (floating button)Full SDK only

These attributes only apply to the Full SDK (guideai.js). The Tracking SDK does not render a bubble.

AttributeDefaultOptionsWhat it does
data-bubble-enabledtruetrue / falseShow or hide the floating bubble.
data-bubble-positionbottom-rightbottom-right, bottom-leftWhich corner the bubble sits in.
data-bubble-iconrobotrobot, ant, owl, fox, cat, bee, sparkThe mascot icon on the bubble.
data-bubble-imageURL (GIF/PNG)Custom image that overrides the icon.
data-bubble-modedriftdrift, crawlAnimation style. Drift = smooth float, Crawl = edge walking.
data-bubble-label""stringOptional label text next to the bubble.
data-widget-modeguideguide, support, combinedControls bubble behavior: AI chat, live support, or both.

GuidesFull SDK only

AttributeDefaultWhat it does
data-guides-enabledtrueTurn guide playback on or off.
data-auto-advance-on-target-clicktrueAuto-advance when user clicks the highlighted element.
data-feedback-auto-prompttrueAsk for feedback after guide completion.
data-feedback-prompt-delay-ms300000Delay before showing feedback prompt (ms).
data-chip-dismiss-seconds300How long "Continue your guide" chips stay visible.

Analytics & sessionTracking SDK

AttributeDefaultWhat it does
data-recordingfalseEnable session recording for replay.
data-idle-timeout20000Inactivity threshold before idle (ms).
data-session-timeout-ms1800000Session rotation timeout (default 30 min).
data-batch-size50Events to batch before flushing.
data-batch-interval-ms30000Flush interval (ms).
data-geolocationoffGeo tracking: "off", "granted-only", "prompt".

Theming

AttributeWhat it does
data-theme-primaryPrimary accent color for buttons & highlights.
data-theme-backgroundBackground color for tooltips & panels.
data-theme-textText color in guide content.
data-theme-fontFont family for guide content.

AnnouncementsTracking SDK

AttributeDefaultWhat it does
data-announcement-surfacemodalDisplay mode: modal, banner, drawer.
data-announcement-frequencyonceonce, once_per_session, once_per_day, every_visit.
data-announcement-display-modeautobeacon (shows pulsing dot), auto (shows immediately), banner.
data-announcement-auto-show-delay-ms500Delay before auto-showing announcements.
Bubble modes — Drift (smooth float) and Crawl (edge walking ant animation).

Bubble modes — Drift (smooth float) and Crawl (edge walking ant animation).

API Reference

Both bundles expose window.guideai. Each bundle has its own set of methods. Methods tagged Full SDK are only functional in guideai.js. Methods tagged Tracking SDK are only functional in guideai-tracking.js. Methods tagged Both work in either bundle. Guide-related methods exist as no-ops in the Tracking SDK so you can switch bundles without changing your code.

SDK API Methods In Action

SDK API Methods In Action

Live coding demo showing all major SDK methods — identify users, trigger guides, track events, and listen to callbacks.

TODO: Record and upload video, then replace videoId

Live coding demo showing all major SDK methods — identify users, trigger guides, track events, and listen to callbacks.

Shared methodsBoth bundles

Tracking & detectionTracking SDK

These methods are functional in the Tracking SDK (guideai-tracking.js).

Surveys

Guide controlFull SDK

These methods are functional in the Full SDK (guideai.js). In the Tracking SDK, they exist as no-ops (e.g., validateGuideById returns {valid: false, reason: "tracking_only"}) so you can share code between bundles.

Guide recording (authoring)Full SDK

Common patterns

Event Dictionary

Each bundle emits its own set of events. The Full SDK emits session, page, and guide events. The Tracking SDK emits 30+ event types covering interaction, form, error, and performance tracking. All events are PII-stripped, encrypted with AES-256-GCM, batched, and sent to the backend.

Session & page eventsFull SDK

EventWhen it fires
session_startSDK initialized (includes device, referrer, locale)
session_endPage unload (includes session_ms duration)
page_viewPage loaded or SPA navigation (entry_page flag on first)
identifyUser/account identified

Interaction eventsTracking SDK

EventWhen it fires
page_exitLeaving page (includes engagement + scroll metrics)
clickElement clicked (text, tag, position, element_id)
double_clickDouble-click detected
right_clickRight-click / context menu
hoverSignificant hover over interactive element
scrollScroll with scroll_depth_pct + max_depth
rage_click3+ rapid clicks on the same non-button element
dead_clickClick with no DOM response (unresponsive element)
dropdown_selectDropdown/select value changed
file_uploadFile input triggered

Form eventsTracking SDK

EventWhen it fires
form_startUser begins interacting with a form
form_submitForm submitted successfully
form_abandonUser leaves without submitting
form_errorValidation error displayed

Error & performance eventsTracking SDK

EventWhen it fires
js_errorUncaught exception (stack, line, col)
ui_errorDOM parsing/rendering error
network_errorFailed HTTP request
performanceWeb Vitals + long tasks + navigation timing

Guide eventsFull SDK

EventWhen it fires
guide_startedGuide playback began
guide_completedGuide finished all steps
guide_stepStep viewed
guide_step_actionStep action taken (click, fill, navigate)
guide_step_choiceUser selected a branching choice
guide_step_stuckElement not found or unclickable
guide_step_retryRe-attempted stuck step

Guide BuilderFull SDK only

The Guide Builder is a visual editor in the dashboard and Chrome extension. Record interactions, edit steps, set targeting, and publish — no code deploy required. Guide playback requires the Full SDK (guideai.js).

Creating Your First Guide

Creating Your First Guide

Full walkthrough: record a workflow, edit steps, add tooltips, set targeting rules, and publish your guide.

TODO: Record and upload video, then replace videoId

Full walkthrough: record a workflow, edit steps, add tooltips, set targeting rules, and publish your guide.

How it works

1

Record

Click "Record Guide" in the dashboard or extension. Navigate your app — every click and interaction is captured with 6-tier fingerprints.

2

Edit

AI generates step titles and descriptions. Edit text, reorder steps, choose step type (tooltip, modal, highlight, action).

3

Target

Set audience rules (role, plan, behavior) and triggers (manual, auto, url_match, element_click).

4

Publish

Hit publish. The guide goes live instantly. Auto-healing via fingerprinting means no code deploy needed.

Guide Builder visual editor — editing step content and tooltip positioning.

Guide Builder visual editor — editing step content and tooltip positioning.

Targeting rules — show guides based on user role, plan, behavior, or page URL.

Targeting rules — show guides based on user role, plan, behavior, or page URL.

Step types

Tooltip

Floating popover attached to a specific element.

Modal

Centered overlay for important announcements.

Highlight

Spotlight effect highlighting an element without a popover.

Action

Automated action step (click, fill, scroll, navigate).

Action types

Each step can have an action that executes automatically or requires user confirmation:

click
fill
select
scroll
navigate
none

Multi-page guides

Guides automatically resume across page navigations. The SDK persists guide state to sessionStorage and uses dynamic route matching (supports :id and [id] segments) to auto-resume on the correct page.

A published guide running live — tooltip highlighting a UI element with step navigation.

A published guide running live — tooltip highlighting a UI element with step navigation.

Browser CopilotFull SDK only

The Browser Copilot is an AI assistant that lives in your product. It uses RAG with your scanned knowledge base to answer questions, generate walkthroughs on-the-fly, and execute copilot tool calls. This feature requires the Full SDK (guideai.js).

Browser Copilot Setup & Demo

Browser Copilot Setup & Demo

Setting up the Browser Copilot — configure knowledge base, customize appearance, and see it answer user questions in real-time.

TODO: Record and upload video, then replace videoId

Setting up the Browser Copilot — configure knowledge base, customize appearance, and see it answer user questions in real-time.

How it works

1. The scanner uploads your codebase structure to build a knowledge base of routes and elements.

2. When a user asks a question, the SDK captures a page snapshot (URL, visible text, form labels, viewport) and sends it to the backend.

3. The backend LLM uses RAG to find relevant context from the knowledge base and generates an answer.

4. If a walkthrough is appropriate, the LLM generates guide steps that the SDK renders as an ephemeral guide.

5. Optional copilot tools allow the AI to execute data queries and actions on behalf of the user (with confirmation for destructive actions).

Enabling the copilot

The copilot is enabled by default when the bubble is active. Users click the bubble to open the chat interface.

html
<!-- Copilot enabled by default with bubble -->
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
  data-bubble-enabled="true"
  data-widget-mode="guide"
></script>

Widget modes

guide

Floating bubble, AI chat on click (default).

support

Fixed bubble, live agent support on click.

combined

Both AI chat and live support in tabs.

The Browser Copilot answering a user question with step-by-step instructions.

The Browser Copilot answering a user question with step-by-step instructions.

Copilot generating an on-the-fly walkthrough from a natural language question.

Copilot generating an on-the-fly walkthrough from a natural language question.

Friction AnalyticsTracking SDK

Friction Analytics automatically detects user frustration. This is available in the Tracking SDK (guideai-tracking.js). All 15 detection modules track interactions, errors, and performance without any additional configuration.

Friction Analytics Walkthrough

Friction Analytics Walkthrough

Understanding the analytics dashboard — friction detection, funnel analysis, and AI recommendations.

TODO: Record and upload video, then replace videoId

Understanding the analytics dashboard — friction detection, funnel analysis, and AI recommendations.

Auto-detected friction signals

Rage clicks

3+ rapid clicks on the same non-button element in 1 second.

Dead clicks

Clicks on elements that produce no DOM response.

Form abandonment

Users leaving forms without submitting.

Form errors

Validation errors causing user frustration.

JavaScript errors

Uncaught exceptions with full stack traces.

Network errors

Failed HTTP requests and timeouts.

Performance issues

Web Vitals violations and long tasks.

Navigation loops

Users going back and forth between pages.

Detection modules

The SDK includes 15 detection and tracking modules that run automatically:

PageTracker
ScrollTracker
ClickTracker
FormTracker
EngagementTracker
ErrorTracker
PerformanceTracker
UIErrorObserver
RageClickDetector
DeadClickDetector
FormErrorDetector
EventBuffer
EventSender
EventThrottle
LivePageScanner

Enabling session recording

Session recording is part of the Tracking SDK.

html
<script
  src="https://cdn.3guideai.com/sdk/guideai-tracking.js"
  data-site-id="site_YOUR_SITE_ID"
  data-token="pk_live_YOUR_TOKEN"
  data-recording="true"
></script>

Custom event tracking

javascript
// Track custom events
window.guideai.track("checkout_started", {
  cart_value: 99.99,
  item_count: 3,
});

// Track feature usage
window.guideai.trackFeature("dark_mode", "Toggled Dark Mode");

// Mark feature as used (for audience targeting)
window.guideai.markFeature("used_export");
Friction Analytics dashboard — heatmap showing rage clicks and dead click zones.

Friction Analytics dashboard — heatmap showing rage clicks and dead click zones.

Funnel analysis showing drop-off points with AI-generated recommendations.

Funnel analysis showing drop-off points with AI-generated recommendations.

============================================

Visual Showcase

Every aspect of 3Guide is configurable. Below is a visual reference of all the different setups, icons, animations, themes, and guide types available. Bubble, guide, and copilot visuals apply to the Full SDK. Theming and announcements apply to the Tracking SDK.

Bubble icons

Choose from 7 built-in mascot icons, or provide a custom image URL (GIF/PNG) via data-bubble-image.

robot
ant
owl
fox
cat
bee
spark
html
<!-- Set the bubble icon -->
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_ID"
  data-token="pk_live_YOUR_TOKEN"
  data-bubble-icon="owl"
></script>

<!-- Or use a custom image -->
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_ID"
  data-token="pk_live_YOUR_TOKEN"
  data-bubble-image="https://yoursite.com/mascot.gif"
></script>

Bubble positions

Position the floating bubble in the corner that works best for your layout.

Bottom Right (default)
Bottom Left
html
data-bubble-position="bottom-right"  <!-- default -->
data-bubble-position="bottom-left"

Bubble animation modes

Two animation styles control how the bubble moves on screen.

Drift Modedefault

Smooth spring-physics float

Constrained to viewport

Slow cardinal-point motion

spring: 0.0003
damping: 0.993
min interval: 18s
max interval: 26s
Crawl Mode
Need help?

"Ant walk" along viewport edges

Pauses at corners

Persistent speech bubbles

speed: 40px/s
climbWalls: true
cornerPause: 1500ms
messages: rotating
html
<!-- Drift mode (default) -->
data-bubble-mode="drift"

<!-- Crawl mode (ant walk along edges) -->
data-bubble-mode="crawl"

<!-- Drift fine-tuning -->
data-bubble-drift-spring="0.0003"
data-bubble-drift-damping="0.993"
data-bubble-drift-min-interval="18000"
data-bubble-drift-max-interval="26000"

<!-- Crawl fine-tuning -->
data-bubble-crawl-speed="40"
data-bubble-crawl-climb-walls="true"
data-bubble-crawl-corner-pause-ms="1500"
data-bubble-crawl-persistent-speech="true"
data-bubble-crawl-message-interval-ms="8000"

Widget modes

Control what happens when users click the bubble.

Guide Modedefault

AI chat + guide playback

  • AI chat assistant
  • Guide suggestions
  • Walkthrough generation
  • Knowledge base Q&A
data-widget-mode="guide"
Support Mode

Live agent support

  • Live agent chat
  • Ticket creation
  • Support queue
  • Agent handoff
data-widget-mode="support"
Combined Mode

Both AI + live support

  • Tabbed interface
  • AI chat tab
  • Support tab
  • Smart escalation
data-widget-mode="combined"

Theming

Customize the look of guides, tooltips, and chat panels to match your brand.

Default (Violet)
Welcome to the app

Click the button below to get started with your first task.

primary
background
text
font: Inter
Ocean Blue
Welcome to the app

Click the button below to get started with your first task.

primary
background
text
font: Plus Jakarta Sans
Dark Mode
Welcome to the app

Click the button below to get started with your first task.

primary
background
text
font: Geist
html
<!-- Custom theme (Full SDK) -->
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"
  data-site-id="site_YOUR_ID"
  data-token="pk_live_YOUR_TOKEN"
  data-theme-primary="#0ea5e9"
  data-theme-background="#f8fafc"
  data-theme-text="#0f172a"
  data-theme-font="Plus Jakarta Sans"
></script>

<!-- Custom theme (Tracking SDK) -->
<script
  src="https://cdn.3guideai.com/sdk/guideai-tracking.js"
  data-site-id="site_YOUR_ID"
  data-token="pk_live_YOUR_TOKEN"
  data-theme-primary="#0ea5e9"
  data-theme-background="#f8fafc"
  data-theme-text="#0f172a"
  data-theme-font="Plus Jakarta Sans"
></script>

Guide step types

Four distinct step types for different interaction patterns.

Tooltip
Save Settings

Click Save

Save your changes before continuing.

Modal

Welcome!

Let us show you around the new dashboard.

Start tour
Skip
Slideout

Setup Guide

Complete these steps to finish setup.

Add SDK
Scan code
Highlight + Action
Export Data
Click to continue

Announcement surfaces

Three ways to display in-app announcements.

Modal
Banner
Drawer
html
data-announcement-surface="modal"   <!-- centered overlay (default) -->
data-announcement-surface="banner"  <!-- top banner strip -->
data-announcement-surface="drawer"  <!-- bottom sheet -->

data-announcement-frequency="once"             <!-- show once ever -->
data-announcement-frequency="once_per_session" <!-- once per session -->
data-announcement-frequency="once_per_day"     <!-- daily -->
data-announcement-frequency="every_visit"      <!-- every page load -->

data-announcement-display-mode="auto"    <!-- show immediately -->
data-announcement-display-mode="beacon"  <!-- show pulsing dot first -->

Complete configuration example

Every attribute combined in a single script tag:

html
<script
  src="https://cdn.3guideai.com/sdk/guideai.js"

  <!-- Required -->
  data-site-id="site_abc123"
  data-token="pk_live_xyz789"

  <!-- Endpoints -->
  data-api-url="https://api.3guideai.com"
  data-cdn-url="https://cdn.3guideai.com"

  <!-- Bubble appearance -->
  data-bubble-enabled="true"
  data-bubble-position="bottom-right"
  data-bubble-icon="owl"
  data-bubble-label="Help"
  data-bubble-mode="drift"
  data-widget-mode="combined"

  <!-- Drift fine-tuning -->
  data-bubble-drift-spring="0.0003"
  data-bubble-drift-damping="0.993"
  data-bubble-drift-min-interval="18000"
  data-bubble-drift-max-interval="26000"
  data-bubble-drift-enabled="true"

  <!-- Theme -->
  data-theme-primary="#7c3aed"
  data-theme-background="#ffffff"
  data-theme-text="#111827"
  data-theme-font="Inter"

  <!-- Guides -->
  data-guides-enabled="true"
  data-auto-advance-on-target-click="true"
  data-feedback-auto-prompt="true"
  data-feedback-prompt-delay-ms="300000"
  data-feedback-prompt-min-pageviews="10"
  data-chip-dismiss-seconds="300"

  <!-- Analytics & session -->
  data-recording="true"
  data-idle-timeout="20000"
  data-session-timeout-ms="1800000"
  data-batch-size="50"
  data-batch-interval-ms="30000"
  data-geolocation="off"

  <!-- Announcements -->
  data-announcement-surface="modal"
  data-announcement-frequency="once"
  data-announcement-display-mode="auto"
  data-announcement-auto-show-delay-ms="500"
  data-announcement-close-on-backdrop="true"

  <!-- Help hints -->
  data-help-hints="true"
  data-help-hints-cache-ttl-ms="86400000"
></script>
Side-by-side comparison of all bubble modes, positions, and themes in action.

Side-by-side comparison of all bubble modes, positions, and themes in action.

Customization & Theming Guide

Customization & Theming Guide

Full walkthrough of all visual customization options — bubble icons, animations, themes, step types, and announcements.

TODO: Record and upload video, then replace videoId

Full walkthrough of all visual customization options — bubble icons, animations, themes, step types, and announcements.

Ready to get started?

When not in extensionMode, the SDK automatically emits: