Overview
SmartWaves • Admin Dashboard
Overview
Manage branches, plans, vouchers, payments, PPPoE & routers
DEMO TENANT: default
Network Snapshot
Live backend metrics, refreshed every 30 seconds
Router observations: awaiting live check
Authenticated Hotspot Sessions
—
—
Router-by-router session counts not checked yet.
PPPoE Online
—
Stable
MPESA Payments (Today)
—
3 pending
Branches / Routers
—
Grouped by site
Network Observability
Bounded SNMP metric and NetFlow/IPFIX summary ingestion. Topology is shown only from observed links.
Collectors
-
Enabled tenant collectors
Reporting
-
Seen in the last 15 minutes
Metrics
-
Recent bounded samples
Flow Summaries
-
Recent aggregated windows
Collector tokens are returned once and stored only as keyed digests.
Collectors
Inactive credentials are rejected.
NameTypeToken prefixLast seenStatus
No collectors loaded.
Observed Topology
Configured nodes are distinct from collector-observed links.
No topology loaded.
SourceTargetType / InterfaceStatusLatency / LossObserved
No observed links.
Latest Metrics
Interface and device measurements, not inferred health.
SampledNodeInterfaceMetricValue
No metric samples.
Latest Flow Summaries
Aggregated prefixes only; raw unbounded flows are not stored.
WindowRouter / InterfaceSourceDestinationProtocolTraffic
No flow summaries.
Verified Session Usage
Verified RADIUS session-lifetime counters grouped by session start date; not precise daily traffic.
0 B
Payment Trend
Successful collections grouped by selected period
0
Live Subscriber Mix
Waiting for the first sample
Live Operations Trend
Rolling samples from live overview polling, not simulated values in API mode
0 samples
Recent Payments
Recent tenant payment activity
Pending: 3
Time Phone Plan Amount Status
Quick Tools
Common actions

In API mode, branches/routers/plans are stored in DB. Vouchers/payments wiring comes next.

Branches / Sites
Register locations and attach routers to each branch
Branch Code Location Branch Support Routers Status

Best practice: Create all branches first, then register routers under each branch.

Plans
Manage hotspot + PPPoE packages (API-wired)
Name Type Portal Scope Price Validity Speed Status Actions

Hotspot portals fetch active plans dynamically and apply their configured branch scope.

Vouchers
Generate, export, and track voucher usage
Generated inventory
—
All retained voucher records
Available
—
Not yet activated
Used
—
Access activations retained
Needs accounting
—
Used without sale classification
Recorded sales
—
Sold vouchers only
Recorded revenue
—
Linked or manually recorded sales
Voucher use proves that network access started; it does not prove that money was received. Revenue below includes only linked payments or sales explicitly recorded by an operator. Complimentary access remains visible with zero revenue.
A branch view also includes tenant-global vouchers valid there.
Generate voucher inventory
Global vouchers show in every branch. Pick a branch to generate branch-only vouchers.
Optional label for this bulk generation.
Only Hotspot plans should be used for vouchers.
Creates the selected plan and quantity.
Code Scope Plan / Batch Access Accounting Value Created Activated Expires Payment / Reference Actions
No voucher history loaded.
TV / Decoder Access
Paid, exact-MAC entitlements for browserless devices — separate from phone vouchers and PPPoE.
Prepaid TV vouchers — generate, record sale, track redemption

TV codes are separate from normal guest vouchers. Collect payment before recording a sale. Generated codes are shown only once; save or print them securely.

Open this section to load TV voucher inventory.
IDBranch / routerPlanStatusPayment IDRedeemed TVAction
No prepaid TV history loaded.
Load the inventory to see TV and decoder entitlements.

TV connection: not checked. Detected means RouterOS has seen a MAC, not proof of a live Wi-Fi association. A HotSpot active session is not an Internet speed test.

