Analyse behaviour › Tools

Explore events on the Events page

The Events page charts, filters, breaks down and lists the raw events your project receives. Use it to see who did what, where and how often.

On this page

What it is for

Use the Events page for questions like these:

  • How many users started an export last week?
  • Which pages throw errors, and for how many users?
  • What exactly did the SDK send with checkout_started?
  • Which custom events does this project receive at all?

For ordered steps, paths or returning users, use Funnels, Flows or Retention. Every role in your organisation can use this page, viewers included.

How it works

The first time you open the page, it shows the last 10 days, today included, in UTC. After that, it opens on the range that you last applied here for that project, in this browser. Sequential counts users by the user id on each event. With the Sequential SDK, PostHog or Mixpanel, a visitor who identifies counts once. An event without a user id counts as an event, but never as a user.

System events, such as page-leave and web vitals, are hidden from the list but counted everywhere else. See Events.

Parts of the page
Part What it shows
Query card A start date, an end date and Interval (Hour, Day, Week, Month). Under them, the question as a sentence: Show [all events ▾] where [the conditions as tokens] + condition, and on a second line grouped by [▾] then by [▾]. Before you choose a field, grouped by reads No grouping. The footer has More, Save view and Run
Filter builder The conditions events must match. It opens under the sentence when you click + condition, Edit filters or a token
Events over time Events and Unique users per interval. With grouped by set, one line for each of the 4 largest groups instead, and Other. A line above the chart gives the total and the busiest interval. View as table shows the same numbers as a table. See The chart below
Activity overview User actions, Busiest period, the average tile (such as Average per day) and Active users
Group table Only when you choose grouped by: the same events, in groups by one or two fields or properties, such as page, browser or campaign source. Its heading reads like "Grouped by Page/URL then by Browser". See The group table below
Individual user actions The 100 most recent matching events. When a row has the same person and session as the row above it, it shows only the name, with no email and no browser line

If no events match, one message replaces the chart, the tiles, the group table and the list. See Troubleshooting.

The page remembers your Interval choice for each project, in this browser.

When the page reloads

Run is always there. It applies the dates and the filter together, then reloads the chart, the tiles, the group table and the list. When nothing differs from what the page shows, Applied shows next to it.

If you change Interval, grouped by or then by, the page reloads at once. The event chip, + condition, removing a token and Filter to this change the filter only: click Run to apply them.

Count users who used a feature

  1. In the left rail, open Explore and click Events.
  2. In the toolbar, set the start date to last Monday and the end date to last Sunday. This covers Monday to Sunday.
  3. Click + condition. The builder opens under the sentence with a new condition.
  4. Under Field, choose Event Name.
  5. Click in Value. Sequential suggests event names. Type or pick one, such as export_started.
  6. Click Run. This applies the dates and the filter together.
  7. Read Active users under Activity overview. User actions is how many times it happened.

To count a page instead, choose URL and type the full URL.

Find pages with errors

You see errors only if your SDK sends them as events. See What it needs. The JavaScript errors in a replay are not events, so they do not appear here. See DevTools in replays.

  1. In the sentence, change all events to Error. Click Run.
  2. Set grouped by to Page/URL. Events is the number of errors on each page, and % of total its share of all the errors.
  3. To see if most errors come from one browser, set then by to Browser.
  4. To add a URL to your filter, click Filter to this in its row. Then click Run. The list shows each error with its message.
  5. To watch the sessions with such an error, click Watch sessions in the row instead.
Error rows and stored values
  • In the group table, the row with the most errors comes first.
  • Sequential shows the full stored URL in each row. So the same page with different query strings can appear more than once. See What Sequential keeps from page URLs.
  • Errors sent without a URL group under (no value).

In Value, type the stored value, not the name the list shows:

Type this Not this
error Error
rage_click Rage click
form_submit Form submit

Look inside an event

  1. To narrow the list to one session, click Session ▸ in a row. The page adds a Session ID condition and loads again. If the recording is ready, the row shows ▶ Replay instead, which opens the replay.
  2. Click the icon at the end of the row (Event details). A side panel shows the event. To narrow the list by a value there, add it as a condition with + condition.
