Control exactly how attendees choose sessions — how many they must pick, which sessions clash, and which belong to the same track — and set it all up inside Event Builder. Session selection now works on two levels: simple per-ticket totals (pick 3 sessions), and Session Rules for finer logic like "one session per time slot" or "at least two from the Leadership track."
The two levels of session control
- Ticket totals — on each ticket (Event Item), set how many sessions an attendee picks overall: a minimum, a maximum, and whether at least one is required. You can also add instructional text above the session picker.
- Session Rules — grouped constraints within a ticket. Each rule is a named group of sessions with its own min/max, typed as either a Time Block (sessions competing for the same time slot) or a Content Group (sessions grouped by topic/track), and optionally mutually exclusive (pick at most one).
Before you start: turn on enforcement
Session Rules are only enforced when Enable Session Rules is turned on in Event Settings. It's off by default — until you enable it, you can build rules but they won't constrain attendees at checkout. Set it on the Event Settings record for the event.
Set per-ticket session limits
On the ticket (Event Item) — in the Event Wizard ticket step, or on the Event Item record:
- Min Total Sessions / Max Total Sessions — the number of sessions an attendee must and can pick across the whole ticket.
- Require At Least One Session — force at least one selection.
- Session Selection Header — instructional text shown above the picker at checkout (for example, "Please select 2 sessions").
Create Session Rules in Event Builder
Event Builder has a dedicated Session Rules module:
- Open Event Builder and go to the Session Rules area.
- Pick the Ticket the rules apply to (rules are scoped to one ticket at a time).
- Create a rule and set:
- Rule Type — Time Block or Content Group (required; there's no default, so choose one).
- Min Sessions / Max Sessions — how many sessions from this group an attendee must/can pick.
- Mutually Exclusive — check this to allow at most one session from the group. (Use it instead of a min/max greater than one, not alongside it.)
- Assign sessions to the rule — one at a time, or with the Bulk Add Sessions option. Each session carries a Session Rule so it inherits the group's constraints.
A rules summary in the builder lets you sanity-check how a ticket's rules fit together before you publish.
Auto-detect time blocks
If your sessions naturally fall into competing time slots, you don't have to build every Time Block rule by hand. On the Event record, run the Recalculate Time Blocks action: it groups sessions whose start times fall close together into Time Block rules automatically.
- It's manual — you run it when you want it; it doesn't fire on its own.
- It's non-destructive — it won't overwrite Time Block rules you built manually; it fills in the gaps, and a session with no near-neighbors becomes its own block.
- The grouping window is 15 minutes and is fixed — sessions starting within 15 minutes of each other are treated as the same time block (and blocks chain, so 9:00, 9:10, and 9:20 land together).
Session exclusions
Beyond time blocks, you can stop an attendee from registering for two specific sessions that shouldn't go together (for example, the same content offered twice). On the Add/Edit Session panel:
- Excluded Sessions — mark other sessions that can't be registered alongside this one by the same attendee.
- Exclude From Overlap — exempt this session from time-overlap blocking (useful for something like an all-day exhibit hall that shouldn't clash with anything).
Exclusions are direct pairs and apply per attendee: if A excludes B and B excludes C, that does not automatically exclude A and C, and two different attendees can each take opposite ends of an excluded pair.
What attendees see
With enforcement on, the session picker respects your limits: the header text guides the choice, the picker blocks selecting more than a group or ticket allows (or fewer than required), and time-block/exclusion conflicts prevent incompatible picks. If a group required selection is missing in a group checkout, the error names the specific attendee who still needs to choose.
Permissions
Session Rules ship with the packaged permission sets — no custom setup. Assign Blackthorn Events Admin or Blackthorn Event Organizer to the users who build events, and they'll have the Session Rules tab and full access to create and manage rules and exclusions.
For Salesforce admins — technical reference
Objects & fields
| Object | Label | API Name | Type | Default | Notes |
|---|---|---|---|---|---|
| Session Rule (new) | Rule Type | Rule_Type__c |
Picklist (restricted) | none — required | Values: Time Block, Content Group. |
| Session Rule | Min Sessions | Min_Sessions__c |
Number (18,0) | blank | Blank/0 = no minimum; must be ≤ Max. |
| Session Rule | Max Sessions | Max_Sessions__c |
Number (18,0) | blank | Blank/0 = no maximum; must be ≥ Min. |
| Session Rule | Mutually Exclusive | Mutually_Exclusive__c |
Checkbox | false | Effective max of 1; don't combine with Min/Max > 1. |
| Session Rule | Description | Description__c |
Long Text (1024) | blank | Admin documentation only; not attendee-facing. |
| Session Rule | Event Item | Event_Item__c |
Lookup → Event Item | required | Rules are scoped per ticket. |
| Event Item | Min Total Sessions | Min_Total_Sessions__c |
Number (18,0) | blank | Total picks required across the ticket. |
| Event Item | Max Total Sessions | Max_Total_Sessions__c |
Number (18,0) | blank | Total picks allowed across the ticket. |
| Event Item | Session Selection Header | Session_Selection_Header__c |
Text (255) | blank | Instructional text above the picker. |
| Event Item | Require At Least One Session | Require_At_Least_One_Session__c |
Checkbox | false | — |
| Session | Session Rule | Session_Rule__c |
Lookup → Session Rule | blank | Assigns the session to a rule. |
| Session | Exclude From Overlap | Exclude_From_Overlap__c |
Checkbox | false | Exempts the session from time-overlap blocking. |
| Session Exclusion (new junction) | Session A / Session B | Session_A__c / Session_B__c |
Lookups | — | Stores exclusion pairs; managed via the Excluded Sessions picker, not edited directly. |
| Event Settings | Enable Session Rules | Enable_Session_Rules__c |
Checkbox | false | Master switch — rules aren't enforced until this is on. |
Notes for admins
- The ticket session-limit fields (
Min_Total_Sessions__c,Max_Total_Sessions__c,Session_Selection_Header__c,Require_At_Least_One_Session__c) are in the packaged Event Builder ticket field set and on the Event Item layout — no manual layout change needed. - Enable Session Rules (
Enable_Session_Rules__c) is an Event Settings field, not a builder control. Default off; enforcement is inactive until you turn it on. - Recalculate Time Blocks is a screen action on the Event object (API name
Auto_Detect_Time_Blocks), placed on the Event layout. Its 15-minute proximity window is fixed in code — there is no per-event setting to change it. - Exclusions persist to the
Session_Exclusion__cjunction object (there is no "Excluded Sessions" field); pairs are canonicalized and de-duplicated automatically. - Access is delivered through the Blackthorn Events Admin and Blackthorn Event Organizer permission sets, including visibility of the new Session Rule tab.