What you’ll set up
- Script or npm package installation
- Domain verification (required for branded recording links)
- Custom metadata to attach user/account context to recordings
- Sensitive data redaction for compliance
- Framework-specific configuration
Step 1: Install the SDK
You can load Userplane via CDN snippet or install it as an npm package.Embed script (quickest)
Add this to the<head> of every page where you want recordings to work:
npm
workspaceId is in Workspace Settings > General.
See Web SDK Reference for the full API and Installation Guide for platform-specific notes.
Step 2: Verify your domain
Domain verification is required before your support team can create branded recording links on your domain. Userplane verifies ownership by checking that the embed script is present on your site.Add your domain in the dashboard
Go to Workspace Settings > Domains and click
Add Domain.
Deploy the script
The embed script from Step 1 is what Userplane checks for during verification. Make sure it is
deployed to a publicly accessible page — verification will fail if the page is behind a login
wall or not yet deployed.
Step 3: Attach metadata to recordings
Metadata lets you attach user and account context to every recording so your support team sees who the customer is without having to ask.Dynamic metadata
Usemetadata() to capture values at recording submission time — useful for SPAs where context changes without a page reload:
Step 4: Configure sensitive data redaction
Prevent sensitive data from appearing in recordings before you go to production.Blur DOM elements
Adddata-userplane-blur to any element you want blurred in the recording:
Exclude network requests
Prevent specific URLs from being captured in network logs by passingexcludeCaptureEndpoints to initialize():
Step 5: Choose your framework
Userplane works with any JavaScript framework. Check the guide for yours:Programmatic recording controls
Once the SDK is installed, you can control recording sessions programmatically:Checklist before going live
- Embed script installed on every page (or
initialize()called via the npm package) -
workspaceIdis set correctly (not hardcoded in the repo — use env vars) - Domain verified in the dashboard
-
set()called after user authentication to attach metadata - Sensitive fields marked with
data-userplane-blur -
excludeCaptureEndpointsset ininitialize()to exclude auth/payment URLs from network logs - Tested a recording end-to-end in a staging environment