Dashboard
Prototype · demo dataToken consumption — top companies
This month · tokens are the single billing unit for all AI services
| Company | Consumed | Monthly pool | |
|---|---|---|---|
| Kee Wah Bakery | 612,000 | 640,000 | 96% — alert sent |
| K. Wah Group | 418,000 | 800,000 | 52% |
| Luk Fook Jewellery | 377,500 | 500,000 | 75% |
Recent activity
From the audit log — every carrier action is recorded
| When | Who | Action |
|---|---|---|
| 11-Aug 14:20 | ops.chan | Added ad-hoc tokens: Kee Wah Bakery +100,000 |
| 11-Aug 11:02 | ops.wong | Enabled service "AICC" for Nan Fung Group |
| 10-Aug 17:44 | ops.chan | Onboarded company "Nan Fung Group" (pending) |
| 10-Aug 09:15 | system | Monthly pools reset for 6 active companies |
Companies 8
A company is created as Pending and becomes Active once it has a Company Admin
| Company | Status | Users | Enabled services | Contracts | Tokens remaining |
|---|---|---|---|---|---|
| Kee Wah Bakery | Active | 128 / 150 | AI Summary AICC Insights | 2 | 28,000 |
| K. Wah Group | Active | 342 / 400 | AICC | 1 | 382,000 |
| Luk Fook Jewellery | Active | 201 / 250 | AICC AI Summary | 1 | 122,500 |
| Nan Fung Group | Pending | 0 / 100 | AICC | 1 | — |
Onboard a new company — 2 steps
Only Company Name is mandatory; everything else can be completed later. Bulk CSV onboarding is all-or-nothing.
Name (required) · code · user limit · enabled services · SIP numbers · ingestion folder
Name + email · invitation sent · company turns Active when the admin activates
Kee Wah Bakery Active
Everything about one company in one place — 7 tabs, per the Stage 1 specification
| Service | Status | Note |
|---|---|---|
| AI Summary (phone + meeting) | Enabled | Delivery by email; portal access included |
| AICC (AI Call Center) | Enabled | 2 SIP numbers attached |
| Insights (User Portal / 360) | Enabled | Dashboards + AI analysis |
Access control is by enabled services only — the old "subscription" concept is retired. What a company has not bought, its users never see.
Token rates — platform-wide iEditing a rate affects every company at once, and the change applies immediately. Insights analysis jobs are assumed to cost a flat token amount per job (e.g. 10 tokens) — HKT to confirm.
Tokens are the single unit of consumption; money never appears inside the platform — HKT invoices outside
| Service | Meter | Rate | Billing step |
|---|---|---|---|
| AI Summary — phone call | per minute | 100 tokens/min | 5 min |
| AI Summary — Teams meeting | per minute | 120 tokens/min | 15 min |
| AI Voicebot — call center | per minute | 0.5 tokens/min | 1 min |
| Insights — AI analysis job | per job | 10 tokens/job (assumed flat — HKT to confirm) | — |
Per-company usage report
Drill into one company's ledger — every charge shows which pool paid; refunds flip the row in place · export CSV
| Event | Company | Service | Duration | Billed | Tokens | Pool | Status |
|---|---|---|---|---|---|---|---|
| E-99120 | Kee Wah | AI Summary (phone) | 4:12 | 5 min | 500 | Monthly | Committed |
| E-99119 | Kee Wah | Insights (analysis) | 423 records | — | 12,450 | Monthly → Ad-hoc | Committed |
| E-99114 | Luk Fook | AI Voicebot | 2:05 | 3 min | 1.5 | Monthly | Refunded |
Per-company deployment
GPU is one shared pool; the app layer is one stack per client company
| Company | App stack | SIP numbers | Ingestion folder | GPU dependency |
|---|---|---|---|---|
| Kee Wah Bakery | Running Server 2 | 2 | OK 214 files | Shared pool (30B + ASR) |
| K. Wah Group | Running Server 2 | 1 | n/a | Shared pool (30B + ASR) |
| Nan Fung Group | Not provisioned | 0 | n/a | — |
The Carrier Portal is HKT's control room for the AI platform. HKT staff use it to sign up client companies, switch services on and off for each of them, watch how many tokens (prepaid AI credits) each company burns, and get alerted before a company runs dry. Client companies never see this portal — they have their own.
How it works — three pictures
1. Bringing a new client company onto the platform
From signed deal to working service — provisioning is one button, done by the portal itself.
sequenceDiagram
participant H as HKT staff
participant CP as Carrier Portal
participant A as Company admin
participant S as Servers
H->>CP: onboard company, enable services, set token pools
CP->>A: invitation email
A->>CP: activates account - company turns Active
H->>CP: press "Provision"
CP->>S: create the company's app stack (over SSH)
S-->>CP: stack running - service live
2. One login for everything
Users sign in once; the Carrier Portal is the identity home for all AI apps.
sequenceDiagram
participant U as User
participant App as Any AI app
participant CP as Carrier Portal (sign-in)
U->>App: open the app
App->>CP: send user to central sign-in
U->>CP: email + password (once)
CP-->>App: signed-in pass
App-->>U: access granted - only services the company enabled
3. Where tokens go (the billing loop)
Tokens are the only meter. Money stays outside the platform.
sequenceDiagram
participant U as Company user
participant S as AI service
participant T as Token pools
participant H as HKT staff
U->>S: uses AI (call, summary, analysis)
S->>T: charge tokens (Monthly pool first, then Ad-hoc)
T-->>H: alert at 30/50/70/90/100% consumed
H->>T: top up Ad-hoc after invoice paid
What HKT staff do here
1Sign up a new client company10 minutes
- Press Onboard a new company. Step 1: company name (the only required field) plus whatever else you know — user limit, services, phone numbers.
- Step 2: name and email of their first admin. They get an invitation; the company shows as Pending until that admin activates.
- Press Provision — the portal creates the company's app stack on the servers by itself (no manual deployment).
- Many companies at once? Upload one CSV — it either fully succeeds or fully fails, never half.
A deal signed in the morning can be a live tenant by lunch.
2Switch services on or off for a company1 minute
- Open the company → Services tab.
- Toggle what they've bought: AI Summary, AI Voicebot, Insights. What's off, their users never see.
Access control equals the price list — no separate permission paperwork.
3Keep token money under controlongoing
- Each company has two pots: a Monthly pool (refills every month, from their contracts) and an Ad-hoc pool (bought extra, never expires). Spending drains Monthly first.
- The Dashboard flags companies past their alert thresholds; alerts also go out automatically.
- When a company pays for a top-up, open Tokens → Add ad-hoc tokens. Every top-up lands in the audit log with who did it.
- Usage & Cost shows the ledger: every charge, which pool paid, and refunds.
Nobody gets a surprise bill, and every token is traceable to a person and a timestamp.
4Check platform capacity before selling morebefore each new deal
- Open Capacity: how many live calls the GPU pool can carry, which companies have app stacks running, what hardware is planned.
- If a new deal needs more live-call capacity than the pool has, this is where you find out — before promising it.
Sales promises and hardware reality meet on one page. (This page is our proposal — not yet in the agreed scope.)
What we need from HKT
- Confirm the Insights pricing assumption. We assume a flat token cost per AI analysis job (for example, 10 tokens). If pricing should instead depend on the amount of data analysed, please define that rule.
- Fill in the access matrix. We will demo this portal's roles; HKT provides the grant matrix — for each role, which functions it can view and which it can edit. Without it, we build with our proposed defaults.
- Confirm the provisioning targets. Programmatic provisioning needs the list of target VMs and SSH access to them — please confirm which machines the portal may deploy to.
- Confirm the Capacity page. It is our addition beyond the agreed scope — tell us if HKT wants it in phase 1, later, or not at all.