Menu
Instrumentation and self-hosting

Autocapture vs Custom Events for B2B SaaS: What Should You Track?

Compare autocaptured interactions, page analytics, custom semantic events, and server-side outcomes—and build a maintainable B2B SaaS tracking strategy.

Different tracking signals answer different questions

Choose the signal that matches the claim
SignalBest forCan confirmCannot prove by itself
Page viewReach, navigation, discovery, sequenceA normalized product surface became currentInteraction, completion, or value
AutocaptureBroad interface evidence and unexpected questionsAn observed UI interaction under capture rulesBackend persistence or stable semantic meaning
Custom client eventIntent and client-owned product conceptsThe browser observed the defined actionAsynchronous or server-owned success
Custom server eventPersisted outcomes, jobs, imports, exports, integrationsThe exact backend outcome in its definitionThe preceding interface path or user intent
Product stateCurrent configuration, eligibility, and durable conditionsThe modeled stateWho changed it or the complete history without transitions
Session replayQualitative path and friction evidenceWhat the recorder retained in one VisitPopulation prevalence, intent, or backend truth

Autocapture is useful early because it collects selected interactions without a named event for each one. Its semantics often depend on DOM structure, selectors, labels, URL state, and retention. Custom semantic events require more planning but create stable product concepts. Server events are strongest when the backend owns completion. None replaces a correct identity and account model.

One Export click, three records

The same action at 09:42:18, as each collection method stores it · illustrative

Autocapture

Broad interface evidence, no name required

09:42:18 · browser

eventclick elementbutton.btn--primary text"Export" page/reports/8f2/builder

Provesa control matching that selector was clicked

Cannot saywhether an export exists

Breaks on redesign High exposure

Custom client event

Product meaning declared in advance

09:42:18 · browser

eventreport_export_requested accountaccount_456 roleeditor methodmanual_export

Provesa named intent, unchanged by a redesign

Cannot saywhether the backend finished

Survives redesign Chosen fields only

Server event

The outcome the backend actually owns

09:42:58 · worker

eventreport_export_generated resultsuccess event_idevt_01J… actoruser_789

Provesthe file exists and who it belongs to

Cannot saywhich path led to the request

Survives redesign Authoritative

09:42:21 — the user closed the tab. Two of these records were already written, and neither of them knew whether a file was ever produced. The third arrived forty seconds later from a worker, with no interface path attached. Counting any one of them alone answers a different question than the one that was asked.

Autocapture preserves broad interface evidence; custom client events preserve product meaning; server events provide stronger confirmation of backend outcomes.

Use a four-layer B2B tracking model

  1. Identity and account context: project, stable user, active company/workspace, membership or role, Visit, environment, and eligibility where required.
  2. Pages and product structure: privacy-safe raw route, normalized page, grouped feature/page, product area, and ownership.
  3. Broad behavioral evidence: selected autocapture, Visits, replay, transitions, and observed interaction.
  4. Semantic outcomes: custom client/server events, persisted state, completed workflows, recurrence, and observable business outcomes.

A strong investigation can use all four: select an eligible account, confirm it reached the Reporting area, inspect the interface path, and verify that the backend generated an export. A perfect server event assigned to the wrong workspace remains misleading, so identity is the foundation.

Four layers, one sentence that survives review

every layer adds a clause the layer above it cannot supply

1

Identity and account context Who?

project · stable user · active company · role at event · Visit · environment

“An editor at Atlas Labs, inside one Visit…”

2

Pages and product structure Where?

privacy-safe route · normalized page · grouped page · product area · owner

…reached the report builder in Reporting…

3

Broad behavioral evidence What happened?

selected autocapture · Visit sequence · transitions · replay

…worked through the template picker and pressed Export…

4

Semantic outcomes What was confirmed?

custom client event · server event · product state · recurrence

…and the backend generated the export, again the next month.”

Layer 1 is not optional

Remove it and the sentence is about nobody. A flawless server event attached to the wrong workspace is not partly right — it is precisely wrong, and it will read as adoption.

Each tracking layer answers a different question. Reliable B2B analysis connects identity, product structure, behavioral evidence, and confirmed outcomes.

Choose the tracking method with a practical framework

