Skip to main content

Configure tickets

After a draft event has its dates and location, set up the ticket specifications people will buy. This workflow walks through adding two SKUs, fixing a price you weren't happy with, and activating them so they go on sale.

All steps require a JWT — get one from the homepage first.

1. Add a member ticket​

price is in øre / cents — 25000 = 250 DKK. Activate at create time (isActive: true) only if you're confident in the price; otherwise keep it inactive so you can edit later.

mutation addMemberTicket($input: AddTicketSpecificationInput!) {
addTicketSpecification(input: $input) {
ticketSpecification {
id
name
price
isActive
}
}
}

Save the returned ticketSpecification.id — you'll need it for step 2 if you decide to edit the price.

2. Add a guest ticket​

A second SKU at a higher price for non-members.

mutation addGuestTicket($input: AddTicketSpecificationInput!) {
addTicketSpecification(input: $input) {
ticketSpecification {
id
name
price
}
}
}

3. (Optional) Adjust the price before activation​

editTicketSpecification is allowed only while the spec is inactive. Pass null for any field you want to leave unchanged.

mutation lowerMemberPrice($input: EditTicketSpecificationInput!) {
editTicketSpecification(input: $input) {
ticketSpecification {
id
name
price
}
}
}

4. Activate​

Flip isActive: true to make the spec purchasable. Run this once per spec.

mutation activateSpec($input: EditTicketSpecificationActiveStateInput!) {
editTicketSpecificationActiveState(input: $input) {
ticketSpecification {
id
isActive
}
}
}

Once active, the only field you can change is isActive itself (toggle back to false to allow editing). Sold tickets prevent the spec from being removed entirely.

5. Verify​

Pull every spec back on the event to double-check.

query verifyTicketSpecs($id: UUID!) {
events(where: { id: { eq: $id } }, first: 1) {
nodes {
id
name
ticketSpecifications {
id
name
price
includeVat
numberOfTicketsForSale
maximumNumberOfTicketsPerUser
numberOfTicketsSold
isActive
}
}
}
}

Next: assign inspectors — see Assign inspectors.