Administration → Control Center → /admin
Every other page in Nyumba Zetu is scoped to your organisation and branch. The control center is not: it reads across the whole platform, in one list, with no branch or unit picker. It exists to answer operational questions that stop at no single tenant — did that job run everywhere?, who has admin anywhere?, which submissions are stuck?
The three sections
| Section | Question it answers |
|---|---|
| Operations | Did the background work run, and what did it produce? |
| Audit & Security | Who did what, who was signed in, and who holds elevated access? |
| Configuration | What is configured, where it is overridden, and what ages out. |
Operations
Every run-log the platform produces, in one place.
| Stream | What it shows |
|---|---|
| Allocation Runs | Allocation-engine runs including previews — what was allocated or reverted, when, by whom. See Allocations. |
| TPS Generation Runs | Schedule and invoice generation runs, with correlation ids and per-action counts. |
| Scheduled Task Runs | Job execution history platform-wide. See Scheduled tasks. |
| Upload Runs | Every bulk-upload run: what was imported, what it produced, and any failure. See Bulk upload. |
| Retention Sweeps | Every retention run, and in shadow mode what it would have removed. See Data retention. |
| IoT Billing Runs | Utility billing batches and their per-unit results. |
| Integration Jobs | The outbound provider-submission queue: every job, its retries, and its failures. |
| Tax Documents | Every tax submission: fiscalisation state, retries, and the receipt returned. See Tax and eTIMS. |
| Broadcasts | Every bulk message run: audience, channel, and delivery outcome. |
The useful pattern here is absence, not error. A job that failed is visible in its own module. A job that never ran for one organisation out of a hundred is only visible from a platform-wide list.
Integration jobs
The submission queue that carries documents to external providers. A job that keeps retrying is usually a credential or mapping problem at the organisation level rather than a transient outage — check the failure reason before requeuing, and fix the mapping rather than the job.
Audit & security
| Stream | What it shows |
|---|---|
| Audit Events | The append-only record of who changed what, where, and why. See Activity log. |
| Auth Events | Sign-ins, failures, impersonation and session revocations. |
| User Sessions | Active and historical sessions. See Users and roles. |
| Impersonation | Every "View as…" session: which operator viewed which workspace, why, and for how long. |
| Role Grants | Every admin-tier grant: who holds it, on which node, and since when. |
Auth events
Sign-in outcomes across the platform. Read it for patterns, not individual lines: repeated failures against one account, successful sign-ins from an unexpected location, or a burst of revocations.
Impersonation
Support work sometimes needs an operator to see exactly what a user sees. Every such session is recorded with its operator, its target workspace, its stated reason and its duration. Impersonation is a normal support tool; an impersonation session with no reason, or one that runs unusually long, is the thing to ask about.
Role grants
Review it on a cadence. A grant with no current owner — someone who has left, or a temporary escalation never withdrawn — is the most common finding.
Configuration
| Stream | What it shows |
|---|---|
| Setting Definitions | The catalog of configurable settings. See Settings. |
| Setting Overrides | Where a setting is overridden, at which scope, and to what value. |
| Retention Policies | What ages out of which table, after how long, and whether armed. See Data retention. |
Overrides are where unexplained behaviour usually hides: a value set at branch or unit scope years ago that still wins over the organisation default. The override list shows the scope chain resolved, so you can see which level actually applies.
The platform directory
Two cross-tenant registers, for the whole platform rather than one organisation:
| Register | Route | What it lists |
|---|---|---|
| Properties | /properties | Every property on the platform, across all management companies. |
| Companies | /companies | Every management company, with the portfolio it runs. |
Filter by live, dormant or no units, search by name, sort by size or recency, and switch between cards and a table. A company links to its properties and a property links back to its company, so you can walk the tree either way.
Opening one shows its metrics — properties, blocks, units, occupancy and tenancies — and its identity and contact details.
Clients — who we are not billing
/admin/clients answers one question: which organisations on the platform are we actually
invoicing, and which have fallen through. Four counts lead the page and the table follows whichever
one you press.
| State | What it means |
|---|---|
| Billed | Linked to a customer record and invoiced in the window. |
| Linked, not billed | Linked, has a contract, no invoice. Billing has stalled on somebody already agreed. This is the row that costs money. |
| Suggested | A contract in the platform organisation matches the name. One click away from being a client. |
| Unconverted | Nothing on file resembles them. A conversation, not a click. |
The last two are both "not a client yet", and they are kept apart deliberately because the work each one needs is different.
Vendor links — which rows are one company
/admin/vendor-links records that several vendor rows are the same real company. A utility named
separately under every property it serves is the common case: one supplier appearing as dozens of
unconnected rows that no spend report can add together.
Linking records the relationship. It does not merge the rows or move their history — each keeps the expenses filed against it. See Vendors for scoping a vendor to the organisation so new spend lands on one record going forward.
The bank registry
| Surface | Route | What it is for |
|---|---|---|
| Banks | /banking/banks | The platform's register of banks, shared by every organisation. |
| Connect a bank | /banking/onboarding | The guided flow that sets a client up to collect through a bank, including generating the letters the bank asks for. |
Both surfaces are restricted to platform staff. An organisation administrator who reaches these routes is refused by the server, so use Bank accounts for anything tenant-scoped.
Standing a client or property down
When a client leaves, deactivate them rather than deleting them. Deactivate is on the record's
drawer, and the archive lives at /deactivated.
See what it covers
Before anything changes, you are shown the counts — properties, units, tenancies, schedules and staff — and any warnings, such as money still owed or tenancies still live.
Give a reason and a date
The reason comes from a fixed list; some reasons require a note. The date they stopped is often earlier than today, and it is the date reports will use.
Confirm by typing the name
Then the record and everything under it is hidden from live lists.
What deactivation does and does not do:
- Nothing is destroyed. The record and its history stay readable in the archive, and Bring back restores exactly what was stood down — not anything that was already deleted before.
- Deactivating a property does not deactivate the client, and standing down a client's last property does not cascade upward.
- Staff of a deactivated client can no longer sign in. This does not apply to property deactivation.
Records removed before deactivation was introduced appear in the archive with no reason recorded and cannot be restored — there is no list of what they affected to restore from.
Product feedback
/admin/feedback reads what people said when the product asked whether a surface was useful — how
often each surface was asked about, how many answered, and how many found it useful.
Three reporting rules worth knowing: the response rate is a column, not a footnote; a dismissal is never counted as a "no"; and below a minimum sample the percentage is withheld and the raw counts are shown instead.
Using the console well
Start from the stream, not the organisation
The console's value is the cross-tenant view. If you already know the organisation, work inside it.
Look for gaps
Missing runs matter more than failed ones — failures are already surfaced locally.
Read before you act
Most streams are read-only by design. Fix the cause in the owning module.
Review grants and impersonation on a schedule
Both are access questions, and both drift quietly.
Common problems
| Symptom | Cause |
|---|---|
| A page is empty or bounces | You are not a super administrator; the console needs a platform-level grant. |
| A run is missing for one organisation | The job's per-organisation switch is off, or fairness rotation did not reach it. |
| Integration jobs pile up | Provider credentials or mappings are wrong for that organisation, not a queue fault. |
| A setting behaves unexpectedly | An override at a narrower scope is winning. Check the override list. |
| Retention sweeps remove nothing | Shadow mode — see Data retention. |