Start from the analytical question
QuestionPrimary signalAdd when needed
Which surfaces did users reach?Normalized page viewsAccount and role context
What UI behavior occurred?Selective autocaptureReplay for retained Visits
Did a stable product concept begin?Semantic client eventAutocapture to explain the path
Did persistence or processing succeed?Server eventClient intent plus correlation ID
Is a durable condition true?Product state or state transitionAudit history
How did a session unfold?Visit sequence/replayStructured events for outcomes
Did value recur?Recurrence query over confirmed outcomesOpportunity and cadence model

Autocapture stable controls that support exploration: navigation, selected interaction types, feature entry points, and permitted attributes. Handle free-form text, forms, rich editors, protected pages, dynamic selectors, and high-cardinality content conservatively. A “capture everything” default creates cost and privacy risk without creating reliable meaning.

Create custom events for stable customer jobs, important workflow stages, collaboration, durable object changes, and outcomes that drive adoption or retention analysis. Prefer server confirmation when the backend owns success. Keep automated actors explicit.

Not every concept is one event count
ConceptRepresentsExampleUse
EventPoint-in-time action or transitionreport_savedCompletion and actors
StatePersistent conditionIntegration is connectedCurrent eligibility/configuration
SequenceSeveral workflow stepsOpen → configure → save → exportProgression and drop-off
RecurrenceBehavior in distinct Visits or periodsExport in two monthly cyclesTrial versus repeated use

Separate client intent from server confirmation

A user can click Export and close the tab before generation. A worker can finish later, fail, retry, or deliver through an automated schedule. Model those as distinct facts:

report_export_requested   # client intent
report_export_generated   # authoritative server success
report_export_failed      # controlled server outcome

Use a stable event or operation ID to correlate attempts with outcomes and deduplicate ambiguous retries. Choose one canonical producer per logical event. Never fire the same “success” event independently from client and server without reconciliation.

Attach the active account/workspace at event time. One user can belong to several companies or switch contexts during a Visit. Historical events should not be reassigned from the user’s current membership. Include event-time role and eligibility when the metric depends on them, plus a system actor for scheduled jobs or webhooks.

{
  "event": "report_export_generated",
  "event_id": "evt_01J...",
  "occurred_at": "2026-08-04T09:42:18Z",
  "project_id": "project_123",
  "account_id": "account_456",
  "user_id": "user_789",
  "originating_visit_id": "visit_abc",
  "product_area": "reporting",
  "grouped_page": "report_builder",
  "role_at_event": "editor",
  "eligibility_at_event": "enabled",
  "result": "success",
  "method": "manual_export",
  "application_version": "2026.08.0",
  "environment": "production"
}

This is illustrative, not a Hymetry SDK contract. Allowlist controlled properties with an owner. Exclude unrestricted objects, emails as primary IDs, secret-bearing URLs, customer-entered names or queries, tokens, stack traces with user data, arbitrary error messages, and unbounded text. High-cardinality IDs can be necessary for identity or deduplication; uncontrolled cardinality without analytical purpose is the problem.

Preserve identity and timing explicitly

Resolve anonymous-to-known identity according to a documented rule, and test logout, account switching, impersonation, shared devices, invitations, and merged users. Keep project and environment boundaries explicit so staging traffic cannot silently enter production metrics. When a server job finishes later, preserve both the occurrence time and the ingestion time; the latter helps diagnose pipeline delay but should not replace the business timestamp.

For asynchronous workflows, record a stable correlation ID from request through outcome. Define whether retries are separate attempts or one logical operation, how late successes are attributed, and whether a scheduled or API actor can satisfy the same metric as a human. These decisions change counts even when every payload is technically valid.

Plan for fragility, retroactivity, privacy, and cost

Autocapture definitions based on selectors, text, and DOM hierarchy can drift after a redesign. Prefer stable permitted attributes such as a deliberate data-analytics-id where appropriate, but treat that as a governed interface contract. Test definitions after releases and version material semantic changes.

“Retroactive analysis” means defining meaning over previously captured and retained evidence. It cannot recover an interaction, property, account context, outcome, or replay that was never collected or has expired. Historical UI changes can also make an old selector ambiguous. When an exploratory finding becomes an important metric, promote it to a stable semantic or server event.

Privacy controls

  • Allowlist pages, elements, and properties.
  • Mask or block before storage.
  • Exclude protected routes and sensitive states.
  • Remove secrets and unnecessary query parameters.
  • Review replay, network, and console capture separately.

Volume controls

  • Estimate page, interaction, event, and replay volume.
  • Sample or suppress noisy low-value interactions.
  • Set retention by purpose.
  • Monitor cardinality, duplicates, and sudden spikes.
  • Retire unused signals.

