Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.qflowhub.io/llms.txt

Use this file to discover all available pages before exploring further.

Tags are labels you attach to attendees. A tag can be anything (VIP, Speaker, Vegan), but prefixed tags trigger special behaviour in the Qflow dashboard and scanner apps — icons, statistics grouping, and which tags count toward headline guest totals.

Plain tags

Any string without a special prefix is a plain tag. Filtering, search and reports work fine on plain tags; the only things they don’t get are special icons or grouping.
"tags": "VIP, Speaker, Vegan"

Prefixed tags

Five prefixes carry meaning. Add them at the start of the tag name:
PrefixMeaningIconCounts toward total?
{tickettype}Ticket type (Main entry, Day pass, Comp, …)🎫
{session}Session / time-slot / room📅
{extra}Extra add-on (parking, locker, plus-one upgrade)👤➕
{merch}Merchandise (t-shirt size, swag bag)🛍️
{rsvp}RSVP status✉️✓
Examples:
"tags": "{tickettype}Main Entry, {session}Keynote, {extra}Parking, {merch}T-Shirt L"
The dashboard shows the tag with its icon and groups statistics by prefix. Scanner apps pick up the same convention.

Why “counts toward total?” matters

Headline guest totals on event statistics show “X of Y” — how many of the actual attendees have arrived. {extra} and {merch} tags don’t represent extra people (they’re add-ons attached to an existing attendee), so they’re excluded from the headline count. Plain tags and the other three prefixes count.

Tree tags

For hierarchical classification (e.g. session schedule with multiple sub-sessions), use the :: tree-tag format:
"tags": "::Sessions:Day 1:Keynote, ::Sessions:Day 2:Workshop A"
The dashboard renders these in a collapsible tree under a top-level Sessions header. Useful when you’ve got 50+ session tags and a flat list would overwhelm the UI.

Non-countable tree tags

Suffix a tree-tag leaf with *- to mark it non-countable (same effect as {extra} / {merch} — excluded from headline totals):
"tags": "::Merch:T-Shirt:Large*-"

Setting tags via the API

Tags are passed as a comma-separated string on guest create / upsert:
curl -X POST 'https://api.qflowhub.io/checkin/v1/api/guest' \
  -H 'Authorization: Bearer <token>' \
  -H 'Ocp-Apim-Subscription-Key: <subscription_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "firstName": "Joe",
    "lastName":  "Bloggs",
    "email":     "joe@example.com",
    "eventId":   "<event guid>",
    "tags":      "VIP, {tickettype}Main Entry, {session}Keynote, ::Sessions:Day 1:Workshop A"
  }'
Special characters are stripped server-side: #, %, ', ", and newlines. Leading/trailing whitespace is trimmed.

Querying by tag

The Check-in API has an endpoint for fetching attendees with a specific tag — see GET /checkin/v1/api/guests/{eventId}/bytag in the API reference.