What the list and the raw event show
  • Event shows the class badge, such as Click or Error, and what the event acted on, once: a page path, the text of a clicked element, an event name or an error message. For example: Click "Buy".
  • Hover the badge to see the source and the original event name, such as "Source: posthog · $autocapture".
  • Where shows the route of the page, without the query. It is empty for page views, because Event already shows their path. A host shows only when it is not the most common host among the loaded events.
  • Who shows the user as a name, an email or a label such as "Anonymous visitor 01a0f6…". It links to the user's page.
  • When shows a relative time, such as "5 min ago". Hover it for the exact local time.
  • Session shows ▶ Replay when the recording is ready to play. Otherwise it shows Session ▸, which narrows the list to that session.
  • Event details shows the source and event name, the URL, the element selector, and the visitor, session and event ids, each id with a copy button. Below them are the event, visitor and account properties, and Raw event data: the stored event as JSON.
Build and check a filter

The builder under the sentence has every field, plus + All-of group, + Any-of group and + None-of group. The group buttons show only after the first condition exists. From 14 October 2026, this is the only builder: no page offers the Product manager builder any more.

The All events chip at the start of the sentence is an Event Type condition. Pick a type, such as Error, to add it, or all events to remove it. When the filter's top level is not AND, or has two Event Type conditions, the chip reads "events" and each condition stays a token.

The More menu in the query card holds the filter tools.

  • Explain filter… shows the filter on one line before you apply it, such as (event_type = "Error" AND browser = "Chrome"). It uses internal field names like country_code.
  • Past filters… lists the last 10 filters you applied here. Pick one to load it. Then click Run.
  • Save filter… and Save view keep the filter by name, with the group-by when one is set. The dates and Interval are not kept. See Filters, date ranges and saved views.
  • Analyse with AI… writes a prompt. See Hand the view to an AI tool below.

A field condition is an exact match. For a property, choose a type and an operator, such as contains or >. See Property conditions.

Sequential tests each condition against one event at a time. So Event Type = click AND URL = <pricing page> means clicks on the pricing page. It does not mean users who clicked anywhere and also visited the pricing page.

Activity overview tiles
Tile What it counts
User actions Matching events
Busiest period The most events in one interval. It is a count. It does not say which interval it was.
Average per hour, Average per day or Average per month The label follows Interval. The tile divides the events by the intervals from the first interval with events to the end of the range. Empty intervals after the first event count as 0. Empty intervals before it do not count, so a range that starts before your data does not make the average lower. The line under the value then ends with "since the first event". If the range has no events at all, every interval counts and the average is 0. The interval that is still running does not count: not its events and not its place. The tile and the chart use the same intervals and the same counts, and the finished intervals of the end date count with their events. The line under the value says how many intervals it used, such as "Over 239 complete hours". If no interval is complete yet, the tile shows "—" and a line such as "No complete hour yet". It never shows 0 in that case. Below 10, the value has one decimal, such as 0.9. From 10, it is a whole number, with digit groups in the number format of your browser, such as 1,836.
Active users Distinct people. With the Sequential SDK, PostHog or Mixpanel, an anonymous id that identify links to a value counts as that value. An event without a user id is not a user.
The chart
  • Labels on the time axis are on calendar boundaries in UTC. They are always horizontal.
  • With Hour and more than 2 days, each UTC day has a label, such as "Sep 21". With 2 days or less, a label shows every 3 or 6 hours, such as "06:00", and the date shows at midnight.
  • With Day, each day has a label up to 14 days. For a longer range, labels are on Mondays, and a very long range skips some Mondays. With Month, each month has a label. The year shows at January, or on every label when the range crosses into a new year.
  • On a narrow chart, such as on a phone, fewer labels show, so that they do not overlap. They go to larger calendar steps: for example every 2nd day, Mondays, or the 1st of each month.
  • Vertical grid lines show only at the labels.
  • With more than 60 points, the chart draws no dots. Hover anywhere over the chart: the tooltip and a dot show for the nearest point in time. The tooltip lists the series largest first and leaves out a series at zero, unless every series is zero.
  • With grouped by set, from 14 October 2026, the chart draws one line for each of the 4 largest groups, with the same labels as the group table. A thinner Other line counts the events of all the other groups. It shows only when they have events. A legend above the chart names the lines. A legend chip for a URL is short: it has no https://, and no host when all the URLs have the same host. The home page keeps its host. A chip longer than 28 characters is cut in the middle. Hover a short chip to see the full value.
  • Unique users is not drawn while the page is grouped: Sequential counts it for all the matching events, not for each group. View as table then has a column for each line.