Network origin: select a registered TV and press Network origin. Router evidence does not prove device ownership or authorize sales.
TV / DecoderMAC identityBranch / RouterPackageBuyerAccess untilPackage statusTV connectionActions
No TV/decoder entitlement inventory loaded.
A TV entitlement is never a phone voucher. Its MAC is a single-device RADIUS identity; replacement is handled by revoking the old device, then creating a new paid entitlement.
Router readiness & guarded publishing
The customer-facing “Buy for a TV” button can use either an isolated TV network or a guarded shared-SSID fallback for simple transparent access points.
Prefer the isolated TV SSID/VLAN. Where a transparent TP-Link/Tenda access point cannot tag VLANs, the separately gated one-SSID fallback keeps phone captive login and paid-TV MAC access on the normal HotSpot. Use it only after testing original client-MAC visibility, AP client isolation, unknown-device denial, phone portal fallback, expiry and revocation. Publish portal flag separately pushes the accepted mode to that exact router.
Branch / RouterTV access networkRADIUS / profileNAS scopeEligible plansPortal offerGuidanceActions
No router readiness data loaded.
Payments
Tenant M-Pesa transactions
Time Type Phone MPESA Receipt Access / Voucher Checkout ID Plan Amount Status
Subscriber Services
One lifecycle and billing view for PPPoE, DHCP/IPoE, and Static IP
ServiceCustomerAccess IdentityPlan / SiteBillingAuthorizationConnectionProvisioningActions
Access Networks
Tenant-scoped CIDR, gateway, DHCP server, and Router/NAS context
NameBranch / RouterNetworkPurposeDHCP Server / PoolModeStatus
Register only networks actually present or intentionally managed on the selected router. Public networks must represent address space routed to that tenant.
PPPoE Subscribers
Existing accounts, expiry, and renewals. New subscribers use Subscriber Services.
Account Plan Phone Router MAC Expiry Online Status
Corporate Accounts
Company billing groups, linked PPPoE users, shared renewal
CompanyPlanAccountsUsageExpiryStatusActions
Usage Analytics
Tenant-wide usage by default; filter an individual voucher, MAC, or PPPoE user when needed
Verified Session Usage
—
Selected range
Hotspot Session Usage
—
Identified Hotspot RADIUS records
PPPoE Session Usage
—
Registered PPPoE accounts only
Loading accounting evidence...
Service User Download Upload Total Sessions Last Seen
PPPoE Requests
New connection requests from the portal
Name Phone Location Plan Status Requested Expires
Usage Analytics
Network-wide usage, heavy-user alerts, CSV export, and FUP checks
Loading usage analytics...
Reports
Payments plus truthful client, service, and Hotspot-session activity

Choose From date and To date, then Apply dates to both recorded payments and historical Client Activity. Both dates are inclusive in the Nairobi calendar (maximum 366 days). Select a preset period to clear the custom range. Current registered customer/branch counts remain a present-time snapshot, not historical customer totals.

Open this page or click Refresh to load live report data. Zero is shown only after a successful query.

Recorded Successful Payments
Today
0
Summary
Successful and pending records; not all payments are necessarily M-Pesa
Total Success
0
Pending Count
0
Registered Customer Breakdown
Current customer records, independently counted by service and branch. Not online users.
Total Customers
—
Current registered records
HotSpot Customers
—
Customer type: hotspot
PPPoE Customers
—
Customer type: pppoe
Active Customer Records
—
Database status, not connected devices
Inactive Customers
—
Customer record is inactive
Registered PPPoE Accounts
—
Distinct from customer records
Registered TV Devices
—
Entitlements, including revoked
Active TV Entitlements
—
Unexpired grants, not proof of Internet
Loading selected branch and service counts...
BranchTotalHotSpotPPPoEOtherActiveInactive
No customer breakdown loaded.
Client Activity
Period events are historical. Enabled/active flags reflect stored records, not real-time router connectivity.
Load a period to see acquisition and session activity.
New Customers
—
Records created in period
New PPPoE
—
Accounts created in period
Hotspot Starts
—
Trusted session starts
Hotspot Devices
—
Distinct devices in period
Enabled customer records
—
Enabled PPPoE account records
—
HotSpot session records marked active
—
PeriodNew customersNew PPPoEHotspot startsUnique devices
No client activity report loaded.
Date Total Count
Infrastructure Registry
Tenant-scoped asset custody, stock movements, and dual-stack address allocation with durable history.

Future equipment is supported in the inventory catalog: OLTs, ONUs/ONTs, distribution switches, fiber infrastructure, APs, PPPoE customer routers/CPEs, UPS and power equipment can be registered as categories, assigned an asset tag and tracked by location. Registering inventory does not enable OLT/ONU provisioning or confirm device health. Vendor-specific management (SNMP, OMCI/OLT adapter, TR-069/GenieACS) requires separate tested integration.

Serialized Assets
-
Tracked by tag, serial, or MAC
Low Stock
-
At or below reorder level
IP Prefixes
-
IPv4 and IPv6 authority
Active Allocations
-
Reserved or assigned addresses
Locations
Warehouses, offices, vehicles, sites, and technician custody.
CodeLocationTypeBranchStatus
No locations loaded.
Item Catalog
Serialized equipment and count-based consumables use separate ledgers.
SKUNameCategoryTrackingReorder
No items loaded.
Serialized Assets
Registration creates an immutable receive event. Custody changes use explicit transitions.

