In many real-world applications, recording an entire user session isn’t always desirable — or necessary. Single-page applications (SPAs), multi-step flows, co-registration pages, and multi-form layouts often require precise control over what gets recorded and when.
This is exactly what FormClue’s Manual Mode was built for.
Manual Mode allows you to explicitly start and stop the FormClue recorder at specific points in the user journey, ensuring that only the most relevant interactions are captured and associated with a certificate.
Why Capture Only Part of a Session?
By default, FormClue automatically begins recording when the page loads. While this works well for simple pages with a single form, it may not be ideal in more complex scenarios:
- Pages with multiple forms
- SPAs where different views represent different workflows
- Co-registration or multi-section lead flows
- Applications where you only want to capture consent-critical interactions
- Situations where minimizing recorded data is important
Manual Mode gives you programmatic control over the recorder lifecycle so you can capture exactly what matters — and nothing more.
Enabling Manual Mode
Manual Mode is enabled when you generate your FormClue script.
- Go to the Certify page in the FormClue dashboard
👉 https://dash.formclue.io/dashboard/certify - Open Advanced Options
- Enable Manual Mode
- Copy and paste the updated script onto your site
Once Manual Mode is enabled, the FormClue recorder will not start automatically. Instead, you control it using the public API.
Manual Mode API Overview
When Manual Mode is active, FormClue exposes two global functions on the FormClue object:
FormClue.startRecorder()
FormClue.stopRecorder()
These methods are available via window.FormClue in browser environments.
FormClue.startRecorder()
Starts a new recording session.
- Generates a new certificate ID
- Injects that certificate ID as a hidden field into all forms on the page
- Associates any subsequent form submissions with the active recording session
⚠️ Important:
startRecorder()can be called multiple times, BUT it will only work when the session isn’t already being recorded. I.e. you can record snippets of the session at various intervals.- Each call generates a new certificate ID
FormClue.stopRecorder()
Stops the active recording session immediately.
- No further user interaction is captured
- The last generated certificate ID remains attached to forms until another
startRecorder()call replaces it
Recommended Usage Pattern: Targeted Section Recording
This is the recommended approach for SPAs, multi-form pages, and complex flows.
Scenario
You want to record only a specific section of a page — for example:
- A consent step
- A final form submission
- A high-risk interaction point
Pattern
- Keep the FormClue script on the page (Manual Mode enabled)
- Call
startRecorder()when the target section becomes active - Call
stopRecorder()when the section is complete - Optionally repeat later to capture another discrete segment
Each start/stop pair creates a self-contained certificate tied to that portion of the session and attaches it to all the forms on the page via a hidden field.
Code Examples
Start and Stop Recording Around an Application Section
function onSectionEnter() {
// Begin recording for this section
window.FormClue && window.FormClue.startRecorder();
}
function onSectionExit() {
// Stop recording when the section is finished
window.FormClue && window.FormClue.stopRecorder();
}
This works well for:
- SPA route changes
- Modal open/close events
- Multi-step wizards
Start and Stop Recording via User Action
document.getElementById('start-btn').addEventListener('click', function () {
window.FormClue && window.FormClue.startRecorder();
});
document.getElementById('stop-btn').addEventListener('click', function () {
window.FormClue && window.FormClue.stopRecorder();
});
This pattern is useful when recording should only occur after:
- Explicit user intent
- A checkbox or consent confirmation
- A gated interaction
Best Practices & Important Notes
Ensure the Script Is Loaded
Always confirm the FormClue script is available before calling the API:
if (window.FormClue) {
window.FormClue.startRecorder();
}
For dynamically injected scripts, use an onload handler or runtime check.
Align Certificate Lifecycle With Form Submissions
Each startRecorder() call:
- Generates a new certificate ID
- Injects it into all forms on the page
Plan your integration so the active recorder aligns with the form submission you care about.
Prefer Short, Targeted Recording Windows
Avoid recording long or unnecessary segments:
- Reduces noise in session data
- Minimizes captured interactions
- Improves signal quality for audits and reviews
Targeted recording produces cleaner, more defensible certificates.
Multiple Starts = Multiple Certificates
Calling startRecorder() multiple times during a single page visit will:
- Create multiple certificate IDs
- Replace the active certificate for future form submissions
This is expected behavior — but should be planned for intentionally.
Understand stopRecorder() Semantics
When you call stopRecorder():
- Recording stops immediately
- The most recent certificate ID remains attached to forms
- A new
startRecorder()call is required to generate a new certificate
If your workflow requires different behavior, validate this flow in your environment.
When Manual Mode Makes the Most Sense
Manual Mode is ideal when:
- You run SPAs or dynamic frontends
- You have multiple forms on a single page
- You only want to capture consent-critical interactions
- You need multiple certificates from one session
- You want tighter control over recorded data
Final Thoughts
FormClue’s Manual Mode gives you fine-grained control over session capture without sacrificing certificate integrity or ease of integration.
By starting and stopping the recorder intentionally, you can:
- Capture only what matters
- Reduce noise and unnecessary data
- Align certificates precisely with user intent
- Maintain clean, defensible compliance records
For modern applications and complex lead flows, Manual Mode is the recommended way to integrate FormClue.