Events without a user, account or session id

Unique users on the chart and Active users count only events that have a user id. An event without one is never a user.

When you group by User, Account or User Session, all events without that id go into one row:

grouped by The row reads
User (no user)
Account (no account)
User Session (no session)
  • The row counts real events. So the rows add up to the total.
  • This row has no Filter to this and no Watch sessions.
  • Other fields, such as Page/URL, still group their empty values under (no value). That row keeps both.
  • From 15 October 2026, Traffic Source groups by the other site that a visit came from, such as google.com. Events with no referrer, and events that came from your project's own pages, are one row, "Direct / internal". That row has no Filter to this. Another domain of your project counts as another site.
  • Referrer URL groups by the full referrer address, as Traffic Source did before. There, the events with no referrer are one row, "(no referrer)".
Dates and how users are counted
  • Days and intervals are in UTC.
  • The first time, the page opens with the start date nine days ago and the end date today. The range includes today, up to now.
  • The chart draws the whole end date: one point with Day, a point for each hour with Hour.
  • The chart draws nothing after the current time. If the last point is the interval that is still running, its line is dashed and its tooltip says "(so far)".
  • Before your app calls identify, a visitor's events carry an anonymous id. With the Sequential SDK, PostHog or Mixpanel, Unique users and Active users count a visitor who signs in during the range once. With Amplitude, Pendo or Smartlook, the page counts them once under each id. See Users and identity.
  • The list and the group table show the id that each event was stored under. So the events from before identify still show the anonymous id.
  • With the Sequential SDK, PostHog or Mixpanel, a User ID condition with the identified value, or with a linked anonymous id, finds all the events of that person.
List every event name

The grouped by and then by lists do not offer Event Name or Source. You can add them in the page address.

  1. On the Events page, replace everything after /events in the address bar with ?breakdown_by=event_name.
  2. Press Enter. The page lists every event name with its counts.

For two levels, use ?breakdown_by=event_name,browser.

Group by a property

grouped by and then by also offer these fields and properties:

  • Campaign & release: Campaign source, Campaign medium, Campaign name, Campaign term, Campaign content and Release. Each one shows only if your project has a value for it in the last 30 days.
  • Event properties: up to 100 property names from your events.
  • Other property…: choose Event, Visitor or Account, type the property name, and click Group. A name has up to 128 characters.
  • Sessions: Entry page and Exit page, the first and the last page view of each session in the date range, as a route template. Only page views count, so an identify or a click after the last page view does not change the exit page. If the date range ends while a session continues, for example a range that ends today, its exit page can be a page in the middle of the session. If your events report a release, also Release at session start and Release at session end.

Sessions fields count sessions, not events. So the count column reads Sessions, the table has no % of total, and each bar is the row's share of the largest group:

  • The filter selects the sessions that have a matching event. The value of each session comes from all of its events in the date range. For example, with the filter Event Type = error, Entry page shows the first page view of each session that had an error.
  • then by can be another Sessions field, Browser, Country, Device/OS or Platform. These use the value at the start of the session. Fields that count events are not offered.
  • A session without a page view is in the row "(no pageview)". A session without a release is in "(not set)".
  • These rows have no Filter to this and no Watch sessions.
  • Agents cannot group by these fields: the get_breakdown tool refuses them.