To link a managed switch to a MikroTik: create a serialized catalog item with category Managed Switch, register its unique asset tag and MAC/serial, then select Link Router beside that asset. Use the same asset tag as the Switch ID on downstream AP profiles. This creates an audited inventory relationship, not a router or switch configuration change.

TagItemSerial / MACStatusLocationAssignment
No assets loaded.
Stock Ledger
Count-based inventory cannot go negative. Every movement is idempotent and audited.
SKUItemLocationOn handReorderState
No stock balances loaded.
Dual-stack Prefixes
Overlapping CIDRs are rejected within a VRF. Gateways are never allocated.
NameCIDR / VRFGatewayFamilyUtilizationStatus
No prefixes loaded.
Address Allocations
Allocate the first free address or request an exact one. Release preserves history.
AddressPrefixOwnerHostname / MACStatus
No allocations loaded.
Operations Center
Tenant-scoped balances, reconciliation, onboarding, messaging templates, imports, and truthful network readiness.
Refresh to load Operations Center data. Missing data is not zero.
Enabled Subscriptions
—
Administrative subscriptions, not online users
Recorded Provisioning Failures
—
Requires operator review
Routers Freshly Observed
—
Recent router observations only
Onboarding
—
Observed + manual checklist
Customer Balance / Statement
Uses the authoritative billing ledger; no duplicate balance is stored.
Select a customer ID to load ledger-backed balance and services.
TimeKindDescriptionDebitCreditStatus
No statement loaded.
Payment Reconciliation Queue
Unmatched provider payments stay unmatched until an operator selects a ledger charge.
ReceivedPhoneAmountReceiptMatch charge ID
No unmatched payments loaded.
SMS Templates
Provider-neutral templates use the existing safe variable allow-list. Sending remains in SMS Center.
No preview.
KeyNameStatus
No templates loaded.
Guided Onboarding
Observed setup facts are separated from operator confirmations.
No checklist loaded.
CSV Import / Export
Preview first; commits are limited, validated, tenant-scoped, and audited.
No import preview.
NOC Readiness
Router samples expire when stale. Refresh loads saved observations, not a new MikroTik poll.
No readiness snapshot loaded.
RouterObserved statusLatencySampled
No routers loaded.
Global Network Recovery — All Access Types
No network recovery samples loaded. Checks are read-only and never force customer disconnections.
RouterWAN pingRADIUS pingHotSpot sessionsPPPoE sessionsRecovery observationSampled
No recovery observations loaded.
Reachability is an ICMP observation, not a confirmed RADIUS login or customer Internet test. Phones, PPPoE CPEs and TVs reconnect through their own authorization methods. This monitor never bypasses payment checks or disconnects users.
Technician Queue
Assignment and internal notes are tenant-scoped; customer-visible notes are kept separate.
TicketCustomerIssueStatus / SLADueAssign admin IDInternal note
No tickets loaded.
Dispatch Calendar
Conflict-checked appointments, technician ownership, required completion checklists and optimistic mobile sync.
AppointmentWork orderTechnicianStatusChecklist
Operating Expenses
Tenant-scoped expense records with branch filters, receipt references, CSV export, and audit history.
No expenses loaded.
DateCategoryVendorAmountBranchReference
No expenses loaded.
Leads / Prospects
Track prospects separately; conversion is explicit and creates a normal tenant customer only after confirmation.
No leads loaded.
LeadServiceStatusFollow-upAction
No leads loaded.
Invoice Aging / Receivables
Derived from billing_charges, the authoritative ledger. “Not observed” network state is never treated as paid or online.
No receivables loaded.
AccountCustomerDueOutstandingAgingStatus
No receivables loaded.
Credit Notes, Refunds & Accounting
Approval-controlled ledger adjustments and an immutable accounting synchronization outbox.
NumberTypeAccountAmountStatusActions
Accounting outbox not loaded.
CreatedEventStatusAttemptsProvider referenceAction
No accounting events loaded.
Routers / Sites
Routers are registered under branches for monitoring and sync
Branch Router Host Status Hotspot

AP capabilities are entered per installation; they are not auto-detected by MikroTik. An inventory profile never enables TV payments or changes RouterOS.

