Skip to main content
POST
Record a presentations onboarding completion or dismissal

Authorizations

session
string
cookie
required

Session cookie obtained from POST /api/auth/login.

Body

application/json
action
enum<string>
required

completed — user clicked the "Get Started" button on the onboarding modal. dismissed — any other close (X, Esc, or navigation). Overlay clicks do not dismiss the modal.

Available options:
completed,
dismissed
source
enum<string>
required

Which page the tour was shown on. Used for analytics attribution only; it does not affect persistence.

Available options:
templates,
my_presentations
legacy
boolean

Set to true to backfill a user with the deprecated per-browser localStorage flag. Silent — no PostHog event is emitted. Only valid when action is dismissed.

Response

Updated tour state for the current user

Per-user state for the presentations onboarding modal (ENG-641; versioned in ENG-636). The modal shows at most once per user across devices per content version. The show/hide decision keys on tourVersion: whenever it is less than the current content version, the modal is shown. tourCompletedAt means the user clicked the "Get Started" button on the single-screen video modal; tourDismissedAt covers every other close (X, Esc, navigation, or a silent legacy backfill from the old per-browser localStorage flag). Both timestamps are written once and never cleared, so they preserve the first-ever moment even after later content versions are acknowledged.

tourCompletedAt
string<date-time> | null
required

Timestamp of the first-ever completion. null until the user clicks "Get Started" for the first time. Never overwritten by a later version acknowledgement.

tourDismissedAt
string<date-time> | null
required

Timestamp of the first-ever dismissal. null until dismissed. Never overwritten by a later version acknowledgement.

tourVersion
integer
required

Highest onboarding content version the user has acknowledged. 0 = never onboarded, 1 = illustrated multi-step tour (ENG-641), 2 = Wistia explainer video (ENG-636). The modal shows whenever this is below the current content version. Bumping the current version re-shows the modal to every user exactly once.