LiveCloud · Complete Operations Guide

Festival Pass, Login Link, Beats, Pant & Garderobe

Every flow, every persona, both systems (FMS back-office and the guest webticket/app). Each screen below mirrors the live UI and quotes the exact Danish labels in grey, so nobody is in doubt about which control to use.

The three people in every flow

Operator

Festival back-office in FMS. Configures products, comps passes, gives Beats, generates login links, looks up guests.

staging-fms.livecloud.dk · Drift → Deltagere

Staff

Front-line at a bar / booth / return point / cloakroom desk. Uses the scanner / POS app with a vendor key to scan guests and move Beats.

Scanner app · vendor API key (lcap_…)

Guest

The attendee. Uses the native app or the webticket (browser) to hold a pass, spend Beats, get refunds and show QR codes.

App · …-webticket-…livecloud.dk
What the words mean

Beats

The festival wallet currency. 1 Beat = 1 DKK. Held on the guest’s profile; used for the store, bar, Pant deposits and Garderobe fees.

Festival Pass

The paid entry credential — 75 kr, valid 1 year, one-time (not a subscription). Required for everyone; can be comped for free.

App vs Webticket

The app is the full native experience. The webticket is the same account in a browser — the fallback for guests without the app or without MitID.

GUIDE 1

Festival Pass

GuestOperator

The paid entry credential (75 kr / 1 year). It gates the entry credential (wallet / QR / wristband) and the buy-actions. LiveCloud sells it as its own product, so it is additive — it does not touch the festival’s ticket revenue. Everyone needs one; specific guests can be comped for free.

Guest
Buys in app
OR
Operator comps it free
System
Pass active
Valid 1 year
System
Gates unlock
Entry credential + buy-actions
Guest
Near expiry
One-tap renew prompt
Setup · one-time per summit Operator

The “Festival Pass” product must exist for the summit (on staging it is seeded). If not, create it under /commerce/products as a PlatformAccess product, price 7500 (75.00 kr), meta.platform_access = { billing_interval:"one_time", duration_days:365 }, published to the guest-app channel.

Guest Buying a pass (app)
  1. In the app, the guest opens the Festival Pass and pays the 75 kr with a card.

  2. The pass is granted for one year.

    Entry credential + buy-actions unlock automatically.

Operator Comping a free pass (FMS)
  1. Drift → Deltagere, open the guest.

  2. HandlingerGiv gratis festivalpas.

  3. Type a reason in Årsag (required, written to the audit log), then confirm.

    Toast: “Gratis festivalpas tildelt.” A comped pass is identical to a paid one at the gate.

FMS · comp dialog
Giv gratis festivalpas til Tony Mortensen
Tildeler et gratis festivalpas (adgang til festivalen og dit armbånd) uden gebyret på 75 kr. Bruges til myndigheder, artister, personale og VIP. Gælder ét år.
Årsag *
Hvorfor gives festivalpasset gratis? (fx artist, personale, myndighed, VIP)
Påkrævet for audit-spor. Synligt i admin-logs.
AnnullérGiv gratis festivalpas
Gratis festivalpas tildelt.

Gate & renewal (guest, app): without an active pass, the entry credential and buy-actions are blocked (the block only triggers on a definite “no pass” — network hiccups fail open, so a guest is never wrongly locked out). Near expiry the guest gets a one-tap renewal prompt (it is one-time, not an auto-charging subscription). Repeating the comp on the same guest is safe — it returns the existing pass, never a duplicate.

GUIDE 3

Beats wallet

GuestOperatorStaff

Beats is the festival wallet currency (1 Beat = 1 DKK). Guests fund it, then spend it on the store, bar, Pant deposits and Garderobe fees. Operators can gift or deduct Beats by hand.

Guest
Top up (app)
OR
Operator gives Beats (FMS)
System
Beats in wallet
On the guest profile
Staff
Spend
Bar · store · Pant · Garderobe
Operator Give a guest Beats (FMS)
  1. Open the guest → HandlingerUdsted produkt.

  2. Pick a Beats amount in Produkt (e.g. 100 Beats).

  3. Under Betalingsmetode choose Gratis (gave) to gift it, or Træk fra beats to deduct.

  4. Add a reason → Udsted produkt.

    Toast: “Product given to attendee.” The Credits field updates at once (e.g. 100 Beats).

FMS · give-product dialog
Udsted produkt til Tony Mortensen
Vælg et produkt og betalingsmetode at give til denne gæst.
Produkt
100 Beats — 10000 DKK (credit_wallet)
Betalingsmetode
Gratis (gave)
Træk fra beats (saldo: 0)
Årsag *
Hvorfor allokeres disse beats?
AnnullérUdsted produkt