Customers
Customer profiles, reporting categories, and plan defaults
Name Phone Category Default plan Status
Settings
Branding, MPESA, Router API, roles
Not connected
Branding
Portal name, support contacts
Used for tenant billing display, plans, reports, invoices and SMS variables.
Leave blank to keep current password. Demo mode will reject other passwords.
Automatic inactivity logout. Allowed range: 5–120 minutes. Default: 15.
Maximum lifetime even while active. Allowed range: 8–12 hours. Default: 12.
Global default. 0 means every child account requires an add-on or separate billing unless package/account overrides it.
Variables: {{full_name}}, {{first_name}}, {{account_username}}, {{package_name}}, {{package_price}}, {{installation_fee}}, {{initial_total}}, {{expiry_date}}, {{support_phone}}, {{support_email}}, {{website}}, {{currency}}
Saved to backend in API mode.
Hotspot Portal Defaults
Set branch defaults, then push `hotspot/config.js` to a branch router
Only one mode is active at a time, based on Default Branch Lock.
Save updates backend defaults for this tenant. Push writes `hotspot/config.js` to the selected router (branch-safe check enforced).
Portal Announcements
Show promos or notices on the hotspot page only when active.
You can paste an image URL or upload a photo from this device.
Once the hotspot page has this new code, announcements are pulled from backend automatically. You do not need to push text edits to the router each time.
Title Scope Type Window Status Priority Action
Integrations
MPESA + MikroTik RouterOS API
In API mode these are stored in DB and used by backend services. For custom providers, supply Daraja-compatible endpoint URLs in Provider Config JSON.
SMS Provider
Default is Africa’s Talking, but you can switch providers.
Stored separately for this tenant. Supports custom URLs, headers, JSON/form bodies, field names, and response paths.
Leave blank to disable SMS. For Africa's Talking sandbox, environment should be sandbox and username can stay sandbox.
Hotspot Voucher Receipt SMS
After a confirmed payment, send the buyer their voucher and clear portal instructions. Delivery history redacts the voucher code.
If no active template matches, SmartWaves uses a safe default: plan details, voucher, and “use the voucher as both username and password.” Failed deliveries may be retried explicitly from delivery logs; automatic retries are avoided to prevent duplicate credentials.
KRA eTIMS
Optional electronic tax invoicing through certified OSCU integration.
Use the official OSCU fields: environment, pin, branch_id, device_serial, cmc_key, item_code, item_class_code, and taxation values. The communication key is returned only during successful device initialization.
SMS Center
Send one-off messages, queue bulk campaigns, and review message history.
Manual SMS
Bulk SMS Campaigns
Build an audience from PPPoE and hotspot data, preview recipients, then queue a campaign without affecting manual SMS.
Choose an audience, then click Preview Audience to see how many recipients will be reached.
Sent Messages & Delivery Reports
Every manual, voucher, customer, invoice, and bulk SMS is recorded here. Provider delivery callbacks update the final handset status.
Time Audience Status Recipients By Message Actions
Time Phone Kind Status Provider Cost By Message
Email & WhatsApp
Consent-aware provider templates with truthful delivery state. Providers remain fail-closed until configured.
Provider status not loaded.
Scheduled Campaign
Recipient payloads are rendered once, consent-filtered, throttled per channel, and delivered by the durable worker.
Duplicate destinations must use identical variables. Email opt-outs and WhatsApp recipients without explicit opt-in are suppressed.
CampaignChannelScheduleStatusRecipientsOutcome
No campaigns loaded.
TimeChannelDestinationStatusAttemptsProviderDetail / Action
Recovery Access
Owner-only token for emergency password reset
Keep this token private. Use it only if you are locked out. Global-owner emergency recovery also requires the separate break-glass code configured on the backend.
Audit Logs
Recent admin actions
Time Action Details IP
Branch MPESA Overrides
Optional per-branch credentials (overrides global)
Leave fields blank to use global credentials, provider, and provider config. This lets one branch use Daraja while another uses KCB or Equity.
Users & Roles
Create human-friendly roles, select module permissions, then assign them to admin users.
Tenant owners can create tenant roles only. Global/platform permissions are visible only to the Global Owner.
RoleDescriptionPermissionsUsersSystemActions
No roles loaded.
Admin Users
Create and manage additional admin accounts
Create a new admin user. Password is required for new users.
Email Name Role 2FA Status
Login Activity
Track admin login attempts
Time Email IP Status
Credits: Axoryn Labs
© SmartWaves Admin • UI
Done
Action completed.