Customer Management
AI Admin Panel supports multi-tenant customer management. Each customer has isolated services, their own portal access, and configurable resource quotas.
Overview
Customers represent tenants in the system. A customer can be a client, team, department, or any organizational unit that owns services. Each customer has:
- A unique identifier, first name (required), and last name (optional; supports mononyms)
- One or more associated users (via Keycloak)
- A service plan with resource quotas
- Isolated services visible only to their users
- Optional portal access for self-service
Creating a Customer
Navigate to Customers > New Customer and fill in:
| Field | Required | Description |
|---|---|---|
| First Name | Yes | Customer's first name (e.g., "Jane") |
| Last Name | No | Customer's last name; mononyms (single-word names) supported with this field empty |
| Yes | Primary contact email | |
| Plan | Yes | Service plan to assign (determines quotas) |
| Notes | No | Internal notes about the customer |
When you create a customer, the panel:
- Creates the customer record in PostgreSQL
- Creates the customer's tenant node (its organization record) and links the two 1:1, so the customer and its tenant identity stay a single coherent entity
- Creates a Keycloak user with the provided email, syncing both first and last names
- Assigns the appropriate role and group in Keycloak
- Sends a welcome email to the customer's address with login instructions, using the first name for the greeting (requires Settings → Email to be configured)
Customer Portal
Customers can log in to the panel and see a scoped view:
- Their services only — no visibility into other customers' services
- Deploy new services — within their plan's quota limits
- View logs and metrics — for their own services
- Manage their services — start, stop, restart
Admins see all customers and all services. The portal view is determined by the user's Keycloak role and customer association.
Managing Customers
Customer List
The customer list page shows:
| Column | Description |
|---|---|
| Name | Customer's first and last name (last name optional) |
| Plan | Assigned service plan |
| Services | Number of active services |
| Status | Active / Suspended |
| Created | Creation date |
Customer Detail
Click a customer to see:
- Overview — plan, usage summary, contact info
- Services — all services owned by this customer
- Users — the customer's logins. A customer can have more than one login: the primary account created with the customer, plus any users you invite. Each invited user becomes a member of the customer's tenant organization and can sign in to the customer portal. An invited user receives an email asking them to set their password before their first sign-in. These emails use your panel's email configuration (Settings → Email, SMTP or Resend) — it is applied to the login system automatically, so if invite emails don't arrive, check there first. To re-send the set-password email, simply invite the same address again.
- Usage — resource consumption vs. plan limits
- Billing — usage metrics (for external billing integration)
Editing a Customer
You can update:
- First name, last name, and contact information
- Assigned service plan
- Status (active / suspended)
- Internal notes
Changes to the name fields sync immediately to the Keycloak user record.
Changing the plan updates quotas immediately. If the new plan has lower limits than current usage, existing services continue running but no new services can be deployed until usage is within limits.
Suspending a Customer
Suspending a customer:
- Stops all their services
- Blocks login for their users (disables their Keycloak accounts)
- Terminates any already-active sessions immediately — a customer who is logged in when you suspend them is signed out on their next request, not at the end of their session. This applies to every login the customer has, not just the primary one.
- Preserves all data and configuration
- Can be reactivated at any time
Deleting a Customer
Deleting a customer:
- Stops and removes all their services
- Deletes all associated data and volumes
- Removes Keycloak users associated with the customer
- Removes the customer record
This action is irreversible. The panel requires confirmation before proceeding.
GDPR Compliance
The panel includes features for GDPR compliance:
Data Export
Navigate to Customer > Actions > Export Data to generate a complete export of all customer data:
- Customer profile and settings
- Service configurations (no secrets)
- Usage history and metrics
- Audit log entries
The export is generated as a JSON file that can be downloaded.
Right to Deletion
Customer > Actions > Delete Customer and Data performs a complete removal:
- All services and their data
- All database records
- All cached data in Valkey
- Keycloak user accounts
- Audit log entries related to the customer
A deletion confirmation report is generated documenting what was removed.
Audit Trail
All customer-related actions are logged:
- Who performed the action
- What was changed
- When it happened
- IP address of the request
Audit logs are retained for a configurable period (default: 90 days).