Cohortum

Upload your first source

Walk the New source wizard — name your source, upload a CSV or Parquet event log, map your columns, and set up sessions.

A source is one uploaded file of your product's event data — the raw record of what your users did. A project can hold many sources, and teams usually add separate ones for different time periods, individual research questions, or specific A/B tests. Every chart, cohort, and insight comes straight from your sources. This guide walks you through the New source wizard start to finish, from picking a file to watching the load land.

You'll do all of this from the Sources screen. Can't find it in the left sidebar? Your role can't upload — jump to Who can upload below.

Open the New source wizard

Head to Sources in the left sidebar and click + New source. If your project doesn't have any data yet, you'll land on the Connect your first source screen instead — click its dropzone or Browse files and the same wizard opens.

There are four steps: Source · Upload · Mapping · Sessions. Jump back and forth as much as you like until you hit submit.

Source — name it and pick a file type

Give the source a clear name a human would recognize — something like Mobile App Production or Web Events Staging. You'll see this name every time you pick a source later, so make it specific.

Then pick the file type that matches your export: CSV or Parquet. Parquet loads faster when your export is large and packed with JSON; CSV is fine for everything else.

Upload — choose your file

Grab the event log you want to import. Cohortum reads the file to spot your columns and pull sample values — nothing gets imported yet. Before you pick, skim Supported formats and limits: a file that's too big or malformed is the usual reason a load fails.

Grabbed the wrong file? Hit Replace file to swap it right there in the wizard.

Mapping — tell Cohortum what each column means

This is the step to slow down on. Cohortum shows you a Map your columns table with one row per column in your file: the Column, its detected Type, a Sample value, and a Map to dropdown.

Once your file is read, Cohortum takes a first pass at the mapping itself and pops a toast — "Auto-mapped N columns — review the mapping below." Take it as a rough draft: read every row and fix whatever it got wrong.

Sessions — decide how visits are grouped

Tell Cohortum how to slice a user's events into sessions. Either let it build sessions from gaps in activity, or point it at a session column you already have. Full details in Configure sessions.

Hit submit and Cohortum confirms with "Source created — importing your file.", then kicks off the load.

Map your columns

Cohortum needs three things from every event before it can chart anything. They show up as required chips in the Mapping step, and you can't submit until each one is assigned exactly once:

  • Event Name — what happened, e.g. Video clicked or Page pagination clicked.
  • User ID — a stable identifier that ties events back to the same person across sessions.
  • Timestamp — when the event happened.
The Mapping step of the New source wizard showing the Map your columns table with Column, Type, Sample, and Map to fields, plus required chips for Event Name, User ID, and Timestamp.
Read every row — auto-mapping is a starting point, not the final word.

Map-to options

Each column's Map to dropdown gives you six choices:

Map toWhat it does
Event NameThe event's name. Required.
User IDThe user identifier. Required.
TimestampWhen the event happened. Required — check the expected formats and timezone handling in Prepare your data.
User Properties (JSON string)Attributes of the user (e.g. country, plan) for filtering and comparing.
Event Properties (JSON string)Attributes of this event (e.g. button label, page number).
IgnoreLeave the column out of the import.
Ignored columns are dropped

Anything you mark Ignore never gets imported. If there's any chance you'll want to filter or compare on a column down the line, map it as a user or event property now — adding it back later means a fresh upload.

Mapping and sessions are fixed per source

Your column mapping and session settings lock in the moment the source is created. You can look them up later on the source's Column mapping panel, but you can't edit them there. Need to change how columns map or how sessions get built? Delete the source and run New source again with the corrected mapping.

For more on shaping your data before you upload, see Prepare your data.

Configure sessions

The last step, Configure sessions, decides how Cohortum groups a user's events into visits. Sessions are what power the Sessions-level analysis and the Session btwn N and M filter control once you're working in an analysis.

You've got two options — and whenever you already track sessions, we recommend providing your own:

  • Session column (recommended when you have one) — ship a session identifier in your export, switch off auto-generate, and point Cohortum at that Session column. Your own logs carry each user's full history, so session boundaries and the order they're numbered in match your definition exactly.
  • Auto-generate sessions — turn this on and Cohortum starts a fresh session after a stretch of inactivity. Set the Session timeout (minutes) field, and a new session begins once the user goes that many minutes without doing anything.
The Sessions step of the New source wizard showing the Configure sessions panel with the Auto-generate sessions toggle and Session timeout field.
Auto-generate sessions from an inactivity gap, or map a session column you already have.
Not sure which to pick?

If you don't already track sessions, leave Auto-generate sessions on. A 30-minute timeout is a common default for web and mobile clickstream.

Watch the load finish

Submit, and your new source shows up in the Sources list with a status badge on its row. It says loading while the import runs, then flips to loaded when it's done (or empty / deleted). Expand the source to see its Loads history — load date, file, size, rows loaded, rows rejected, and a per-load Status. That per-load status is where you watch the play-by-play. Each load moves through:

  1. pending — queued and waiting to begin.
  2. parsing — reading your file and checking it holds together.
  3. transforming — building the events, sessions, and derived tables your charts come from.
  4. done — the load finished and the source is ready to analyze (or failed / cancelled).

Land on failed? Check that your required columns mapped cleanly and that the file actually matches the type you chose. A source's mapping is fixed once it's created, so you can't patch it in place — delete the failed load, and if the mapping itself was the problem, delete the source and run New source again with the corrected mapping.

Big files take a while, but you don't have to babysit the screen — the load keeps running in the background. As soon as it reads done, head into Events Analysis and start digging.

One source, one dataset

A source holds exactly one dataset. Once its file has loaded, that's it — you can't pour more data in. The Upload button goes dark, and there's no way to tack on another file. Got a newer or different export? Spin up a new source for it in the wizard.

The one exception is New upload. If a source never actually finished loading — it's still empty, or its load failed or got cancelled — you can attach a file to finish the job. New upload reuses that source's locked-in column mapping and session settings, so there's no Mapping or Sessions step, just the source and the file. The moment the source is loaded, the option disappears. See Sources and loads for the full story.

Who can upload sources

Whether you can upload comes down to your role. The Sources screen only shows up for people allowed to add data:

  • Owner and Admin — can always upload.
  • Creator — can upload only once a workspace admin flips on the Upload sources toggle for them.
  • Viewer — can't upload.

Don't see Sources? Ask a workspace Owner or Admin to grant you upload access. And there's no "Member" role in Cohortum — the roles are Owner, Admin, Creator, and Viewer.

Next steps