# Latest features: the admin

> What's new in the CBX backend — dark mode, on-screen help, one save path, and new screens for API tokens, product transfer, the payment ledger and the assistant's journal.

Source: CBX documentation, version 3.x (released). Canonical page: https://docs.configbox.at/docs/features/latest/admin-experience. Last updated 2026-08-25.

---
**The back office got a lot of small repairs and a few whole new screens.** Most of what follows is the
kind of thing nobody puts on a feature list and everybody notices on day two: a form that saves the same
way everywhere, a refusal that explains itself, help that is already on the screen, a backend that is
readable at 11pm.

← [Back to Latest features](https://docs.configbox.at/docs/features/latest/)

---

## Dark mode, and one button family

The CBX backend follows the host admin's **light / dark / auto** preference — menus, forms, lists, the
calculation and rule editors, the dropdowns. Nothing to configure inside CBX; it reads the admin
template's own choice, and on hosts whose template does not announce it, the resolved scheme is stamped
on each view so `prefers-color-scheme` still works.

- [What operators see](https://docs.configbox.at/docs/migration-to-cb4/whats-new-for-operators)
- [Host-adaptation stylesheets — how CBX blends into three different admin chromes](https://docs.configbox.at/docs/technical/host_stylesheets)
- [The `data-bs-theme` stamp, and where it is and is not emitted](https://docs.configbox.at/docs/technical/kenedo_view#51-the-wrapper-carries-the-manifest--getviewattributes-906)

## The help is on the screen, and it is yours to change

Every backend list and form carries a short note in a help drawer, written from the shipping Admin
Guide rather than maintained separately. On a customized install that would be worse than nothing — so
the notes are extensible: append to any screen's note, add your own articles in a **Customizations**
section, or shadow a shipped article entirely, all from the upgrade-safe customization layer.

- [On-screen help: amend, extend or shadow it](https://docs.configbox.at/docs/customization/help_customization)
- [A tour of the admin screens](https://docs.configbox.at/docs/admin-guide/getting-started/the-admin-screens)

## One way to save, and refusals that say why

Every base admin task — store, delete, copy, publish, reorder — now authorizes, delegates to the model,
purges the cache and answers with **one typed JSON envelope**. The `ajax*` variants that existed only to
force the JSON branch are deprecated aliases; no task renders a list any more. The practical effect is
that a refusal carries its reason: deleting a record something else still points at returns
`409 RECORD_IN_USE` **with the model's own "linked with these records" explanation**, instead of a
silent failure or a generic error.

- [Every base task, its parameters and its exact responses](https://docs.configbox.at/docs/technical/kenedo_controller#6-the-rest-of-the-task-catalog)
- [The response envelope contract](https://docs.configbox.at/docs/technical/api_contract)

## New screens

### API tokens

Minting, listing and revoking the bearer tokens that authenticate the HTTP API is an admin screen, with
per-token scopes and expiry — you do not need shell access to give an integration a key, and you do not
need to hand out a superuser account either.

- [Admin Guide: manage API tokens](https://docs.configbox.at/docs/admin-guide/settings/manage-api-tokens) ·
  [what the tokens authorize](https://docs.configbox.at/docs/features/latest/http-api)

### Product transfer

Export a product — its pages, questions, answers, detail panes, rules, calculations and images — as a
package, and import it into another install. The screen validates a package **before anything is
written**: blockers stop the import, warnings are shown for the operator to acknowledge.

- [Admin Guide: move products between sites](https://docs.configbox.at/docs/admin-guide/products/move-products-between-sites)
- [The package format, both import modes, and what is validated](https://docs.configbox.at/docs/technical/product_transfer#5-validation-runs-before-anything-is-written)

### The payment ledger

A filterable list of every payment (state, provider, test mode, date, order number), each row opening a
detail view with the **full event timeline**, the provider's references, and the actions an operator
actually needs: mark settled, mark failed, add a note, check with the provider. A refused transition
shows its reason rather than dressing up as success. Alongside it: a payment-methods form that leads
with the provider and swaps its configuration fields live, and a recent-events view for when a webhook
misbehaves.

- [Admin surfaces, and how provider secrets are stored](https://docs.configbox.at/docs/technical/payments#8-admin-surfaces)
- [Admin Guide: track payments](https://docs.configbox.at/docs/admin-guide/orders/track-payments) ·
  [set up payment methods](https://docs.configbox.at/docs/admin-guide/commerce/set-up-payment-methods) ·
  [choose a provider](https://docs.configbox.at/docs/admin-guide/commerce/payment-providers)

### The assistant's journal and its reports

If the store runs the [AI assistant](https://docs.configbox.at/docs/features/latest/ai-assistant), the admin gets the record of it: every
conversation with its turns, the model's stated reasons, every selection it attempted and every one the
guards refused — plus a wishlist of what visitors asked for and the assistant could not do, and an
insights report over the whole corpus.

- [Read the conversation journal](https://docs.configbox.at/docs/admin-guide/ai-assistant/read-the-conversation-journal)
- [Run the insights report](https://docs.configbox.at/docs/admin-guide/ai-assistant/run-the-insights-report)
- [Work the wishlist](https://docs.configbox.at/docs/admin-guide/ai-assistant/work-the-wishlist) ·
  [send recommendations to your team](https://docs.configbox.at/docs/admin-guide/ai-assistant/send-recommendations-to-your-team)

## Deleting a product is a first-class operation

A product is a graph, so deleting one is too. The admin deletes the product **and** its pages,
questions, answers, detail panes, examples, its own calculations and their translations and files —
behind a typed confirmation, and refused outright if anything outside the product still needs one of
those records. A calculation that belongs to no product, or is used by another one, is left alone.
Products referenced by past orders should be retired rather than deleted, and the guide says so.

- [Admin Guide: copy and retire products](https://docs.configbox.at/docs/admin-guide/products/copy-and-retire-products)
- [What travels on a copy, and what a child list can opt out of](https://docs.configbox.at/docs/technical/property-types/childentries)
- [The same operation as a tool: `cbx_delete_product_deep`](https://docs.configbox.at/docs/features/latest/mcp-server)

## Setup, health and the recurring jobs

- [Run the setup wizard](https://docs.configbox.at/docs/admin-guide/getting-started/run-the-setup-wizard) — store identity,
  country and tax mode, base currency, licence.
- [The dashboard is a health check](https://docs.configbox.at/docs/admin-guide/getting-started/check-the-dashboard) — the
  first place to look, including whether the database is on the charset CBX expects.
- [Schedule the recurring scripts](https://docs.configbox.at/docs/admin-guide/getting-started/schedule-the-recurring-scripts)
  — the jobs that want a cron entry, now that several of them exist ([see the CLI](https://docs.configbox.at/docs/features/latest/cli)).

## Authoring rules and prices

The rule editor validates a rule **when it is saved**, rather than letting a broken condition sit in the
catalog until a customer meets it; calculations come in three forms (formula, code expression, matrix
lookup) and each has a guide with worked examples.

- [Build a rule](https://docs.configbox.at/docs/admin-guide/rules/build-a-rule) ·
  [rule recipes](https://docs.configbox.at/docs/admin-guide/rules/rule-recipes) ·
  [control what happens on change](https://docs.configbox.at/docs/admin-guide/rules/control-what-happens-on-change)
- [Build a calculation](https://docs.configbox.at/docs/admin-guide/pricing/build-a-calculation) ·
  [price with a matrix](https://docs.configbox.at/docs/admin-guide/pricing/price-with-a-matrix) ·
  [write a code expression](https://docs.configbox.at/docs/admin-guide/pricing/write-a-code-expression) ·
  [recurring pricing](https://docs.configbox.at/docs/admin-guide/pricing/recurring-pricing)

---

*Next: [the HTTP API](https://docs.configbox.at/docs/features/latest/http-api) · [the CLI](https://docs.configbox.at/docs/features/latest/cli) ·
[back to Latest features](https://docs.configbox.at/docs/features/latest/)*
