Groups

Groups are non-user entities you want to analyse alongside users — typically a company, account, team, or organization. Where a user-level event answers “how many users did X?”, a group-level event answers “how many companies did X?”.

Groups are workspace-scoped. You define the group types (e.g. company, team) and TrackCrumb tracks unique keys within each type.

Linking events to a group

Use the SDK’s group() method before firing events. It attaches the group context to subsequent events from that user.

tracker.identify("user_42");
tracker.group("company", "acme-corp", {
  name: "Acme Corporation",
  plan: "enterprise",
  seats: 120,
});
tracker.track("feature_used", { feature: "ai_chart" });

The third argument is group properties — analogous to user properties, but attached to the group key, not the user.

Browsing groups

Open Groups in the sidebar (/groups). The page has a tab per group type.

ColumnWhat it shows
TypeThe group type (e.g. company)
KeyThe unique identifier you passed to group()
PropertiesFirst three properties, truncated
Last updatedThe most recent time a group() call updated this row

Click a key to open the group profile, which lists the members (users currently associated with this group) and recent events from any of them.

Using groups in reports

In Trends, Funnels, Retention, and Cohorts, the Count by dropdown lets you switch the unit of measure:

  • Users (default) — count distinct distinct_id.
  • Groups — count distinct keys of a selected group type.

For example, a Trend on feature_used counted by company answers “how many companies used this feature each day?” instead of “how many users?”.

Reports counted by group only include events fired after a group() call, since earlier events have no group context attached.

Limits & gotchas

  • Properties payload — same 32 KB per-event cap as user/event properties.
  • One group per type per event — a user can be in many group types simultaneously (e.g. company=acme and team=growth), but only one key per type.
  • No backfill — group context is attached at track() time, so calling group() later does not retroactively tag older events.
  • Cohorts — audiences over users (use Groups for company-level cuts)
  • Trends — switch Count by to a group type