Nordi console

N OwnerNordi console
Owner
Client

Your whole installation at a glance — live numbers, and anything that needs your attention before a client notices it.

Loading…
Checking every client’s health…

Each school using Nordi is a separate client, kept apart from every other school's data. Unlock with the operator root token to see everything on the server, then log into any client to work on it.

Proves you are the owner. Unlocks the full client list, Models and Usage & AI cost. Remembered in this browser only — a new browser needs it pasted once.

Username & password accounts with the run of this whole console — easier to remember than the root token, same power. Uses the root token above.

Unlock to load.

Uses the operator root token above.

The whole path a question takes — and where credit is spent, and where it stops being spent.

1
A visitor asks a question

On the client's website through the chat widget, or from their own app through the API. Every conversation starts here.

conversations
2
The knowledge base answers first — free

Instant, and only ever from answers a human has approved. Nothing is guessed, nothing is billed. Most questions end here once the knowledge base has grown.

answered free
3
No match? The AI drafts an answer — uses credit

Only when the client's mode is "Knowledge base + AI". The model answers strictly from the knowledge base — it refuses rather than inventing a fee or a date. The visitor gets the answer once, and the draft is queued for a human.

answered by AI
4
A human reviews it

In the Review tab: read what the AI said, fix the wording if it needs it, approve or reject. Nothing the AI writes is ever reused until someone approves it.

awaiting review
5
Approved answers join the knowledge base — free forever

The same question is answered from the database from then on, at no cost. Credit is spent once per new question, then becomes a permanent asset — so the AI's share of answers falls as the knowledge base grows.

KB entries

Steps 1, 2, 4 and 5 cost nothing. Only step 3 uses credit, and every time it runs, an approval in step 4 removes that question from ever costing credit again. The two numbers to watch on the dashboard are Answered free, from KB (should grow) and Answered by AI (should shrink as a share of the total).

Every AI provider this Nordi installation can serve, which models it offers, and which clients are using each one right now. A client can also bring their own key — that lives in the client's own AI model tab and is billed to them, not to you.

Loading…

From build.nvidia.com you only need one thing: the model's ID — the "model": value in the page's code sample (e.g. stepfun-ai/step-3.7-flash). No new API key — your existing NVIDIA key already unlocks every model on that catalogue, so skip “Generate API Key” entirely. The model appears in every client's dropdown immediately.

A new key: set the provider's environment variable in .env and restart — every client without their own key can then use it. A new provider: one adapter file in src/llm/ plus one line in the registry; the console and every client pick it up automatically.

Live health of every client's plumbing — checked right now, not from a cache: is the API key actually accepted by the provider, is the webhook endpoint reachable and delivering, and is the embed script really running on their website (and where).

Loading…

Every client on this installation, and what they are consuming. A token is a small piece of text — roughly three-quarters of an English word. Each AI call reports how many tokens it read (your question plus the whole knowledge base) and wrote (the answer); Nordi records those numbers on every call and sums them here. Knowledge-base answers involve no AI call, so they cost zero tokens — always.

Loading…

Answers Claude wrote for a real visitor, waiting on you. Read one, correct the wording if it needs it, and approve — it becomes a knowledge base entry and Nordi answers that question from the database from then on, at no cost.

Questions nobody has drafted an answer for yet — either Claude is switched off, or it declined because the knowledge base did not cover them. Write the answer yourself, or ask Claude to draft one and then approve it.

Gets you ahead of the queue — teach Nordi the answer before anyone is let down by it.

Highest priority wins; a tie goes to the rule. Rules are regexes, entries are scored keywords.

What the chat asks a visitor for before it answers — and where a completed enquiry or visit booking is sent. Required fields are asked up front; everything else is asked only if the conversation actually needs it.

The same fields above, in a shape that is not a chat bubble — for the client's own Enroll Now buttons and landing pages. One definition, three surfaces: change a field once and the chat, the form and the webhook payload all move together.

Untick everything to use all of them.
Fill this in and Nordi will ask the parent to confirm their number before the enquiry is filed. Nordi posts phone, code, minutes and site to this URL; your own gateway sends the SMS, so the sender ID and the cost stay yours. Leave it blank and no code is ever asked for. A parent who cannot receive it is let through after two tries — the enquiry still arrives, just without the verified mark.
Locks the widget to these domains. Anywhere else that embeds the script gets refused by the browser before a single question reaches this server — set this before going live, or anyone who copies the embed snippet can spend this client's AI tokens.

Username & password accounts for this school's workspace — what the principal or admissions head types at the login screen instead of the long access key. Each person gets their own; remove one and only that person is out.

Loading…

Three ways to use Nordi, depending on what the client's developer wants to build.


      

Every conversation where a visitor gave at least one detail — proof the gate is actually collecting, independent of whether the webhook above accepted it.

Connect to load.
Dry run — nothing is logged and no counters move. If the knowledge base misses and AI mode is on, the AI tier runs too, so you see exactly what a live visitor would.

The real widget, exactly as it runs on the client's website — same script, same knowledge base, same flows. Click the Nordi icon bottom-right of the frame. These conversations are real: they show up in Enquiries and the stats.

Which model answers for this site, and on whose subscription. A key saved here is used for this site only, so a tenant's questions are billed to that tenant. Leave it empty to use the server's own key instead.

Add one page fetches just that URL. Analyze whole site starts there, follows the site's own links (up to 25 pages, admissions and fees first), stores each page, and reports what it read — with an AI summary when AI is on. Run it again later and it goes further into the site rather than refetching what it already has. Upload document takes a Markdown or text file — a prospectus, fee sheet or offerings summary — and reads it exactly like a page; upload the same filename again to replace it. Everything is stored, so visitors never wait on the client's website, and only the passages relevant to a question are sent to the AI. Approved knowledge base entries always win a disagreement.

Derived from the knowledge base itself — no test cases needed. Run this after adding entries, because a new keyword changes the scores of every existing answer.

Connect to load.
Entry
Lowercase, no punctuation. Multi-word phrases score higher than single words.
Light HTML allowed: <b> and <br>.
Log into
Asked once per browser — after this, the card opens with one click. The token was printed when the client was created (or run npm run site:new).