Service builder
Add presentations in order and prepare your setlist.
Use the two-panel service builder to add presentations, reorder items, open decks in the editor, and launch service present mode.
Quick start
- From Services, open a service with Edit (or create one from the library modal — there is no
/services/newpage). - In the left Presentations column, pick a folder, search with Search by title… if needed, and click Add (or drag a card onto Service order on the right).
- Drag rows in Service order to match your worship flow. Reorder is drag-only.
- Optionally open a deck (Open in editor), duplicate it (Add again), or click the clock (Configure automation) — field details are in Service item automation.
- Click Present when the order has at least one item → Service present mode.
You should have an ordered setlist and know how to hand off to present or the presentation editor.
Deep dive
Header
The builder does not show an H1 from Service builder. The header is:
| Control | Purpose |
|---|---|
| Back (←) | Back to services (/services or the folder you came from), or Back to workspace when opened with a workspace return |
| Title field | Editable name; placeholder Untitled service; saves on blur |
| Subtitle + ? | Add presentations in order to build your service. — the contextual ? on this row opens a short summary and links to this article (Help: Service builder) |
| Try Workspace beta | Optional — when a workspace link is available |
| Present | Opens /services/{serviceId}/present when the setlist has ≥1 item; otherwise disabled with tooltip Add at least one presentation before presenting. |
Live filmstrip, Start / End, and outputs stay in Service present mode — this article covers building the setlist only.
Two-column layout
On wide screens the builder is two columns:
| Column | Heading | Purpose |
|---|---|---|
| Left | Presentations | Folder picker, search, Add, drag into the order, New presentation |
| Right | Service order | Numbered setlist — drag to reorder, remove, duplicate, open editor, configure automation |
Presentations (left)
| Control | Purpose |
|---|---|
| Folder picker | Browse presentation folders (rootLabel Presentations) |
| Search by title… | Filters the visible list client-side |
| Section label | Presentations ({count}) for the filtered list |
| New presentation | Opens create with this service in context |
| Add | Appends the deck to Service order |
| Added {count}× | Badge when that presentation already appears in the order |
| Drag | With an active edit session, drag a card onto Service order (insert line shows before/after; empty list accepts a drop to append) |
Empty folder: No presentations in this folder.
You can also add decks from the presentations library (Add to service / Services panel). Finish ordering here in the builder.
Service order (right)
Each numbered row shows a thumbnail, title, and meta {slideCount} slides · {aspectRatio}, plus ** · Auto** when automation is configured for that item.
| Action | Label | Purpose |
|---|---|---|
| Drag row | Drag to reorder | Drag the card to reorder; drop line shows insert position |
| Clock | Configure automation | Opens the automation dialog — see Service item automation |
| Edit | Open in editor | Opens /presentations/{id}?fromService={serviceId} |
| Duplicate | Add again | Adds another service item for the same presentation |
| Delete | Remove | Removes this item from the setlist |
Empty state: Add presentations from the library on the left.
Title save and revisions
Blur the title field to save (PATCH /api/services/{serviceId} with expectedRevision and X-Edit-Session-ID). Failure toast: Could not save the title. The client updates revision from the x-artifact-revision response header.
Edit session locking
The builder uses useEditSession with resourceType: "service" — the same lock / challenge / displace family as the presentation editor:
- Only one active editor session per service at a time.
- Mutating requests (add, remove, reorder, title, automation) send
X-Edit-Session-IDwhen your session is active. - If another user holds the lock, you see challenge / locked modals (
EditSession.*).
Add, reorder, and automation controls stay disabled until your session is active. See the presentation editor article for the shared workflow; the service resource label is under EditSession.service.
Open presentation → return to service
Open in editor passes fromService in the URL. The presentation editor shows Back to service so you can return to this builder without losing your place.
Present
Present opens service present mode. Document live operation in Service present mode — not here. From service present you can also reorder the setlist and edit items without returning to the builder.
Per-item automation
Click the clock on an item to configure slide duration and repeat. Full field reference: Service item automation. While live, pause and overrides are in Live controls.
Tips
- Drag presentations onto a specific row to insert before/after; drop on empty Service order to append.
- Use Add again (or Add twice) when the same song appears more than once — each row is a separate service item.
- Prefer finishing order in this builder after adding from the presentations library.
Troubleshooting
I cannot add or reorder items
- Another user may hold the edit session — request access or wait (
EditSession.lockedTitle). Acquire your session before mutating the setlist.
The title did not save
- Blur the title field after editing. You need an active edit session.
The same song appears twice
- Expected when you use Add again or add the same presentation multiple times — each row is a separate service item.
Present is disabled
- Add at least one presentation to Service order. Tooltip: Add at least one presentation before presenting.
Order is wrong after adding from Presentations
- Finish ordering here in the builder — presentations-side Add to service appends; it does not reorder for you.