Some rows do not show a plain value:

The row reads It counts
(not set) The events that do not have the property. Its Filter to this adds the condition is not set.
(empty) The events that have the property with an empty value. This row has no Filter to this and no Watch sessions.
(withheld) Campaign values that Sequential removed when it stored the event, because they looked like personal data or a secret. See What Sequential keeps from page URLs.
  • Filter to this on any other row adds the condition is with the value of the row. On a second-level row, it adds a condition for each of the two levels.
  • If an event has the same property name two times, the event goes in the row of the first value. A filter on that property matches each value.

Campaign values

  • The five campaign values come from the utm_source, utm_medium, utm_campaign, utm_term and utm_content parameters of the page address of the event.
  • A utm_source property that you send yourself is a different property. It shows under Event properties with its own name.
  • Sequential decodes the value: + and %20 become a space. It does not change upper case to lower case. It keeps the first 128 characters.
  • An address without the parameter gives (not set).
  • This applies to all the events that Sequential keeps, also the events from before 9 October 2026.
  • Release is the release that your SDK sent with the event. An event without a release gives (not set). See Findings.

The group table

The group table shows when grouped by is set. The caption counts the groups, for example "12 groups". Each row shows:

  • the group, with its value or a label such as (no value);
  • Share: a bar, the row's part of all the matching events;
  • % of total: the same part as a number, such as "25%" or "33.3%";
  • Events: the number of matching events in the group;
  • Filter to this and Watch sessions.

With then by, each first-level row opens and closes its second-level rows. The first row is open. On a narrow screen, Share and % of total are hidden, and the two actions stack.

If no events match in a group-by, the table says "No groups in this range" and "Try a different time period or fewer conditions."

Watch sessions

Watch sessions opens Sessions → Latest with the sessions that have one event that matches both the applied filter and the row. A line above the list shows the filter in words. It starts with "From Events: sessions with an event where".

  • The filter goes to Sessions inside this browser tab, never in the address. The link works in this tab for one hour. Back from a replay and a reload keep the filter.
  • After an hour, or in another tab, Sessions says "The filter from Events has expired. Open it again from Events." and shows the list without the filter.
  • The link carries no dates. Sessions keeps its own date range, so its counts can differ from the counts on Events.
  • Watch sessions uses the applied filter. Click Run first if you changed the filter.
Show system events

System events, such as page-leave and web vitals, are hidden from the list. They are counted everywhere else on the page.

  • If the list hides system or low-signal events (scroll, hover and similar), an All +N chip appears above it. Click it to show them.
  • N counts only hidden rows among the 100 loaded.
  • The list also hides events with some low-signal names, even if they are your own custom events. For example: heartbeat, ping, idle, change, focus and resize. If one of your events seems missing, click All +N.

To leave system events out of the counts too, add a + None-of group that contains Event Type = system. This removes only system events. It does not remove your custom events with names such as heartbeat or ping.

Link to a view

The page reads session_id, user_id, from_date, to_date and breakdown_by from its address. For example: /events?session_id=…&from_date=2026-09-01&to_date=2026-09-08.

These links land here:

  • Open events on a Watch row
  • View in Events in a replay
  • View events on a funnel drop-off

The address does not carry your built filter or the project. A link opens in the project that the reader has selected. To name the project, add project= and its id. See Links that open a project.

Links from Watch, Ask and Sessions carry no dates. They open on the range that you last applied on this page for that project, in this browser. If there is none, they open on the default range, which ends at the end of today in UTC.

So a session outside that range shows nothing. With the default range, this is a session from more than nine days ago. To see it, move the start date back.

  • View in Events in a replay sets its own range around the event's day.
  • View events on a funnel keeps the funnel's dates, and the Events page counts the funnel's last day too.
  • If you build a link by hand, set to_date to the last day you want, as YYYY-MM-DD.
  • A to_date with a time, such as 2026-09-08T12:00:00Z, stops at that time, not at the end of the day. A time without a zone, such as 2026-09-08T12:00:00, is read as UTC. A time with Z is used as written. A date without a time is not changed: it means the whole day.
