Settings
Settings is the central control panel for your EmberX instance. It is organized into 7 tabs, with some tabs visible only to Admins and Super Admins.
| Tab | Visible to |
|---|---|
| General | All roles |
| Theme | All roles |
| Feedback | All roles |
| Shop | All roles |
| Integrations | Admin, Super Admin |
| License | Admin, Super Admin |
| System | Admin, Super Admin |
Tab 1 — General
UI Language
Switch the admin dashboard interface language between English and Vietnamese. This setting is stored per-browser and affects only the dashboard UI — not the guest-facing chat pages or feedback forms.
en— English (default)vi— Tiếng Việt
General Preferences
| Field | Description |
|---|---|
| Company Name | Your organization’s display name — appears in invitation emails and the dashboard header |
| Workspace ID | A unique identifier for your deployment (e.g., hotel-saigon). Used for multi-tenant routing and can be referenced in API calls |
| Timezone | All conversation timestamps and report dates in the dashboard are displayed in this timezone. Loaded from the full IANA timezone list |
| Language | System-level default language used as the fallback for auto-translation and outgoing broadcasts |
| Urgent Division | When a guest marks a request as urgent, it is automatically routed to this Division. Select “None” to disable automatic urgent routing |
Click Save to apply. Changes take effect immediately without a page reload.
Tab 2 — Theme
The Theme Customizer gives you full control over the visual appearance of the EmberX dashboard. All changes are previewed live and saved to the database — they apply across all browsers and sessions.
Dark / Light / System Mode
Use the mode switcher (top-right of the Theme tab) to toggle between:
- Light — white background, dark text
- Dark — dark background, light text
- System — follows the operating system preference automatically
Logo & Branding
Upload a custom logo to replace the default EmberX logo in the sidebar:
- Click Upload Logo
- Select an image file (any common format: PNG, JPG, SVG, WebP)
- The crop tool opens — adjust the crop area (aspect ratio 16:9) then click Apply Crop
- The logo is uploaded and the page reloads to display it
To remove the current logo and revert to the default, click the × button next to the preview.
Color Presets
Choose a complete color theme with one click. Presets automatically apply appropriate colors for both Light and Dark modes.
| Preset | Character |
|---|---|
| Zinc | Classic neutral dark — high contrast, minimal style (default) |
| Slate | Cool blue-slate tones with subtle navy accents |
| Sunset | Warm orange/coral palette — energetic and welcoming |
| Minimal | Clean blue accent on pure white — modern and spacious |
After applying a preset, you can still fine-tune individual colors below.
Border Radius
Control how rounded UI elements (buttons, cards, inputs) appear:
| Option | Value | Effect |
|---|---|---|
| None | 0rem | Sharp, square corners |
| SM | 0.25rem | Very subtle rounding |
| MD | 0.375rem | Gentle rounding |
| LG | 0.5rem | Standard rounding (preset default) |
| XL | 0.625rem | Noticeably rounded |
| 2XL | 0.75rem | More rounded |
| Full | 1rem | Pill-like, fully rounded |
Fine-tuning Colors
All colors are stored as HSL values and can be customized individually via color pickers. Colors are grouped into sections:
Primary Colors
Background— Page backgroundForeground— Main body textPrimary— Brand color (buttons, links, active states)Primary Foreground— Text displayed on primary-colored surfaces
Secondary & Accent Colors
Secondary/Secondary Foreground— Secondary UI elementsAccent/Accent Foreground— Highlighted or hovered elements
UI Component Colors
Card/Card Foreground— Card and panel surfacesPopover/Popover Foreground— Dropdowns and tooltipsMuted/Muted Foreground— Subdued backgrounds and placeholder text
Utility & Form Colors
Border— Dividers and outline bordersInput— Input field border colorRing— Keyboard focus indicator ring
Status Colors
Destructive/Destructive Foreground— Error states, delete actions, warnings
Chart Colors (Chart 1 – Chart 5)
Five distinct colors used in dashboard analytics charts and graphs.
Sidebar Colors (8 variables) Fine-grained control over the sidebar: background, text, primary item, active item highlight, accent, borders and focus ring.
Saving and Resetting
- A yellow pulsing dot appears whenever you have unsaved changes.
- Click Save to persist all color and radius changes to the database.
- Click Reset to discard unsaved changes and revert to the last saved state.
Tab 3 — Feedback
Configure star-rating routing to automatically tag incoming feedback based on the star rating submitted by guests.
Each star rating (1–5) can be mapped to one Tag from your tag library. When feedback is submitted with that rating, the corresponding tag is applied automatically to enable filtering and reporting.
| Rating | Suggested Tag |
|---|---|
| ⭐ 1 star | urgent or complaint |
| ⭐⭐ 2 stars | needs-attention |
| ⭐⭐⭐ 3 stars | follow-up |
| ⭐⭐⭐⭐ 4 stars | satisfied |
| ⭐⭐⭐⭐⭐ 5 stars | compliment or vip |
Select “No routing” for any rating to leave it untagged.
Click Save Routing to apply the mapping. Tags must be created in the Feedbacks module before they appear here.
Tab 4 — Shop
Configure shop visibility and currency settings for the product catalog.
Enable Shop
Toggle the Enable Shop switch to control whether guests can see the menu and place orders:
| State | Effect |
|---|---|
| On (default) | Menu button and shop page are visible to guests in the chat interface |
| Off | Menu button and shop page are completely hidden from guests |
Currency
EmberX supports two currencies:
| Currency | Symbol | Typical Use |
|---|---|---|
| USD | $ | International deployments |
| VND | ₫ | Vietnam-based deployments |
Conversion Rate
Set the exchange rate used when converting prices. For example:
- Switching from USD to VND with rate
25000→ a product priced at$1.00becomes₫25,000 - Switching from VND to USD with rate
25000→₫25,000becomes$1.00
Currency Switch Dialog
When you change the active currency, a confirmation dialog appears with two options:
| Option | Behavior |
|---|---|
| Switch only | Changes the currency symbol display. All product price values remain the same numbers (e.g., 1.00 stays 1.00) |
| Switch and convert | Applies the conversion rate to all product prices in the database (bulk update). This cannot be undone automatically |
Tab 5 — Integrations (Admin only)
Configure third-party service integrations. All settings are stored in the database and take effect within 5 minutes — no container restart, image rebuild, or server restart is required.
Google Cloud — Translation
Used for automatic real-time message translation in conversations.
| Field | Key | Description |
|---|---|---|
| Project ID | google.projectId | Your Google Cloud Platform project ID |
| API Key | google.apiKey | API key for Cloud Translation API. If left blank, EmberX falls back to GOOGLE_APPLICATION_CREDENTIALS from the environment (service account key file) |
When to use API Key vs Service Account:
- API Key — simpler setup, suitable for most deployments
- Service Account (
GOOGLE_APPLICATION_CREDENTIALSenv var) — more secure, suitable for production with stricter IAM policies
Azure Cognitive Services — Speech to Text
Enables voice input in conversations for browsers that do not natively support the Web Speech API (e.g., Firefox, some mobile browsers).
| Field | Key | Description |
|---|---|---|
| Subscription Key | azure.speechKey | Azure Cognitive Services subscription key |
| Region | azure.speechRegion | Azure datacenter region (e.g., eastus, southeastasia) |
Guests can tap the microphone button in the chat interface to dictate messages, which Azure converts to text in real time.
Email / SMTP
Used for staff invitation emails and password reset emails. Overrides MAILTRAP_* environment variables if configured.
| Field | Key | Default |
|---|---|---|
| SMTP Host | email.smtpHost | smtp.mailtrap.io |
| Port | email.smtpPort | 587 |
| Username | email.smtpUser | — |
| Password | email.smtpPass | — |
| From Address | email.smtpFrom | noreply@lingo.local |
Common SMTP providers: Gmail (smtp.gmail.com:587), SendGrid (smtp.sendgrid.net:587), Mailtrap, Amazon SES.
App URLs
Override the public-facing URLs used in emails and WebSocket connections.
| Field | Key | Overrides |
|---|---|---|
| App URL | app.url | APP_URL environment variable |
| Socket URL | app.socketUrl | SOCKET_URL environment variable |
Set App URL to your actual domain (e.g., https://hotel.example.com) so that invitation links in emails resolve correctly. Set Socket URL to the WebSocket server address (e.g., https://hotel.example.com:8010).
Click Save Integration Settings to apply all integration changes at once.
Tab 6 — License (Admin only)
Displays the full license status of your EmberX deployment. No editing is done here — this is a read-only dashboard.
License Details
| Field | Description |
|---|---|
| License Key | Obfuscated key string used to identify this installation |
| Status | Current license state (see below) |
| Tier | License tier (e.g., starter, pro, enterprise) |
| Activated | Green checkmark = active; grey X = not yet activated |
License Status values:
| Status | Badge Color | Meaning |
|---|---|---|
active | 🟢 Green | License is valid and within expiry date |
expired | 🔴 Red | License period has ended — contact support to renew |
suspended | ⚪ Outline | License temporarily suspended by the license server |
revoked | 🔴 Red | License permanently revoked — contact support |
| (unknown) | ⚫ Grey | License not yet checked or status unavailable |
Important Dates
| Field | Description |
|---|---|
| Activated At | Date and time the license was first activated |
| Expires At | License expiry date — after this date the status becomes expired |
| Last Check | Last time EmberX successfully communicated with the license server |
| Last Heartbeat | Last periodic heartbeat sent to the license server (confirms the instance is online) |
Usage Limits
These limits are enforced by the license. Attempting to exceed them shows an error.
| Metric | Description |
|---|---|
| Max Channels (Rooms) | Maximum number of active Location rooms |
| Max Users | Maximum number of staff accounts |
| Max QR Codes | Maximum number of QR Code tokens |
A value of -1 or 2,147,483,647 means Unlimited.
System Info
| Field | Description |
|---|---|
| Instance ID | Unique UUID identifying this specific installation on the license server |
| Feature Flags | List of optional features enabled by the license (e.g., broadcast, analytics) |
Tab 7 — System (Admin only)
Contains the System Update Card for managing EmberX software updates directly from the dashboard.
Checking for Updates
Click Check for Updates to query the release server. The card displays:
| Field | Description |
|---|---|
| Current Version | The version of EmberX currently running |
| Latest Version | The newest available release |
| Release Notes | Summary of changes in the latest version |
If you are already on the latest version, a green ✅ checkmark appears next to the version number.
Minor Updates
When a minor update is available (e.g., 1.2.0 → 1.2.5):
- An amber ⚠️ badge appears labeled “Update Available”
- Click Update to start the update process
- Available to: Admin and Super Admin
Major Updates
When a major update is available (e.g., 1.x → 2.0):
- A red 🛡️ badge appears labeled “Major Update”
- A warning panel explains that major updates may include breaking changes or database migrations
- Super Admin must first enable the “Allow Major Upgrade” toggle to unlock the update button
- Once enabled, clicking Major Update requires confirmation before proceeding
- Available to: Super Admin only (Admin sees a message to contact Super Admin)
Access Control Summary
| Action | Admin | Super Admin |
|---|---|---|
| Check for updates | ✅ | ✅ |
| Apply minor update | ✅ | ✅ |
| Enable major upgrade toggle | ❌ | ✅ |
| Apply major update | ❌ | ✅ |