--- title: "Table & Block Ticketing" slug: "table-block-ticketing" updated: 2026-08-12T12:45:39Z published: 2026-08-12T12:45:39Z canonical: "docs.blackthorn.io/table-block-ticketing" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.blackthorn.io/llms.txt > Use this file to discover all available pages before exploring further. # Table & Block Ticketing Sell a whole table, foursome, or sponsorship package as a single ticket — and let the buyer fill in each guest's details later, on their own time. Table & block ticketing is built for galas, fundraisers, sponsorships, and any group event where the person paying doesn't yet know who's coming. Instead of collecting eight names and emails up front, the buyer purchases the package at one price, becomes the group's **Group Coordinator**, and adds each guest afterward from their AttendeeLink — right up to a deadline you set. No spreadsheets, no follow-up chasing. ## How it works 1. **You** flag an Event Item as a block ticket and set how many seats it holds (for example, a "Table" of 8). 2. **The buyer** purchases the whole package at a single price and becomes the **Group Coordinator**, taking the first seat. The remaining seats are created as empty **placeholder** guest slots ("Guest 1," "Guest 2," …). 3. **The Group Coordinator** opens their AttendeeLink and fills in each guest — name, email, and any Event Item or Session questions — one slot at a time. They can leave slots blank and come back, replace a guest, or clear a slot, until your edit deadline. 4. **Each guest** (optionally) gets their own confirmation email and AttendeeLink as soon as their slot is filled. Attendee counts, check-in lists, and reporting are based on **filled** seats, not the seats you sold — so an unfinished table never inflates your numbers. ## Setting up a block ticket Block ticketing is configured on the **Event Item** you want to sell as a package — on the Salesforce record itself > **Before you start:** the block-ticket fields aren't added to the Event Item or Event Settings page layout by default. A Salesforce admin needs to add **Is Block Ticket**, **Block Seats**, and (optionally) **Block Unit Label** to the Event Item layout, and **Send Block Guest Confirmation Emails** / **Block Guest Edit Deadline** to the Event Settings layout, before the options below are visible. Direct setup inside Event Builder is planned for a future release. 1. On the Event Item, turn on **Is Block Ticket**. 2. Set **Block Seats** to the size of the package (2–150). Seat 1 goes to the Group Coordinator; the rest become guest slots. 3. Optionally set a **Block Unit Label** — the noun buyers see for one unit, such as "Table" or "Foursome." It shows up at checkout as "Table 1 of 3." Left blank, it defaults to "Group." 4. (Optional) On **Event Settings**, set a **Block Guest Edit Deadline** — the date and time after which Group Coordinators can no longer change guest details from AttendeeLink. 5. (Optional) On **Event Settings**, keep or clear **Send Block Guest Confirmation Emails** (on by default) to control whether guests are emailed when their slot is filled. The package price is simply the price of the Event Item — buyers see one clean package price, not a per-person multiple. ## The buying experience At checkout, the buyer enters their own details once, under the **Group Coordinator** heading ("You'll manage guest details for this group after checkout") — not once per seat. If they buy more than one unit, each is labeled with your unit noun: "Table 1 of 3," "Table 2 of 3," and so on. The Coordinator occupies a seat in only the first unit; every other unit is created with all seats open for guests. ## Managing guests after purchase From their AttendeeLink, the Group Coordinator sees a **Manage Guest Seats** card with a row per seat. For each guest slot they can: - **Add a guest** — click Edit to open a modal and enter the guest's name, email, and any required Event Item Form or Session Form questions. The same field types, validation, and conditional logic as regular registration apply, so a guest added later is just as complete as one registered up front. - **Edit a guest** — update any detail up to the edit deadline. - **Replace a guest** — change the email to a different person; Blackthorn confirms the replacement, releases the previous guest, and starts the new one fresh (see *Replacing vs. correcting a guest* below). - **Clear a slot** — empty it back to a placeholder while keeping the seat. - **Leave a slot blank** — save what's done and return later. Editing always opens in a modal, so long guest or session forms never turn the page into an endless scroll. Once the **Block Guest Edit Deadline** passes, the Manage Guest Seats card becomes read-only. (Admins can still adjust guests directly in Salesforce.) ## Executive Assistant (EA) mode Sometimes the person buying the table isn't attending — an executive assistant booking for a team, for example. Each Group Coordinator row has an **Attending?** toggle: - **Attending? on** (default) — the Coordinator keeps seat 1; the remaining seats are for guests. - **Attending? off** — the Coordinator's seat is released and *every* seat opens up for guests. You can switch modes any time before the edit deadline. If seat 1 already has a guest in it, clear that guest before turning **Attending?** back on. ## Guest confirmation emails When **Send Block Guest Confirmation Emails** is on (the default), each guest receives their own confirmation email with a personal AttendeeLink the moment their slot is filled with a name and valid email. The email names the Coordinator who registered them ("*{Coordinator} registered you for {Event}*") so it doesn't look like spam. Editing a guest's details after that first save does **not** send another email. Turn the setting off to keep the Group Coordinator as the group's only point of contact. ## Placeholder guests and your Salesforce data This is the most important thing for admins to know: **empty guest slots are placeholders and deliberately create no related records.** - A placeholder Attendee has **no Contact, Lead, Account, or Person Account** — none is created or matched while the slot is empty, regardless of your Attendee Default Object setting. - Placeholders are **excluded** from attendee counts and rollups, check-in lists, the event app attendee view, and Campaign Member sync. - When the Coordinator fills the slot, Blackthorn runs the **standard related-record pipeline** — email-first matching, your org's duplicate rules, and your Attendee Default Object setting all apply — and the guest starts counting everywhere. > ⚠️ **Behavior change to watch for:** any automation, flow, or trigger that fires on Attendee insert and assumes a Contact is always present will now see placeholder Attendees with a **null Contact lookup**. If you have such automations, gate them on **Placeholder = false**. ### Replacing vs. correcting a guest When a Coordinator changes a filled guest's email, Blackthorn asks whether they're **replacing the guest with a different person**: - **Different person (replace)** — the old Attendee is deleted and a brand-new Attendee is created in the same seat. The previous guest's AttendeeLink stops working immediately (it returns a "no longer registered" page), and their form answers are cleared. Their **Contact is never deleted** — it's simply detached. Matching and confirmation email run fresh for the new guest. - **Same person (typo fix)** — the existing Attendee and its Contact are updated in place; no re-matching happens. Clearing a slot behaves like a removal: the seat reverts to a placeholder, the guest's AttendeeLink is invalidated, and their form answers are cleared. No removal email is sent. --- ## For Salesforce admins — technical reference **Package:** Ships in **Events 5.59** (Salesforce upgrade required). **Configuration fields** | Object | Label | API Name | Type | Default | Notes | | --- | --- | --- | --- | --- | --- | | Event Item | Is Block Ticket | `Is_Block_Ticket__c` | Checkbox | false | Turns the Event Item into a single block/table package. Admin R/W; app read. | | Event Item | Block Seats | `Block_Seats__c` | Number (18,0) | — | Seats in the package. The app enforces a **2–150** range (not a field-level limit). Seat 1 = Group Coordinator; seats 2–N = guest slots. Admin R/W; app read. | | Event Item | Block Unit Label | `Block_Unit_Label__c` | Text (40) | — (app shows "Group") | Noun shown at checkout / AttendeeLink, e.g. "Table 1 of 3." Admin R/W; app read. | | Event Settings | Send Block Guest Confirmation Emails | `Send_Block_Guest_Confirmation_Emails__c` | Checkbox | true | Emails each guest their AttendeeLink when their slot is first filled. Editing after the first save does not resend. | | Event Settings | Block Guest Edit Deadline | `Block_Guest_Edit_Deadline__c` | DateTime | blank (no deadline) | After this datetime, Coordinators can't change guest slots from AttendeeLink; admins can still edit inside Salesforce. Enforced server-side, not just in the webapp. | **System-managed fields** (read-only reference — set automatically, don't edit) | Object | Label | API Name | Type | Purpose | | --- | --- | --- | --- | --- | | Attendee | Placeholder | `Is_Placeholder__c` | Checkbox | True while a guest slot is unfilled. Placeholders create no related records and are excluded from counts, check-in, and Campaign sync. | | Attendee | Primary Block Manager | `Is_Primary_Block_Manager__c` | Checkbox | Marks the Group Coordinator. | | Attendee | Block Group | `Block_Group__c` | Lookup (Table) | Links the attendee to their block. | | Session Attendee | Placeholder | `Is_Placeholder__c` | Checkbox | True while the session registration belongs to an unfilled slot. | | Table | Executive Assistant Managed | `Executive_Assistant_Managed__c` | Checkbox | True when the Coordinator opts out of attending (all seats open to guests). Can't be disabled while seat 1 is filled. | | Table | Block Ticket Group | `Is_Block_Ticket_Group__c` | Checkbox | Marks a Table created by a block purchase. | | Table | Block Event Item | `Block_Event_Item__c` | Lookup (Event Item) | Resolves block size and pricing for the group. | **Permissions:** the customer-facing configuration fields have field-level security granted across the Blackthorn Events permission sets; system-managed fields are Admin/app read. **Layout note:** these fields ship with permission-set access but are **not** placed on any packaged Event Item or Event Settings layout, and are not exposed in Event Builder in 5.59. Add the configuration fields to your layouts to make them editable. Validation (Block Seats required, 2–150) is enforced at the record layer, so it applies however the fields are set. Direct Event Builder support is planned for a future release. **Notes for admins** - **Placeholders and automation** — see the behavior-change callout above; gate Contact-dependent Attendee automations on `Is_Placeholder__c = false`. - **Shared emails are allowed** — the same email in two seats (couples, a parent registering children) is a soft warning, not a block; both Attendees may correctly link to one Contact. - **Edit deadline is enforced in Salesforce**, so API-driven writes after the deadline are rejected too — not only the AttendeeLink UI. - **Cancellations** — a block-level cancellation cascades to the block's attendees; a guest change never sets an Attendee to Cancelled (that status is reserved for real cancellations/refunds).