Hand the view to an AI tool

Analyse with AI writes a prompt from the loaded view. The prompt contains:

  • the dates, interval and filter
  • the chart's numbers and the breakdown
  • the 10 latest events

Click Copy prompt and paste it into your own AI tool. Sequential does not send the prompt anywhere.

The prompt includes the user ids, session ids, URLs, IP addresses, countries, operating systems, browsers and clicked-element selectors of those events. It does not include event properties.

Treat the prompt as an export. See AI and third parties.

Compare a point with its usual value

You can compare one point of the chart with its usual value. This works on a chart with the interval Hour or Day, and without a group-by.

  1. Click a point on the chart. A click anywhere above the plot selects the nearest point.
    • On a phone, click open the table under the chart. Or click View as table. Then click Compare this day (Compare this hour) in the row. On a narrow screen the button shows Compare.
  2. A small window opens at the point. It shows the day and the count, for example "Tue 7 Oct · 820". A running day or hour shows "so far".
  3. Then it shows the usual value, for example "usual Tuesday 1,410 · −42 %".
  4. Click Why did this drop?, Why did this rise? or What happened on this day? (What happened in this hour?). The side panel opens.
  5. To close the small window, press Escape or click outside it. To close the panel, click Close the comparison or press Escape.

On an interval of Week or Month, the small window says "Comparing works on hour and day charts. Change the interval to Day." With a group-by, the chart does not take a click. A note under the chart says "Comparing works on the chart without a group."

What the usual value is
  • Day: the average of the same weekday 7, 14, 21 and 28 days before. Sequential uses this when it holds 2 or more of these days. If not, it uses the 6 days before (2 or more held days).
  • Hour: the average of the same hour on the 7 days before (2 or more held days).
  • A day or hour that is still running is compared at the same elapsed time. The text then says "by this time".
  • If Sequential cannot find 2 held days, there is no usual value. The text then says how far back the data goes, for example "No usual value. Sequential holds data from 7 Oct only."
  • A change under 10 % is "about the same". The text uses a neutral colour for a rise and for a fall.
What the panel shows

The panel title is the day (or the day and the hour, in UTC). Then:

  • A summary. Sequential makes these sentences in code from the counts. No AI model writes them. They can name the page with the largest change, the newest release, a page whose errors at least doubled, and up to 3 findings.
  • "These changes happened at the same time. Sequential does not prove that one caused the other."
  • By page: the 5 pages with the largest change, and All other pages. Events with no page show as "(no page)".
  • Errors by page: the errors on these 5 pages, for all sessions. The Events filter does not apply to errors.
  • Evidence: up to 5 findings seen at that time, and up to 10 releases of the project's environment from 24 hours before the point to its end.
  • A line such as "Based on 312 sessions on Tue 7 Oct."
  • Watch 312 sessions on /invoices: opens Sessions with your applied filter, that page and the dates of the point. On an hour point, the button says "Watch sessions on /invoices, all of Tue 7 Oct". Sessions then shows the UTC days of the point. Other links from Events, such as Watch sessions in the group table, carry no dates.
  • Ask your agent about this day: see AI and third parties.

At 1,100 px and wider, the panel is beside the chart. On a narrower screen it covers the right side of the page. On a phone it fills the screen.

The address

While the panel is open, the address has ?point=2026-10-07&why=1 (an hour: 2026-10-07T10:00Z). It holds a date, never a value. A reload opens the panel again if the chart still has that point. A change of project, a group-by change, an interval change or Run closes the panel.

Who can use it

Every role can use it, viewers included. It counts toward the query limit of each person.