Guest side: the guest tops up with a card in the app, and sees the balance in the app or webticket wallet. When paying an order with Beats, the system charges the correct amount (the øre→Beats conversion is applied — a 20 kr item costs 20 Beats, not 2000).

GUIDE 4

Pant — deposit refunded on return

GuestStaff

A Pant item (e.g. a reusable cup) carries a refundable Beats deposit. The guest pays it at purchase and gets it back when they return the item to staff. Net wallet change over buy + return is zero.

Guest
Buy the item
Deposit charged in Beats (app)
System
Outstanding
Shown in “Min pant”
Guest
Return item
Shows QR at return point
Staff
Scan & confirm
Scanner app
System
Refund
Deposit back to Beats
Setup Operator

A Pant product must exist — a Deposit product with meta.pant.deposit_amount in Beats (seeded on staging: Genbrugskrus = 20 Beats). The return scanner needs a vendor API key: /commerce/vendors → open the vendor → create an API-nøgle, put the lcap_… key in that vendor’s scanner.

Guest Buy the deposit item
  1. The guest buys the item in the app; the deposit is charged from their Beats wallet and tracked as outstanding.

    An operator can also do it: Ordrer → opret the item, then Træk fra wallet (charge-wallet).

Staff Take the return
  1. At the return point, the guest opens Min pant and shows the QR.

  2. Staff scan the guest and confirm the return in the scanner app.

    The deposit is refunded to the guest’s Beats wallet (e.g. +20 Beats) and the item drops off the outstanding list.

Guest phone · “Min pant”
Min pant
Udestående pant
Genbrugskrus (pant)
Antal: 1 · depositum 20 Beats
Vis koden ved boden for at få pant retur

Guardrails (already verified): scanning the same item twice refunds nothing the second time (“no outstanding deposit”). A partial return (e.g. 2 of 3) leaves the rest outstanding. Requesting more than is outstanding refunds only what is owed — never more.

GUIDE 5

Garderobe — cloakroom rental

GuestStaff

A cloakroom rental fee in Beats, charged when staff hang the guest’s coat and bind a hanger to them. Fee-only — not refunded at pickup (it is a rental, not a deposit).

Guest
Has Beats
Funded beforehand
Staff
Bind hanger
Scan guest + hanger → fee charged
Guest
Enjoys festival
Coat is bound to them
Staff
Release
Scan hanger at pickup · no refund
Setup Operator

A Garderobe product must exist — a Rental product with meta.garderobe.rental_fee in Beats (seeded on staging: 30 Beats). Same vendor API key as Pant. Precondition: the guest must already hold enough Beats (see Guide 3) — the fee is charged live at bind.

Staff Bind (drop-off)
  1. Staff scan the guest and the hanger in the scanner app.

    The fee is charged (e.g. −30 Beats) and the hanger is bound to the guest.

Staff Release (pickup)
  1. At pickup, staff scan the hanger to release it.

    Hanger freed, no refund. The guest keeps the difference of their balance; the rental fee stays spent.

Guest phone · “Min garderobe”
Min garderobe
Aktiv garderobe
Bøjle H-042
Leje betalt · 30 Beats
Vis koden ved afhentning

Guardrails (already verified): a guest with too few Beats is declined with no charge and no hanger bound. Binding a hanger that is already in use is blocked (“hanger in use”) with no second charge. Releasing an already-released or unknown hanger is a safe no-op. Release never refunds.

REF

Money-safety — what the guards do

The behaviours below are built in and were verified on staging. Staff and operators do not need to do anything special — this is what the system guarantees if a scan or click is repeated or mistaken.

FlowIf this happens…The system…
PANT Double returnSame item scanned for return twice.Refunds the deposit once. The second scan refunds 0 (“no outstanding deposit”).
PANT Over-quantityReturn more than is outstanding.Refunds only what is owed — never over-refunds.
GARDEROBE Insufficient BeatsGuest can’t cover the fee at bind.Declines with no charge and no hanger bound (nothing partial).
GARDEROBE Double-bindSame hanger bound twice (even racing).One charge only; the second is blocked (“hanger in use”).
GARDEROBE Re-releaseRelease a hanger already released / unknown.Safe no-op, no error, no wallet change.
PASS Repeat compComp the same guest twice.Returns the existing pass — never a duplicate.
BEATS Pay with BeatsGuest pays an order with Beats.Charges the correct amount — a 20 kr item costs 20 Beats (the øre→Beats conversion is applied).