Objectives are the units of progress in an event. Each objective can have sub-objectives nested under it, and each can carry a set of customer interactions (text, image, audio, or video) that you can send to a customer-facing screen during a session. The event tracker uses this structure to record completion times, count interactions, and surface the right content at the right moment.
Getting started
Open Events > Event settings, pick an event, and switch to the Objectives tab in the event editor.
How it works
The Objectives tab is a two-pane editor. On the left, the list panel shows every objective for the event with drag handles for reordering. Parent objectives are numbered 1, 2, 3...; sub-objectives nested under a parent are numbered 1a, 1b, 1c.... Click any objective to open it in the detail panel on the right.
The detail panel has two sections:
- Details: name, parent assignment, description, goal, and a single solution image
- Customer interactions: a list of interactions of type text, image, audio, or video that can be sent to the customer screen during the event tracker session. Each interaction can be flagged to count as a hint for reporting
Objectives save individually as you click Save in the detail panel; there's no global save for the entire tab. The Communication screen settings button at the top of the list panel jumps to the customer-facing display configuration. That page controls the timer, interaction icons, intro/outro media, layout grid, fonts, and colors of the screen customers see during a live session. See Communication screen settings for the full configuration walkthrough.
Step-by-step guide
Add an objective
Open the event editor and switch to the Objectives tab, then click Add objective at the top of the list panel. The detail panel opens on a fresh objective with these fields:
| Field | Description |
|---|---|
| Name | Required-style. Placeholder reads "Objective name" |
| Parent objective | Optional dropdown. Pick another objective to nest this one under. Defaults to None (top level). Hidden when no parent options are available |
| Objective description | Optional textarea (2 rows). Placeholder reads "Objective description" |
| Objective goal | Optional textarea (2 rows). Placeholder reads "Objective goal" |
| Objective image | Optional. Drag-to-upload or click the upload button to select a file. Preview includes a remove button |
Click Save at the bottom of the detail panel. The objective appears in the list panel with the next available number.
Add a sub-objective under a parent
- In the list panel, hover the parent objective
- Click the Add sub-objective icon button next to its row (tooltip: "Add sub-objective")
- The detail panel opens with Parent objective pre-set to the parent you clicked
- Fill in the rest of the fields and click Save
- The sub-objective shows up nested under its parent and labeled 1a, 1b, etc.
Reorder objectives
- In the list panel, grab the drag handle on any row
- Parent objectives use a top-level drag handle; sub-objectives use a nested drag handle
- Drop the row in its new position
- The new order saves automatically
You can drag a sub-objective to a different parent, or change its Parent objective field in the detail panel to move it. The label numbers (1a, 2b, etc.) update to match the new structure.
Add a customer interaction
Open an objective in the detail panel, scroll to the Customer interactions section, and click Add interaction. Pick the Interaction type:
| Type | What it sends |
|---|---|
| Text | A text message rendered on the customer-facing screen |
| Image | An uploaded image (any format the browser supports) |
| Audio | An uploaded audio file. Some browsers block autoplay; the host may need to tap play in the customer view |
| Video | An uploaded video file. Same autoplay caveat as audio |
Fill in the type-specific input. Text uses a textarea labeled Interaction content with placeholder "Enter the interaction text that will be shown to the customer"; Image / Audio / Video use a file upload with preview (image shows inline, audio and video show an info alert about autoplay being blocked). Add an optional Description (optional) textarea (2 rows) for internal context, toggle Count as a hint if this interaction should increment the hint counter for the session, and click Done to add it to the list.
Edit or delete a customer interaction
- In the Customer interactions list, click the pencil icon on any interaction to open it inline for editing
- Update the content, description, or Count as a hint flag
- Click Done to save the edit
- Or click the trash icon on any interaction to delete it
Delete an objective
- Open the objective in the detail panel
- Click the delete control in the detail panel header
- Confirm the prompt
- The objective and any sub-objectives under it are removed
Reference
Objective fields (detail panel: Details section)
| Field | Required | Type | Notes |
|---|---|---|---|
| Name | Recommended | Text | Placeholder "Objective name" |
| Parent objective | No | Dropdown | "None (top level)" by default; hidden when no available parents |
| Objective description | No | Textarea (2 rows) | Internal context |
| Objective goal | No | Textarea (2 rows) | What success on this objective looks like |
| Objective image | No | File upload | Drag-to-upload or click; preview with remove button |
Customer interaction types
| Type | Storage | Customer experience |
|---|---|---|
| Text | Stored as text content | Renders the text on the customer screen |
| Image | Uploaded file | Renders the image inline on the customer screen |
| Audio | Uploaded file | Plays on the customer screen (autoplay blocking may apply) |
| Video | Uploaded file | Plays on the customer screen (autoplay blocking may apply) |
Customer interaction fields
| Field | Type | Notes |
|---|---|---|
| Interaction type | Dropdown | Text, Image, Audio, or Video |
| Interaction content | Textarea | Required for Text type |
| File upload | File input | Required for Image, Audio, or Video |
| Description (optional) | Textarea (2 rows) | Internal context for staff |
| Count as a hint | Checkbox | When on, the interaction counts toward the session's hint total in reports |
List panel elements
| Element | Description |
|---|---|
| Parent objective row | Numbered 1, 2, 3...; shows solution image thumbnail, name, and description |
| Sub-objective row | Nested under parent; numbered 1a, 1b, 1c... |
| Drag handle (parent) | Reorders parent objectives at the top level |
| Drag handle (child) | Reorders sub-objectives within a parent |
| Add sub-objective | Icon button on each parent (tooltip: "Add sub-objective") |
| Communication screen settings | Top-right button. Jumps to the customer-display configuration page |
Empty states
| Where | Copy |
|---|---|
| List panel (no objectives) | "No objectives have been added" |
| Detail panel (no interactions on the open objective) | "No interactions configured." |
Good to know
- Objectives save individually. There's no global Save on this tab. Each objective is committed to the database when you click Save in the detail panel. This is why the global Save button at the bottom of the editor is hidden on the Objectives tab.
- The numbering (1, 2, 3 / 1a, 1b) is automatic and reflects the current order. Reordering or moving a sub-objective to a different parent updates the labels everywhere.
- Customer interactions vs. solution image: the solution image on an objective is reference material for staff (and what shows up in event history). Customer interactions are what actually get sent to the customer screen during a session.
- The Count as a hint flag on a customer interaction drives the session's hint total in reports. Use it for things you'd consider an actual nudge to the team. Things like ambient music or atmospheric video might not count as a hint even though they use the interaction system.
- Audio and video files may not autoplay on the customer screen due to browser policy. Most modern browsers require an explicit user gesture before autoplaying media. The customer-screen control panel exposes a play control to work around this.
- The data model uses different terminology. Objectives are stored as
puzzlesand customer interactions ascluesin the database, but every UI label uses the new terminology. If you see the older terms in raw exports or the API, that's the same concept. - The Communication screen settings button at the top of the list opens the global customer-display configuration. Use it to set the default screen background, font, and timer style that interactions are rendered on top of.
FAQ
Q: What's the difference between an objective and a sub-objective?
A: A sub-objective is just an objective with a parent. Use parents for major beats and sub-objectives for the steps inside each beat. The event tracker shows the same controls for both, just nested visually.
Q: How many objectives can an event have?
A: There's no fixed limit. Most operators create between 5 and 20 objectives per event. Going much higher tends to make the tracker harder to scan during a live session.
Q: Can the same customer interaction be used on multiple objectives?
A: No. Customer interactions belong to one objective at a time. If you want the same content available across multiple objectives, duplicate the interaction in each one (or send it as a generic interaction during the session).
Q: My image interaction won't load on the customer screen. Why?
A: Check that the file finished uploading (the preview thumbnail should be visible). If the preview is missing, re-upload. If it's there but doesn't render at the customer screen, refresh the customer view; the customer screen polls for updates but a hard refresh can clear stale state.
Q: Why doesn't my video autoplay?
A: Browser autoplay policies block media without a user gesture. The host running the customer screen needs to tap play once at the start of a session to unlock autoplay for the rest of the session.
Q: Can I reorder a sub-objective to a different parent?
A: Yes. Either drag it onto a different parent in the list, or open the sub-objective in the detail panel and pick a different Parent objective from the dropdown. The label numbering updates automatically.
Q: I deleted an objective by accident. Can I undo?
A: No. Deletion is permanent and the objective's customer interactions go with it. If you might want it back later, archive it conceptually by removing the customer interactions and renaming it instead of deleting.