Restricted to accounts with the admin claim
The 20 newest accounts. Click a row to open it in the support console.
Search by email, username, user number (#42) or UID.
—
Everything here runs server-side and takes effect immediately.
Updates Auth and the profile document, resets verified status and emails the new address.
For refunds, goodwill and comped accounts. A later RevenueCat event for this user will overwrite whatever you set here.
Deletes the Auth user, which cascades into their collection, armies, recipes, username reservation and uploaded images. There is no undo. Type the account's email to confirm.
Issue reports and catalog requests submitted from inside the app.
Every submission also emails support@hobbyarmory.de. Nothing marked status before this console existed, so the backlog counts every report ever sent — clear it once and the count becomes meaningful.
Answer writes the reply and tells the ingestion pipeline what to do with the request in one step — the template you pick is the decision it reads back. Nothing is sent until you have seen the text.
Sets the ingestion pipeline has researched but will not publish on its own. Every open question has to be answered before a proposal can be approved — an unanswered question is the pipeline saying it would be guessing.
Look for new sets runs the pipeline on the Mac: it reads new app requests, reads the Sunday Preview, researches what it finds and queues it here. It never publishes. Reload list only re-reads this page — it does not go looking for anything.
High confidence means the pipeline resolved a name, faction, alliance, contents and barcode, and has no open question that could change any of them. Bulk approval only ever touches those — anything with a real question is left for you.
Search by name, barcode or set id. Editing one here queues a correction in exactly the shape a user's issue report produces, so it is reviewed, published and undone the same way — and the workbook is still the only thing that writes the catalog.
What you see here is Firestore, which is what the app reads. The workbook is the source of truth and is one publish ahead of it at most, so a change you make here is checked against the real row before it is written — and refused, with the reason, if the row has moved since.
Every proposal that reached a decision, newest first. A set counts as published only once it is in the workbook, in Google Sheets and in Firestore — which is also the point at which the person who asked for it gets an email.
Paints the pipeline found on a manufacturer's own shop and could not
colour. It knows the name, the range, the product code and the
barcode — it refuses to guess the one value nobody can check by
looking at it, so the paint waits here instead of reaching the app
with an invented hex.
Give it a colour and approve it, and it publishes on the next paint
run — Monday morning, or now with Publish approved paints. Most of these need nothing: the makers put swatch charts up
eventually and the pipeline measures them by itself. This is for the
ones you want sooner, and for saying not a paint to the
things that slipped through.
"This swatch is wrong", sent from the app. This is the only route by
which a user can correct a colour, and it used to end in an inbox —
fixing one meant opening the workbook by hand.
Pick the colour you want and apply it. It is written into the master
on the next paint run and pinned, so the weekly
resolve cannot put the old value back — otherwise the paint looks
wrong again and the same person reports it again next month.
Averages are over every account, including the ones that never got started — the median and the share of accounts using a feature say more about a typical user than the mean does.
Active means the app refreshed the account's sign-in token inside the window, which is what an opened app does — people stay signed in for months, so the last sign-in date would call a daily user dormant.
From the same snapshot as the table above.
The last 12 months with at least one signup.
Queued through the firestore-send-email extension. Every message gets an unsubscribe footer, and opted-out users are excluded automatically.
Updates as you type. This is exactly what is sent — your HTML plus the unsubscribe footer, with no styling added around it. If it looks unstyled here, it arrives unstyled.