Skip to main content

Overview

Trodo’s data model is built for product behavior analytics: discrete events over time, rich user profiles, and optional groups for workspaces or accounts. Everything ties back to a distinct_id so you can analyze full journeys.

Core concepts

Events

Events are actions users take (or that happen in their session). They power funnels, flows, retention, and insights.
{
  "event_name": "agent_run_completed",
  "distinct_id": "user_12345",
  "timestamp": "2024-01-15T10:30:00Z",
  "properties": {
    "workflow_id": "weekly_report",
    "duration_seconds": 42,
    "outcome": "success"
  }
}
Event types
  • Auto-events: Captured when enabled (page_view, element_click, page_scroll, etc.) — see Auto-Events
  • Custom events: Sent with Trodo.track()
See Events & Properties for structure and limits.

User profiles

Profiles aggregate activity and traits for one person, keyed by distinct_id.
{
  "distinct_id": "user_12345",
  "properties": {
    "email": "[email protected]",
    "name": "Alex Builder",
    "first_seen": "2024-01-01T00:00:00Z",
    "last_seen": "2024-01-15T10:30:00Z",
    "session_count": 47,
    "plan": "pro",
    "referral_source": "twitter"
  }
}
Profile sources
  • identify(): Attach a stable ID and known traits
  • People methods: Update persistent properties
  • Events: Drive activity timelines and derived metrics
See User Profiles.

Groups

Users can belong to groups (companies, workspaces, teams) under a string group key and one or more group IDs. Use Trodo.set_group / add_group / remove_group, and set properties on the group with Trodo.get_group(key, id).set(...). See Groups.

Linking identity

When an anonymous user later logs in, identify() connects their history to the same logical user. Trodo’s CQ Intelligence merge engine can unify profiles across sessions and devices when the same identified user appears again.
// Anonymous visit
distinct_id: "anon_xyz789"

// After login
Trodo.identify("user_12345");

// Same person, one timeline in the dashboard

Property types

Trodo supports these property data types for filtering and breakdowns:
TypeExampleOperators
String"enterprise"is, is_not, contains, is_set
Number1500.50equals, greater_than, less_than, between
Booleantrueis_true, is_false
Date/Datetime"2024-01-15"before, after, between, in_the_last
List["editor", "admin"]any_in_list, all_in_list + item operators
Object{ role: "admin" }Nested property access
See Filters & Operators.

Sessions

Sessions group activity with rules such as:
  • Timeout: A period of inactivity starts a new session
  • Midnight: New session at midnight (user’s local time), where configured
  • UTM change: New campaign parameters can start a new session
Session context (referrer, UTM, landing page) is inherited by events in that session.

Data flow

  1. Collection: Browser SDK sends events (and optional server-side integrations you configure).
  2. Processing: Events are validated, enriched, and tied to identities.
  3. Storage: Profiles and event history power reporting.
  4. Query: Insights, funnels, retention, flows, and cohorts read the unified model.

Next steps

Events & Properties

Event structure and limits

User Profiles

Profile management

Default Properties

Auto-captured properties

Implementation Guide

Patterns and checklists