Admin console

The super-admin control center — platform-wide operational, audit and configuration streams across every organisation.

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

SectionQuestion it answers
OperationsDid the background work run, and what did it produce?
Audit & SecurityWho did what, who was signed in, and who holds elevated access?
ConfigurationWhat is configured, where it is overridden, and what ages out.

Operations

Every run-log the platform produces, in one place.

StreamWhat it shows
Allocation RunsAllocation-engine runs including previews — what was allocated or reverted, when, by whom. See Allocations.
TPS Generation RunsSchedule and invoice generation runs, with correlation ids and per-action counts.
Scheduled Task RunsJob execution history platform-wide. See Scheduled tasks.
Upload RunsEvery bulk-upload run: what was imported, what it produced, and any failure. See Bulk upload.
Retention SweepsEvery retention run, and in shadow mode what it would have removed. See Data retention.
IoT Billing RunsUtility billing batches and their per-unit results.
Integration JobsThe outbound provider-submission queue: every job, its retries, and its failures.
Tax DocumentsEvery tax submission: fiscalisation state, retries, and the receipt returned. See Tax and eTIMS.
BroadcastsEvery 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

StreamWhat it shows
Audit EventsThe append-only record of who changed what, where, and why. See Activity log.
Auth EventsSign-ins, failures, impersonation and session revocations.
User SessionsActive and historical sessions. See Users and roles.
ImpersonationEvery "View as…" session: which operator viewed which workspace, why, and for how long.
Role GrantsEvery 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

StreamWhat it shows
Setting DefinitionsThe catalog of configurable settings. See Settings.
Setting OverridesWhere a setting is overridden, at which scope, and to what value.
Retention PoliciesWhat 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:

RegisterRouteWhat it lists
Properties/propertiesEvery property on the platform, across all management companies.
Companies/companiesEvery 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.

StateWhat it means
BilledLinked to a customer record and invoiced in the window.
Linked, not billedLinked, has a contract, no invoice. Billing has stalled on somebody already agreed. This is the row that costs money.
SuggestedA contract in the platform organisation matches the name. One click away from being a client.
UnconvertedNothing 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.

/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

SurfaceRouteWhat it is for
Banks/banking/banksThe platform's register of banks, shared by every organisation.
Connect a bank/banking/onboardingThe 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.

  1. 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.

  2. 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.

  3. 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

  1. 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.

  2. Look for gaps

    Missing runs matter more than failed ones — failures are already surfaced locally.

  3. Read before you act

    Most streams are read-only by design. Fix the cause in the owning module.

  4. Review grants and impersonation on a schedule

    Both are access questions, and both drift quietly.

Common problems

SymptomCause
A page is empty or bouncesYou are not a super administrator; the console needs a platform-level grant.
A run is missing for one organisationThe job's per-organisation switch is off, or fairness rotation did not reach it.
Integration jobs pile upProvider credentials or mappings are wrong for that organisation, not a queue fault.
A setting behaves unexpectedlyAn override at a narrower scope is winning. Check the override list.
Retention sweeps remove nothingShadow mode — see Data retention.