Skip to content

Door Scanner

This page is for the Door / Crew and Trusted Staff personas working the entrance on event night. The scanner is a web page — no app to install, no per-device setup. If your phone has a camera and a browser, it works. The Door Dashboard has a one-tap link to open it.

The mobile door scanner — what door staff sees on event night

Guests get an email after they buy a ticket with a QR code. At the door, you point your phone's camera at that code and Blaqbook tells you if it's valid. Works on any phone — no app needed, no per-device setup.


Using the Door Scanner on Event Night

The scanner works on any smartphone — no app download needed.

  1. Open a browser on your phone and go to: https://[your-domain]/blaqbook/scanner
  2. Log in if prompted (use the Door/Crew account provided)
  3. Select the event from the dropdown
  4. Point the camera at the QR code on a guest's ticket
  5. Results:
  6. Green checkmark = valid ticket, guest is now marked Attended
  7. Red X = invalid, already scanned, or wrong event (the screen shows the reason)
  8. The attendee count at the top updates in real time

Manual Guest-List Check-In

Sometimes a guest can't pull up their ticket — phone dead, email lost, whatever. You can mark them attended manually from the backend.

  1. In the backend, go to Events → [event name] → Registrations
  2. Find the guest by name or email
  3. Click their registration → click the Attended status label at the top of the form

Adding a Comp (Free) Ticket at the Door

  1. Go to Events → [event name] → Registrations → New
  2. Enter the guest's name and email
  3. Set ticket type to the comp tier and price to $0.00
  4. Set status to Registered

FAQ — Door Scanner

The door scanner shows a red X — why?

Common reasons:

  • Ticket already scanned (duplicate check-in blocked)
  • Wrong event selected in the scanner dropdown
  • Registration is still in "Draft" state (payment may not have cleared)
  • Ticket QR code belongs to a different event

A guest says they bought a ticket but can't find the email.

  1. Go to Events → [event] → Registrations
  2. Search by the guest's email
  3. If found, open their registration and click Send Email to resend the confirmation

Walkthrough: Red X Triage at the Door

The FAQ above lists the four reasons a scan returns a red X. This walkthrough is what you actually do at 11pm Friday with 30 people behind the person blocking the line.

First rule — don't hold up the line

Move the red-X person aside (literally — "hey, come over here for a sec") and signal the next person to scan. Solve their problem in parallel, not in sequence.

Decide which red X you've got

The scanner screen tells you. Read it before doing anything else.

Red X message What it actually means Where to go next
"Already scanned" This QR was already used to check someone in tonight. Already-scanned flow below
"Wrong event" The QR is valid but belongs to a different event. Wrong-event flow below
"Registration in Draft" Stripe didn't return a successful payment, so the ticket is unconfirmed. Draft-state flow below
Unknown / generic error Camera misread the QR, or the QR isn't a Blaqbook ticket. Generic flow below

Already scanned

Most common red X. Someone is either:

  • Re-entering the venue (the door already let them in once and your re-entry stamp / wristband should be on them — check before sending them back outside)
  • A friend or partner showing the same QR (one ticket = one entry; the buyer needs to buy a second ticket)
  • Trying to use a screenshot of a friend's ticket (same as above)

To handle:

  1. Check for a stamp or wristband. If they were inside earlier and stepped out, let them in — your scanner doesn't track re-entries.
  2. If they don't have a stamp, ask politely: "When did you come in tonight?" Their answer tells you whether it's a re-entry or a duplicate.
  3. If it's a duplicate, they need to buy a ticket. Send them to the POS (see Friday-Night POS) or to your manager.

Wrong event

Less common. Someone bought a ticket to next month's show and is showing up to tonight's. Or the scanner dropdown got bumped to the wrong event.

To handle:

  1. Check the scanner's event dropdown at the top. Is it set to tonight? If not, fix it and re-scan.
  2. If the scanner is correct, the buyer's QR is for a different event. They show you their email confirmation — sure enough, it says next Saturday, not tonight.
  3. Their ticket is still valid for that future date. They're at the wrong show. Apologize, don't refund (the ticket is for a real event they can still attend), and either send them away or sell them a ticket for tonight at the POS.

Draft state

Their payment didn't clear. Stripe took the card info but never returned a success callback to Odoo. Most often the card was declined, Stripe failed for some reason, or a webhook didn't reach Odoo.

To handle:

  1. Have them check their email for a Stripe-side payment confirmation. If they don't have one, the payment never went through. Send them to the POS to buy a ticket fresh.
  2. If they DO have a Stripe receipt but their Odoo registration is Draft, the webhook missed. Rare but real. Walk them to the manager:
  3. Manager opens Events → [event] → Registrations on a backend tablet
  4. Manager finds the buyer's registration
  5. Manager clicks the Registered state label to manually confirm it
  6. Buyer re-scans; will now show green
  7. Note in the chatter on that registration: Manual confirm — Stripe webhook missed, buyer showed receipt. For audit.

See Manual Guest-List Check-In above for the backend flow.

Generic error

Something else: blurry camera, QR is too dark in the lighting, buyer's phone glare, or the QR isn't a Blaqbook ticket at all.

To handle:

  1. Have them brighten their phone screen to max.
  2. Re-scan. If it still fails, fall back to manual check-in — get their name and use Manual Guest-List Check-In to mark them Attended from the backend.

Lost-email at the door

Adjacent flow that doesn't trigger a red X (they have no QR to scan in the first place), but worth covering here because the door staff sees it constantly.

  1. "I bought a ticket but can't find the email."
  2. Ask their name and the email they bought under. Send them to the manager (don't try to do this on your scanning phone).
  3. Manager does the Manual Guest-List Check-In flow: backend → Registrations → search by email → click Attended.
  4. If the manager can't find them in Registrations, they probably didn't actually buy a ticket. Send to POS or politely turn away.

Comp ticket on the spot

Adjacent flow: someone's on the DJ's guest list but you can't find them in the regs.

  1. Walk them to the manager.
  2. Manager either: (a) uses a configured door-staff override promo code to issue a free ticket through the POS, or (b) creates a registration manually via Adding a Comp Ticket.
  3. Either way the buyer gets a QR. They walk back to you, you scan green, done.
Patterns worth knowing
  • Pre-event briefing. Before doors at 9pm, walk your door staff through these four red X cases. Five minutes saves you twenty minutes of confused stalling at 11pm.
  • Manager always has the backend open. Friday night the manager runs the floor with a tablet logged into Odoo so they can do manual confirms and lookups without sprinting to the office. The Door Dashboard → Guest Lookup field is built exactly for this.
  • Trust the scan, don't override. If someone insists they bought a ticket but the scanner says No, don't argue from memory — open the backend and look. The data is the data.

  • Events — create the event, set ticket tiers, view the guest list
  • Dashboards — the Door Dashboard has check-in counts and a guest lookup