Privacy applies equally to client and server payloads. Server-side does not mean safe by default. Document purpose, access, retention, deletion, and regional requirements, and involve qualified privacy/legal review for the relevant jurisdiction.

Test a retrospective definition before trusting it

  1. Sample historical interactions across application versions and responsive layouts.
  2. Confirm that the required element, attribute, route, and account context were actually retained for the full analysis period.
  3. Compare the retrospective rule with a semantic or server-confirmed signal over an overlap window.
  4. Measure false positives caused by reused selectors, labels, modals, or embedded components, and false negatives caused by sampling or capture exclusions.
  5. Document the earliest trustworthy date and the versions covered.

Use the resulting metric as provisional when the overlap test is weak. Retrospective definitions are excellent for triage and hypothesis generation; they should not quietly become contractual KPIs merely because a chart can be produced.

Worked example: instrument a Reporting workflow

Match each Reporting step to its evidence
StepLayerSignalSupportsDoes not prove
Open ReportingPageReport builder viewedReach/discoveryConfiguration began
Select templateAutocaptureTemplate selectedOption interactionA report was saved
First deliberate changeClient eventreport_configuration_startedIntent/progressValid persistence
Save reportServer eventreport_savedBackend persistenceOutput was used
Click ExportClient intentreport_export_requestedAttemptGeneration succeeded
Generate exportServer outcomereport_export_generatedDefined successRecipient used it
Return next monthRecurrenceCompletion in another periodRepeated useBroad account participation

Five accounts, seven steps, four defensible numbers

One Reporting workflow, one 30-day window · fictional accounts

Account pageOpened autocaptureTemplate clientConfigured serverSaved clientRequested serverGenerated queryNext month
Atlas Labstwo users, whole workflow Opened Template Configured Saved Requested Generated Next month
Harbor Analyticsmonth-end, three periods Opened Template Configured Saved Requested Generated Next month
Northstar Worksweekly attempts, all failing Opened Template Configured Saved Requested ×Generated Next month
Beacon Systemslooked, never started Opened Template Configured Saved Requested Generated Next month
Meridian Groupscheduled jobs, no UI Opened Template Configured Saved Requested SGenerated SNext month

recordednot recorded×attempted, failedSsystem actor

80%

“Opened Reporting”page view

Atlas · Harbor · Northstar · Beacon

60%

“Clicked Export”client intent

Atlas · Harbor · Northstar

60%

“Export generated”server outcome

Atlas · Harbor · Meridian

40%

“A person generated one in two separate months”recurrence

Atlas · Harbor

The two 60% numbers are not the same 60%. Northstar clicks Export every week and never receives a file; Meridian receives one every month and never opens the product. An identical rate, a different set of accounts, and opposite follow-up actions — which is why the metric has to name its step.

One Reporting workflow can require page evidence, interface interaction, semantic intent, backend confirmation, and recurrence.
Five accounts expose different tracking blind spots
AccountEvidenceInterpretation
Atlas LabsPages, configuration, saves, export, share, and next-month completionRepeated account adoption; inspect penetration beyond two users
Northstar WorksRepeated Export clicks and requests, no generated outcome, controlled failuresAttempted but failed; clicks would overstate adoption
Beacon SystemsRepeated Report builder views, no start/save/outputDiscovery, not meaningful adoption
Meridian GroupLittle UI activity; scheduled reports delivered by jobsAutomated value, distinct from human engagement
Harbor AnalyticsSaves and generated exports on month-end across three periodsHealthy monthly cadence; weekly inactivity is expected

No single event answers reach, intent, persistence, outcome, automation, cadence, and distribution. Keep the layers connected and name the metric precisely.

Implement and govern the model

  1. State the decision and measured account/user entities.
  2. Normalize pages and product areas.
  3. Establish privacy-safe baseline page tracking.
  4. Enable autocapture selectively.
  5. Define the important workflows and eligibility.
  6. Add semantic client intent and server outcomes.
  7. Model persistent state and recurrence where an event is insufficient.
  8. Validate account context, actor, timestamps, and deduplication.
  9. Test raw data and representative Visits in production-like conditions.
  10. Document definitions, owners, schemas, privacy, and effective versions.
  11. Monitor quality, volume, drift, and unused collection.
Governance record for semantic events

For each event, keep its purpose, exact trigger, canonical producer, owner, entity, required and optional properties, allowed values, eligibility, exclusions, privacy classification, deduplication rule, validation evidence, and version history. Add deprecation and migration notes when semantics change.

