21.05.2026
Manage events
This guide describes the newer features around events (TicketEvents): duplicating, bulk-editing events, bulk actions for participants, Excel export, and automatic role assignment via the participant list and QR scanner.
1. Duplicating an event
In the list of events, each row shows a Duplicate button (icon: two cards). A single click immediately creates a copy.
What happens when you duplicate:
All fields are copied over (name, teaser, location, start/end, quotas, email texts, dynamic participant attributes, images).
The name gets the suffix (Copy) (localised per language).
A new slug is generated following the pattern
YYYY-MM-DD-name[-n]. If a slug with the same date/name already exists (including in the trash), a counter is appended.The assigned organisational unit is copied along with it; the copied event therefore belongs to the same organisational unit.
Uploaded images are physically copied.
What is not copied:
Participants (registrations) — the copy starts empty.
created_by/updated_byare set to the current user.
Permissions:
You need both read (
view) and create (create) rights for TicketEvents in the source unit.
2. Bulk-editing multiple events
Above the event list you can tick multiple rows via checkboxes. As soon as at least one row is selected, the bulk-edit bar "X selected" appears in the top left, with these actions:
Edit – opens the bulk-edit dialog.
Delete – opens the confirmation dialog for a bulk deletion.
2.1 Changing fields in bulk
In the edit dialog you select the fields on the left that should be changed, and enter the new values on the right. Only explicitly activated fields are overwritten – everything else is retained per event.
Supported fields:
Field | Note |
|---|---|
Name, teaser, location | Plain text fields |
Start (date + time) | Interpreted in the unit's time zone and stored in UTC |
End (date + time) | Must be after |
Max. tickets | Integer ≥ 0 |
Max. tickets per request | Integer ≥ 0 |
Email text for request / confirmation / cancellation | Accepts free text |
Participant attributes ( | Dynamic blueprint for registration fields |
2.2 Dynamic participant attributes in bulk-editing
In bulk-editing you can adjust the registration form for several events at once. The following properties can be configured per attribute:
Key (
key) – lowercase letters, digits, underscore; cannot be changed after creation.Display name, Required field, Validation.
Type:
string(single-line),text(multi-line),check(checkbox),select,multi-select.For
select/multi-selectyou maintain Options.
The "Edit JSON" button opens an editor where the entire blueprint can be entered as JSON (useful for complex configurations or copy/paste between events).
Important – safety net: If you activate the attribute field but don't define a single entry, the change is discarded. Otherwise all dynamic registration fields on the selected events would be deleted.
2.3 Per-entry permission check
Bulk-editing checks the permission individually for each event:
Events without update rights are skipped (
skipped).The response contains the fields
count(successful) andskipped.An invalid date (end ≤ start) also leads to skipping instead of aborting.
2.4 Bulk deletion
The Delete action deletes the selected events (soft delete). Here too, the delete permission is checked per entry; unauthorised entries remain untouched.
3. Managing participants in an event
The participant list of an event has a checkbox selection column. As soon as at least one participant is selected, the bulk-edit bar "X selected" appears at the top.
3.1 Sending email to a selection
Four email types are available:
Confirmation email – uses the template for confirmed tickets. If the participant doesn't yet have a token, one is generated automatically when sending.
Request email – the email normally sent when a request is made.
Cancellation email – the email normally sent on cancellation.
Free email – freely chosen subject and content. You can use it to send notices about programme changes or reminders, for example.
3.2 Changing status in bulk
Permitted target statuses: pending, confirmed, validated, canceled.
Status | Effect |
|---|---|
| Status is set; request email is sent |
| Status is set; token is generated if needed; confirmation email is sent |
| Only possible for participants who are already |
| Status is set; cancellation email is sent |
Permission: The target status validated requires the validateTicket permission (not just the normal update permission). Other status changes go through the update permission.
3.3 Assigning a role in bulk
With this action you can assign one or more roles to a group of participants.
How the selection works:
The list only offers roles that you are allowed to assign yourself — that is, roles in which you hold the
can_assign_rolepermission (viaroles_via_roles).Multiple roles can be selected at once.
How it is applied:
Only participants who already have a user account (
user_id) assigned to them receive the role. Other participants are skipped and counted — the feedback reports both numbers (Role(s) were assigned to N participants. M participants without a user account were skipped.).The assignment is additive (
syncWithoutDetaching). Existing roles are retained — nobody accidentally loses permissions.
Linking participant ↔ user account: During registration, the system automatically searches for an existing user by email address and links them if found. If a profile icon appears at the end of a row in the participant list, a user link exists. The icon takes you straight to the user's page.
3.4 Deleting participants in bulk
Deletes all selected participants permanently (no soft delete in the participant model). Explicit confirmation is required before deletion.
3.5 Excel export
The "Export Excel" button (above the participant list) lets you download the complete participant list. In addition to the core data, the export also contains:
Registration/confirmation/validation/cancellation timestamps
Created by / validated by / cancelled by
Values of all dynamic participant attributes
File name: participants-<slug>-<YYYYMMDD-HHMMSS>.xlsx.
4. QR scanner: admission and role assignment
An event's QR scanner has two operating modes. The selector sits above the camera image and is only visible if you have at least one role with the can_assign_role permission assigned to you.
4.1 "Admission control" mode (default mode)
Default behaviour: When a ticket is scanned, the ticket is validated (status validated) and the participant is shown with their ticket count. No change to roles.
4.2 "Role assignment" mode
In addition to validation, scanning assigns the selected role to the user behind the participant.
In the "Assign role after scan" dropdown, choose a role from your assignable roles. If you leave the field empty, the mode behaves like "Admission control".
If the participant has no linked user account, no role can be assigned.
On success, a window appears showing the role name.
The assignment is additive: existing roles are retained.
Typical use: admit attendees at conferences/workshops and automatically grant a day role (e.g. workshop access) at the same time.
5. Permissions at a glance
Action | Checked permission |
|---|---|
Duplicate event |
|
Bulk-delete events |
|
Bulk-edit events |
|
Participant bulk email / status / delete |
|
Set participant to |
|
Assign participant role (bulk or QR) |
|
The following applies to all bulk endpoints: Missing permissions do not cause a complete abort, but instead increment the skipped counter in the response. This makes the actions suitable even for mixed sets spanning multiple units.
6. Common pitfalls
"Status change to validated was skipped." The participant wasn't in status
confirmed. Confirm first, then validate."Role was not assigned." The participant has no linked user account. Solution: create a user or match the participant's email address with the existing account.
"The mode selector in the QR scanner is not visible." Then you are missing the
can_assign_rolepermission in any of your roles."The dynamic attributes in bulk-editing have disappeared." If the blueprint was submitted empty, the field is intentionally discarded so as not to destroy any configurations. At least one attribute must be entered.