feat(sessions): add referrer to session modal

Display the initial referrer in the Session modal properties grid.
Fetches the referrer from the session's first event to show where
the user originally came from.
This commit is contained in:
Arthur Sepiol 2025-11-28 00:16:15 +03:00
parent a19b92a5cb
commit 1c4ca3b6c7
2 changed files with 19 additions and 2 deletions

View file

@ -2,6 +2,7 @@ import { ReactNode } from 'react';
import { Icon, Grid, Column, Row, Label } from '@umami/react-zen';
import { useFormat, useLocale, useMessages, useRegionNames } from '@/components/hooks';
import { TypeIcon } from '@/components/common/TypeIcon';
import { Favicon } from '@/components/common/Favicon';
import { KeyRound, Calendar, MapPin, Landmark } from '@/components/icons';
import { DateDistance } from '@/components/common/DateDistance';
@ -60,6 +61,10 @@ export function SessionInfo({ data }) {
>
{formatValue(data?.device, 'device')}
</Info>
<Info label={formatMessage(labels.referrer)} icon={<Favicon domain={data?.referrerDomain} />}>
{data?.referrerDomain}
</Info>
</Grid>
);
}

View file

@ -32,7 +32,13 @@ async function relationalQuery(websiteId: string, sessionId: string) {
count(distinct visit_id) as visits,
sum(views) as views,
sum(events) as events,
sum(${getTimestampDiffSQL('min_time', 'max_time')}) as "totaltime"
sum(${getTimestampDiffSQL('min_time', 'max_time')}) as "totaltime",
(select referrer_domain
from website_event
where website_id = {{websiteId::uuid}}
and session_id = {{sessionId::uuid}}
order by created_at asc
limit 1) as "referrerDomain"
from (select
session.session_id as id,
session.distinct_id,
@ -83,7 +89,13 @@ async function clickhouseQuery(websiteId: string, sessionId: string) {
uniq(visit_id) visits,
sum(views) as views,
sum(events) as events,
sum(max_time-min_time) as totaltime
sum(max_time-min_time) as totaltime,
(select referrer_domain
from website_event
where website_id = {websiteId:UUID}
and session_id = {sessionId:UUID}
order by created_at asc
limit 1) as referrerDomain
from (select
session_id as id,
distinct_id as distinctId,