Monitor missing identities, unknown account context, duplicate IDs, client/server mismatch, unexpected volume, invalid enums, timestamp delay, and events in the wrong environment. A schema can remain technically valid while its product meaning drifts after a redesign; review the metric contract with product changes.

Common tracking mistakes
  • Treating every captured click as meaningful.
  • Using only page views.
  • Naming events after button labels.
  • Firing success before server confirmation.
  • Double-counting client and server completion.
  • Losing event-time account context.
  • Collecting sensitive DOM text or unrestricted properties.
  • Claiming unlimited retroactivity.
  • Ignoring automated workflows, cadence, or internal traffic.
  • Building dashboards before validating triggers.
  • Changing semantics without versioning.

Validate evidence before building the dashboard

Start with a small fixture matrix: one eligible human account, one ineligible account, one automated actor, one failed operation, one retry, and one account switch. For each case, compare the intended product action with the raw page, autocapture, client, and server records. Verify event order, event-time account context, actor type, controlled property values, deduplication, and environment. Inspect a representative Visit or replay only where policy permits.

Then reconcile aggregates in both directions. Sample dashboard rows back to raw evidence, and sample known product actions forward into the analysis. Check daily volumes by producer and application version, not just the total. Alert on missing identities, sudden selector loss, unexpected enum values, unusually late events, duplicate operation IDs, client requests without outcomes, and server outcomes without a traceable request when one is expected.

Compare old and new signals in parallel

Keep a short parallel-observation period when promoting an autocaptured definition to a semantic event. Plot both signals by account, role, application version, and day; investigate systematic differences instead of forcing the totals to match.

  • Expect a semantic event to be narrower when it excludes disabled controls, failed operations, or repeated clicks.
  • Record the overlap dates and the reason for the final boundary before updating funnels and alerts.
  • Annotate the old and new series so a definition break cannot masquerade as a product trend.

After launch, review a small set of newly qualifying and newly non-qualifying accounts. This catches selector drift, account-context loss, eligibility changes, and background automation before a quarterly decision depends on them. Retire redundant evidence only after the replacement has passed that observation window and retention requirements are understood.

Ship a definition with an effective date and a named owner. If a redesign, queue change, permission change, or new automation alters meaning, version the metric or annotate the break. Backfills need the same review as live events: state the source, transformation, deduplication rule, affected dates, and limitations. This operational record is what makes a metric reproducible after the original implementer has moved on.

Connect product structure with behavioral evidence

Hymetry connects normalized and grouped Pages with Companies, Users, and Visits. Page evidence, account context, people, and session investigation remain distinct from authoritative semantic outcomes. Teams can review the demo project or open-source implementation.

Frequently asked questions

Should I use autocapture or custom events?

Use both selectively: autocapture for broad UI evidence and exploration; custom semantic and server events for stable intent and authoritative outcomes.

Can autocapture replace an instrumentation plan?

No. It does not define identity, account context, eligibility, business outcomes, cadence, privacy, ownership, or durable semantics.

Are server events always better?

No. They are stronger for server-owned outcomes but weaker for interface intent and path evidence. Client and server signals answer different questions.

Is a page view an event?

Technically it is often represented as one, but analytically it belongs to the reach/navigation layer and should not automatically count as adoption.

Can I define a custom event retroactively?

Only over captured, retained, and interpretable evidence. You cannot recover a missing property, server outcome, account context, or expired data.

How should multi-account users be tracked?

Use one stable user ID and attach the active account/workspace and role at event time. Do not rewrite history from current membership.

How do I avoid duplicate client and server events?

Give intent and outcome different names, choose one canonical producer per logical event, and correlate retries with stable event or operation IDs.

When should product state replace an event?

Use state for persistent conditions or eligibility reached through several paths. Keep transition events or audit history when who/when/path matters.

Sources

Method note: Vendor terminology and defaults differ. Official sources support implementation behaviors, not one universal tracking standard.

Methodology and evidence limits

The recommendations distinguish observable interface evidence, semantic intent, persisted outcomes, product state, and qualitative session context. Exact autocapture defaults, identity merge, retention, replay behavior, and query semantics vary by tool and version; test them in your environment.

Full source directory
Additional preserved references

These references supported the original detailed guide and remain available for claim verification and further reading.

About Hymetry

Hymetry is account-centric product intelligence for B2B SaaS. It helps teams understand how customer companies and the users inside them adopt and use their product.