When it does not work
You see Why What to do
"Too many queries right now. Try again in N s." You used your query limit. Wait, then click Retry.
"Could not load the usual value." or "Could not load the comparison. Try again." The request failed or took more than 30 seconds. Click Retry.
"Sequential holds no data for that time." Sequential does not hold data for that point. Select a later point.
"Sequential has no error records for these days. DevTools capture may be off." No error rows exist for these days. Make sure DevTools capture is on.
"Sequential holds no error records for this day." Error data starts after this point. Select a later point.
"Could not load releases." The read failed, or Sequential does not know the project's environment. Try again later.
"Some pages are counted only in All other pages." The point has 1,000 or more pages.

What it needs

  • Events from a supported SDK. See Install Sequential, then Check your install.
  • Custom events for the features you want to count by name. Autocapture gives you pages, clicks and forms. See Send custom events.
  • identify calls, so the page counts users, not visitors. See Identify your users.
  • For errors, an SDK that sends error events. See Error events per SDK below.
  • The Sequential and PostHog SDKs do not send uncaught errors. You must call captureException(). Mixpanel, Amplitude and Pendo send no error events.
Error events per SDK

For errors, you need one of these:

  • captureException() calls in the Sequential or PostHog SDK. These SDKs do not record uncaught errors by themselves.
  • The Smartlook script, which also sends uncaught errors. See Moving from Smartlook.

Mixpanel, Amplitude and Pendo send no error events. With Mixpanel or Amplitude, send errors as custom events and filter on Event Name. See What each SDK supports.

Limits

  • The list stops at the 100 most recent matching events. There is no paging.
  • Event Property filters on one of the event's own properties, with a type and an operator. See Property conditions. Visitor Property and Account Property find nothing in PostHog or Sequential SDK data.
  • NOT groups leave out events, not users. None of leaves out events that match any of its conditions. Not all of leaves out events that match all of its conditions together.
  • An event without a user id is never a user, on this page and on Funnels, Flows and Retention.
  • The group table takes two levels at most and shows the top 1,000 groups. When there are more, the caption says how many, for example "1,000 of 2,345 groups", or "at least 1,000 groups" when Sequential could not count them. When some second-level rows are not listed, a line says "Some subgroups are not listed: the list stops at 1,000 pairs." With two levels, a first-level row's Events is the real total, but the row can miss some of its second-level rows.
  • The group table has no unique-users column. To count users, use the Active users tile with a filter.
  • Some fields are empty for some SDKs. For example, page conditions find nothing in Amplitude data.
  • A request stops after 30 seconds. On a busy project, shorten the range or add a filter.
  • Past filters are yours only, for each project and page. Nobody else can read them, admins included. A filter that you apply in one tab shows in another tab only after you reload it. Saved filters are different: they belong to the project, and everyone in the project sees them.
  • Links from Watch, Ask and Sessions carry no dates. A session outside the page's current range shows nothing until you change the dates.
  • A link to this page does not carry your filter or the project. It opens in the project the reader has selected.
  • The list also hides your own custom events named heartbeat, ping, idle, change, focus or resize. Click All +N to show them.
  • The group table cannot group by Event Name or Source from its lists. To list every event name, add ?breakdown_by=event_name to the page address.
  • The Analyse with AI prompt contains user ids, session ids, URLs and IP addresses. Treat it as an export of personal data.
Filter limits in detail
  • Event Property matches the event's own properties, with the operator that you choose.
  • To exclude either of two values, use one None of group with both values.
The group table with two levels

With two levels, Sequential reads the top 1,000 first-level groups, the most events first, and also the top 1,000 pairs. A first-level row's Events is the real total. Its second-level rows come from the pairs, so on a busy project some of them can be missing. A first-level row whose pairs all fell outside the top 1,000 still shows, with no second-level rows.

Fields that are empty for some SDKs
Field Empty for
Account All data except Pendo and the Sequential SDK. It has values only for events with an account id: from Pendo, or after sequential.account().
CSS Selector PostHog, Mixpanel and Amplitude events
URL and UTM Referer Amplitude events

Sequential keeps Amplitude's page address only as an event property. So page conditions and the Page/URL, Traffic Source and Referrer URL breakdowns find nothing in Amplitude data.