Tracking Overview

Clarm captures visitor behaviour automatically and lets you send custom events for attribution and analytics.

Automatic tracking

When the widget script loads, it automatically captures:

  • page_view — every page navigation, including SPA route changes
  • widget_opened / widget_closed — widget toggle events
  • message_sent — when the visitor sends a chat message

Manual events

Use ClarmTrack (or the SDK) to send additional events:

ClarmTrack APIjavascript
// Identify a known user
ClarmTrack('identify', {
  email: 'jane@acme.com',
  name: 'Jane Smith',
  company: 'Acme Inc',
  plan: 'enterprise'
});

// Track a purchase / conversion
ClarmTrack('purchase', {
  amount: 299.00,
  currency: 'USD',
  plan: 'growth',
  orderId: 'ord_123'
});

// Custom event
ClarmTrack('click', {
  element: 'pricing_cta',
  page: '/pricing'
});

// Goal achieved
ClarmTrack('goal_achieved', {
  goal: 'demo_booked',
  value: 500
});
i

All events are sent to POST /api/track and stored server-side. IP addresses are hashed for GDPR compliance.

Event payload

Every event includes these fields automatically:

  • visitor_id — persistent anonymous ID (localStorage)
  • session_id — current browsing session
  • timestamp — ISO 8601 UTC
  • url — current page URL
  • referrer — HTTP referer header
  • user_agent — browser user agent

Automatic visitor enrichment

Every visitor is automatically enriched with company and contact information using their IP address. No configuration needed — enrichment happens server-side on every page_view event.

Enriched data appears in Dashboard → Analytics → Visitors and includes:

  • Company name and domain
  • Industry and company size
  • Revenue range and location
  • Enterprise score (0-100) for lead qualification
  • Person name, job title, and LinkedIn (Growth & Enterprise tiers)
i

Enrichment results are cached across all Clarm customers, so most lookups are served instantly from cache at no additional cost. See Enrichment for tier details and BYOK setup.

Intent scoring

Clarm automatically computes an intent score (0-100) for each visitor based on:

  • Page signals — visiting pricing, demo, or contact pages scores highest
  • Widget engagement — opening the widget and sending messages
  • Company profile — enterprise-grade companies score higher

When the intent score crosses 70, a high_intent_visitor webhook fires automatically. Connect it to Slack or your CRM for real-time sales alerts.