Collections organize related events. They behave like logical tables in the dashboard and SQL notebook, while still accepting flexible JSON objects.
Create one#
Open Collections, select New Collection, and provide:
| Setting | What it controls |
|---|---|
| Name | The value you send as collection and use in SQL queries |
| Description | A short explanation shown to teammates in the dashboard |
| Retention | Whether events are kept indefinitely or deleted after a number of days |
The dashboard normalizes collection names to lowercase. We recommend short snake_case names such as product_events, billing_events, or application_logs.
Choose collection boundaries#
Group events when they share an owner, retention policy, and common analysis workflow.
Good boundaries:
product_eventsfor customer behaviorbilling_eventsfor invoices, subscriptions, and paymentsapplication_logsfor operational events with a shorter retention periodexperiment_checkout_copyfor a temporary, isolated experiment
Avoid creating one collection per event name. A single product_events collection with an event field is usually easier to query than dozens of tiny collections.
Also avoid putting unrelated sensitive and non-sensitive data in the same collection. Retention and deletion operate at collection level, so intentional boundaries make governance easier.
The all_events collection#
Every workspace includes a virtual all_events collection. It contains events from every collection and is useful for cross-collection SQL queries and workspace-wide exploration.
all_events is not a replacement for naming the destination when you log. Send each event to the collection that owns it, then use all_events when you intentionally need a combined view.
Configure retention#
Enable retention when data should expire after a fixed period:
- Open the collection.
- Select Settings.
- Select Edit.
- Clear Store events indefinitely.
- Enter the number of days to retain.
- Save the collection.
Retention is useful for verbose logs, temporary experiments, cost control, and data-minimization requirements.
Important: Expired and manually deleted events cannot be restored from GraphJSON. Export anything you must archive before shortening a retention window or deleting a collection.
Naming checklist#
Before creating a production collection, ask:
- Will the name still make sense a year from now?
- Can a teammate tell what belongs here from the description?
- Do all events in it need the same retention policy?
- Will its fields be analyzed together?
If the answers are yes, the boundary is probably sound.