opensesh docs

Sessions & content

Once a submission is accepted it stops being an abstract and becomes a session — the thing that gets scheduled, published, and embedded. Two admin pages manage this life stage: Sessions (/admin/sessions) and Content (/admin/content).

The handoff

Clicking Accept and send on the Submissions desk does three things at once:

  1. Creates a session from the abstract (title, description, speakers, and library fields carry over).
  2. Assigns onboarding tasks to the session's speakers, which surface in the speaker portal.
  3. Sends the acceptance email.

The Sessions desk lists every graduated session with its speakers and library metadata. This is your working set for the Agenda — only sessions can be placed into rooms and time slots.

Content approval

Public-facing session content is moderated on the Content page. Each session's content has one of three statuses:

StatusMeaning
approvedLive; this is what public pages and widgets show.
pending_reviewA speaker edited something and it's waiting on you.
rejectedSent back; the speaker can revise and resubmit.

When speakers edit their session details or profile through the portal, the change doesn't go live directly. It lands here as a history diff — you see exactly what changed, side by side. Click Save and approve to publish the new version.

The approved snapshot

Behind the scenes each session keeps an approved snapshot: the last approved set of public values. Public pages, widgets, and feeds always render from the snapshot, so a half-finished speaker edit can never leak onto your conference site. Rejecting an edit leaves the snapshot untouched.

Why the split matters

The two-desk design separates concerns:

DeskQuestion it answers
Sessions"What is in the program?" — the canonical list that Agenda, Speakers, and Widgets build on.
Content"What is the audience allowed to see?" — an approval queue over every public-facing edit.

Typical flow

Accept a batch of submissions

Sessions appear on the Sessions desk.

Speakers polish their content

Speakers polish titles, descriptions, and bios in the portal; edits queue up as pending_review on Content.

Review the diffs

Review diffs, Save and approve the good ones, reject the rest with the reason.

Approved content goes live

Approved content flows automatically to the public event site (/e/<eventSlug>), the agenda, and any embedded widgets.

On this page