Dashboard
Overview
Configuration
Plans & Pricing
Voice & S2S
AI Providers
Feature Flags
Users
User Management
Usage Analytics
Payments
Company Sales
Tools
Email Center
User Profiles
Reports
Live Activity
Promo Codes
Manual Invoices
General Settings
Technical Settings
IP & Browser Analytics
Token Usage
ERP Systems
Admin Users
Connections
Cache
PM Data
PM Limits
PM Email
PM Reports
PM Emails
PM Logs
Usage Report
PM Usage
Back to Chat
Dashboard
ERP Online Hub Admin Overview
Total Users
Active This Month
Total Queries
Voice Minutes Used
Exports Generated
Monthly Revenue
💰 Revenue — Last 30 Days
Loading…
Daily revenue from paid transactions
👥 Plan Distribution
users
🆕 New Signups — Last 30 Days
Daily new user registrations
📊 Platform Usage
Queries · Exports · Voice · Screen
Plans & Pricing
Configure subscription plans, limits, pricing, and all feature restrictions
💡 Limits guide: Set 0 = unlimited  |  Queries = chat messages/month  |  Voice = S2S minutes/month  |  Live = screen analysis minutes/month  |  Exports = file downloads/month  |  Upload = max file size MB
Voice & Speech-to-Speech
Configure voice features, minute tracking, and S2S settings per plan
Voice Minutes per Plan

Voice minutes are tracked in real-time during Speech-to-Speech sessions. Regular mic input (speech-to-text) is free for all plans.

PlanMonthly Voice MinutesS2S EnabledSpeed ControlVoice SelectionFile Download
TTS Backend Optional
Auto-Language Detection
Enable auto-language detection
AI automatically detects user's language from speech and replies in the same language
Supported languages
Arabic, English, French, German, Spanish, Portuguese, Italian, Dutch, Turkish, Russian, Chinese, Japanese, Korean, Hindi, Urdu, Indonesian, Thai, Vietnamese, Polish, Swedish, Danish, Finnish, Greek, Hebrew, Persian, Bengali, Tamil, Swahili
30 languages
⚙️ Voice App Settings
Control voice behaviour for all users. Changes take effect immediately after saving.
Disabling hides the mic button from all users.
Used when the user has not selected a voice.
Applied for all users who haven't changed their speed.
When On, voice stays natural at 2× speed. When Off, faster = higher pitch (chipmunk effect).
Smaller = faster first word, more gaps. Larger = fewer gaps, longer first-word wait. Default: 4800.
How long to wait after user stops before sending. Default: 2000ms.
Ignore speech shorter than this — prevents accidental triggers. Default: 1000ms.
Lower = more sensitive mic. Higher = ignores background noise. Default: 8.
How many chars of the AI reply to read aloud in voice mode. Default: 1500.
How many chars to read aloud during Live Screen sessions. Default: 2000.
Shown in the EOH Live floating popup. HTML allowed (e.g. <strong>bold</strong>). Leave blank for default.
AI Providers
Configure which AI models power your chat, document generation, and text-to-speech
Chat & Document AI Required

This AI powers chat responses, PDF/DOCX/PPTX/XLSX generation, file extraction, and the PM tool.

Text-to-Speech (TTS) Optional

Voice output. Gemini is the primary TTS engine; OpenAI is used automatically as a fallback if Gemini fails or is rate-limited. Configure both below — the Primary selector only decides which is tried first.

Gemini TTS (primary)
OpenAI TTS Fallback
Used automatically when Gemini TTS fails. Leave blank to disable fallback.
Feature Flags
Enable or disable platform features globally
User Management
View and manage platform users
UserEmailPlanStatusQueriesVoiceScreenExportsJoinedActions
Connect to backend to load users
Usage Analytics
Track platform usage and voice minutes consumption
0
Total Voice Minutes Used
0
Voice Minutes Today
0
S2S Sessions
0
Avg Session (mins)
🎙️ Top Languages by Voice Usage
LanguageMinutes UsedSessions% of Total
Click refresh to load
🤖 Per-Plan AI Configuration
Each plan uses a different AI provider, model, API key, and EOH version. All changes are live immediately — no deploy needed.
💡 EOH Version is what users see when they ask "what AI version are you?". The underlying provider and model are never revealed to users.
Version 1 = entry level  |  Version 2 = standard  |  Version 3 = premium
Loading plan configs...
📊 Billing Logs & Email History
Full audit trail of all payments, renewals, failures and system emails
Total Revenue
Failed Payments
Active Subscriptions
Emails Sent
Loading...
👤 User Plan Manager
View and edit all users — plan, quota, status, billing info. Includes free users.
UserPlanStatusExpiresQueriesVoiceScreenJoinedActions
Loading...

Edit User

👤 Profile
💳 Plan & Billing
📊 Usage (edit to reset or adjust)
🔐 Access Control
💰 Payment History
Loading...
📧 Email History
Loading...
Payment History
Track all plan purchases, upgrades, and subscription payments
$0
Total Revenue
0
Total Transactions
0
Paid Users
0
Free Users
0
Declined
$0
Refunded
All Payments
UserEmailPlanAmountStatusDescription / Decline ReasonDateInvoiceActions
Loading payments...
Free Plan Users (Marketing Targets)

Users who have never purchased. Send them an upgrade email.

UserEmailPhoneQueries UsedJoinedActions
Loading...
Activity Log Report
Full audit trail — all user and admin actions with filters, search and export
Online Now
Queries Today
Voice Mins Today
Exports Today
New Signups Today
Plan Changes Today
Logins Today
🟢 Online Now
active in last 5 minutes
Loading...
Events
Time Role Action User Description IP
Loading...
Page 1
⏰ Cron Job Manager
Manage and monitor all scheduled background tasks
📡
External Pinger Required
Register these trigger URLs at cron-job.org (free) to run jobs automatically. Each URL includes your CRON_SECRET for security.
Base trigger URL: https://erp-ai-backend.vercel.app/cron/trigger
Total Jobs
Enabled
Last Run OK
Total Errors
Scheduled Jobs
Loading...
⭐ Ratings & Feedback
Per-response inline ratings + overall experience surveys
Total Surveys
Avg Chat
Avg Exports
Avg Support
Avg Voice
Avg Screen
Overall Ratings
Loading...
🔑 API Credentials
OAuth app credentials — stored securely in database
💼 LinkedIn
📺 Google / YouTube
📘 Facebook
ℹ️ Callback URLs to register in each platform:
LinkedIn: https://erp-ai-backend.vercel.app/social-connect/linkedin/callback
YouTube: https://erp-ai-backend.vercel.app/social-connect/youtube/callback
Facebook: https://erp-ai-backend.vercel.app/social-connect/facebook/callback
🔗 Platform Connections
Connect your accounts to enable direct publishing
💼
LinkedIn
Checking...
📺
YouTube
Checking...
Note: YouTube API supports video uploads only — text posts must be published manually.
📘
Facebook Page
Checking...
Posts to your Facebook Page (not personal profile).
📸
Instagram
Coming soon (needs Meta review)
📱 Social Media Content Studio
AI-generated posts for LinkedIn, Twitter/X, Facebook and Instagram
Total Posts
Drafts
Published
Ideas
Posts Library
Loading posts...
✨ AI Post Generator
🗄️ Database Manager
Browse, edit, export and restore all 49 database tables
🔒 Full Database Backup
⬆ Restore from Backup
Tables
Page Rows
Page
Total Rows
Loading tables...
Select a table from the left
Promo Codes
Create discount codes, trial extensions, and plan upgrades
Active Promo Codes
CodeTypeValuePlanDurationUsesMax UsesExpiresStatusActions
Loading promo codes...
Manual Invoices
Record manual payments, wire transfers, and custom billing
$0
Manual Revenue
0
Manual Invoices
0
Pending
0
Paid
Invoice Records
UserPlanAmountMethodReferenceNoteStatusDateActions
Loading invoices...
Support Tickets
Manage user support requests, reply to tickets, and configure support settings
Loading tickets...
🎫
Select a ticket to view details
Email Center
Configure your email provider, manage templates, compose campaigns, and track delivery
Provider Configuration
Checking...
📋 Zoho Mail Setup Guide
  1. Log in to accounts.zoho.comSecurity
  2. Enable Two-Factor Authentication (required for app passwords)
  3. Go to App Passwords → Generate a new password for "EOH Mailer"
  4. Paste that app password below — do not use your Zoho account password
ℹ️ If you do not have 2FA enabled, you can use your account password, but app passwords are strongly recommended.
App Settings
Control all frontend text, emails, URLs and billing options from one place
Loading settings...
🖼️ Chat Logos
Upload images directly — stored in your Supabase database. Max 2MB per image. JPEG, PNG, WebP, GIF or SVG.
Shown next to every AI message.
Shown while AI is thinking. Use GIF for animation.
Shown next to user messages (no profile photo).
💳 Stripe Payments Required for subscriptions
Enter your Stripe keys here — no Vercel env vars needed. Stored securely in your database (admin-only).
Where to find your keys: Go to dashboard.stripe.com/apikeys → copy Publishable key & Secret key. Use test keys (pk_test_ / sk_test_) for development, live keys in production.
🔬 Technical Settings
AI limits, security, features and search configuration
Loading...
🧠 Conversation Memory
Durable shared memory across chat, voice and live screen (one thread per user + session). Changes apply within ~1 minute.
How long a session stays continuable after the last message. Default 15. Range 1–168.
Delete stored turns older than this. Default 40 days.
Oldest sessions beyond this are evicted. Default 100.
Oldest turns trimmed when a session exceeds this. Default 200 MB.
How many recent turns are fed to the AI each message. Default 8.
🔐 Account Lockout Settings
Auto-lock accounts after repeated failed login attempts. Protects against brute-force attacks from multiple IPs. Changes take effect within 60 seconds.
Wrong passwords before lock. Default: 10. Range: 3–50.
How long to lock. Default: 30 min. Range: 5–1440. Admin can unlock manually anytime.
📧 Failed Login Alert Email
Automatically email the user when suspicious login activity is detected on their account.
Default: 5 attempts. Email is sent once per lockout cycle. Uses your Email Center SMTP settings.
🤖 CAPTCHA & Suspicious Login
Protect logins with CAPTCHA after repeated failures and alert users when they log in from a new location.
🤖 CAPTCHA (Cloudflare Turnstile)
Default: 3. Range: 1–20.
Get free keys at Cloudflare Turnstile. Also set TURNSTILE_SECRET_KEY in Vercel env vars.
🌍 Suspicious Login Notification
Emails user when they login from a new IP they've never used before.
💡 How it works: Every successful login IP is stored in the database. When a user logs in from a new IP they've never used before, they receive an email alert with location details and a "Secure My Account" link. Uses your Email Center SMTP/Zoho settings.
👤 Guest Access Limit
Unauthenticated visitors are limited to N send attempts per day before being shown a "Create Free Account" modal. Tracked in localStorage by date — resets at midnight. No PII stored.
Default: 3. Set to 0 to require login on first attempt.
⚡ Per-IP Rate Limiting
Limits requests per IP address per time window. Values are read at Vercel cold start — changes propagate within ~5 minutes as functions restart.
Default: 30. Range: 5–300.
Default: 60000 (1 min). Range: 10s–5min.
📎 File Upload Limits
Controls max file size and which file types users can upload. Frontend validates before any network request — backend re-validates server-side for security. Both layers must agree.
Default: 10MB. Maximum: 50MB.
Comma-separated extensions with dot. Shown in upload hint.
🌐 ERP System Selection
Controls whether users must select a vendor and product before chatting. When optional, a "Skip" path lets users chat freely and vendor is auto-detected from their messages.
Default: Required. When optional, Start Chat is enabled immediately.
⏱ Session Inactivity Timeout
Automatically signs out idle users after a period of inactivity. A warning modal appears before logout with a "Stay signed in" button. Set timeout to 0 to disable.
Default: 720 min (12 hours). Set to 0 to disable auto-logout.
Default: 2 min. Range: 1–10 min.
💬 Welcome Prompt Chips
Quick-prompt chips shown on the welcome screen. Each chip has a short label and a full question sent when clicked.
JSON array: {"label":"button text","q":"full question"}
👋 Welcome Message
Shown when a user starts a new chat. Use {name}, {vendor}, {product} tokens. Leave empty to use the built-in message.
Tokens: {name} {vendor} {product}
💬 Chat Input Textarea
Control the size and appearance of the chat input box shown to users.
Default: 24px (1 line)
Default: 160px (~6 lines)
Default: 14px
Default: 1.65
🧠 AI Output Limits
Control how many tokens (words) the AI generates for each feature. Higher = longer responses but slower and more expensive. Changes take effect within 60 seconds.
~1 token = 0.75 words. 8192 ≈ 6,000 words. Default: 8192. Range: 512–65000.
For TTS audio generation. Higher = longer spoken responses. Default: 1200. Range: 100–4000.
How detailed the live screen analysis is. 5000 ≈ 3,750 words. Default: 5000. Range: 500–8000.
More tokens = more detailed documents. 65000 ≈ 50,000 words. Default: 65000. Range: 8192–100000.
Default: 16 turns (~8 exchanges). Lower = faster & cheaper. Raise to 30+ for complex projects. First 2 messages always kept as context anchor.
💡 Token guide: 512 = very short · 2048 = short · 4096 = medium · 8192 = standard · 16384 = long · 32768 = very long · 65000 = maximum
🚀 Upgrade Modal Text
Control the text shown on the upgrade/plans popup that users see.
Shown below the title. Use • as bullet separator.
Reports
Export and analyze platform data — users, plans, subscribers, payments, usage
🔍 Report Filters
Results
Select a report type and click Run Report
User Profiles
View, edit, and manage detailed user profiles. Archive or delete users.
Loading profiles…
🧮 Token Usage Analytics
Track AI token consumption per user, feature, and date range.
Total Tokens
💬 Chat Tokens
📄 Export Tokens
🎤 Voice + Screen
📈 Daily Token Usage
Loading...
📊 Feature Breakdown
Loading...
👥 Per-User Token Usage
Loading...
📋 Recent Token Log
Loading...
💬 Chat Limits
Control file uploads, message length, multi-file support, and how much document content the AI reads. Per-plan file size limits are set in Plan Settings.
📎 File Upload Limits
Global limits for file uploads. Per-plan file size is set in Plan Settings → max_file_mb. These are the system-wide ceilings.
System-wide max. Per-plan limits set in Plans. Range: 1–50 MB.
How many files a user can attach per message. Range: 1–10.
Extensions with dots, comma separated. Example: .pdf,.docx,.xlsx,.pptx,.png,.jpg,.jpeg,.csv,.txt,.md,.json,.xml
🤖 AI File Reading Limits
Control how much of an uploaded file the AI actually reads. Larger = more accurate but uses more tokens.
Characters of extracted text sent to AI per file. Default 40,000 (~30 pages). Range: 1,000–100,000.
How many follow-up messages keep file content in context. 0 = only first message. Default 3. Range: 0–20.
✏️ Message Limits
Control the text input box maximum length.
Max chars a user can type in the chat box. Default 8,000 (~2,000 words). Range: 500–50,000.
📋 Per-Plan File Limits (reference)
These are set in Plan Settings per plan. Shown here for reference only.
Loading...
ERP Systems & Products
Add, edit, reorder, or remove ERP vendors and their product lines shown in the frontend
ERP Vendors
💡 Drag rows to reorder  |  Changes are saved to the database and reflected on the frontend immediately
# Vendor Name Products Status Actions
Loading...
🔒 Security Center
Monitor login attempts, block malicious IPs, and manage access security.
🗝️ Session & Token Security
RATE LIMIT
10 attempts / 15 min
Per IP on admin login route
TOKEN EXPIRY
8 hours
JTI revocation on logout
IP LOGGING
✅ Active
Every login logged with IP
TOKEN REVOCATION
✅ Active
Logout = immediate invalidation
🔒 Currently Locked Accounts
Loading...
Total Attempts
Failed Logins
Rate Limited
Blocked IPs
🎯 Top Suspicious IPs
Loading...
🚫 Blocked IPs
Loading...
📋 Login Attempts Log
Loading...
IP & Browser Analytics
User IP addresses, browsers, operating systems and device types
👁️ Page Visitor Counter
Total Views
Unique IPs
Logged-in Users
Guest Visits
📅 By Date
Loading...
🏙️ By City
Loading...
👤 By User
Loading...
🌐 Browsers
Loading...
💻 Operating Systems
Loading...
📱 Device Types
Loading...
🔍 Top IP Addresses
Loading...
👤 Per-User Sessions
Loading...
Admin Users
Manage admin accounts — create, edit, change passwords and deactivate
All Admin Accounts
Loading admin users...
Connections
Manage database, deployment and source control credentials — stored securely in your database
🗄
Supabase Database
PostgreSQL database — URL, anon key and service key
⏳ Not tested
Loading...
Vercel Deployment
API token, team ID and project for deployment management
⏳ Not tested
Loading...
GitHub
Personal access token for repo access and deployments
⏳ Not tested
Loading...
PM Mode — User Data
View and manage PM projects per user. Data is preserved even after plan expiry.
📨 EOH PM Email Sending
Master on/off for ALL PM emails sent through EOH servers — task assignments, meeting invites, manual emails. Disable to pause all PM email delivery platform-wide.
📧 User Custom Sender Email
Allow users to send PM emails from their own email address. Disable to force all emails through EOH servers (anti-spam).
Users with PM Projects
Loading...
PM Mode — Quota Limits
Control how much each PM user can create. Applied globally across all PM plans.
📊 Quota Settings
Total projects a user can create
Tasks per project (excluding cancelled)
All email types combined per user per month
PM Email Settings
Configure dedicated SMTP credentials, sender identity and email signature for all PM mode emails.
🔐 Zoho SMTP Credentials
💡 Leave blank to fall back to the main email settings. Dedicated PM SMTP lets you send PM emails from a separate Zoho address (e.g. pm@erponlinehub.com).
This will also be used as the From address
Use a Zoho App Password, not your account password
📤 Sender Identity
Shown as "From" name in emails
Defaults to SMTP username if blank
✍️ Email Signature
HTML is supported — keep it simple for email compatibility
Preview
No signature yet — fill in the fields above
Cache Settings
View and clear server-side caches. Useful after changing settings that don't take effect immediately.
🗑️ Clear All Caches
Forces all server caches to reload from the database on next request.
Active Caches
Loading...
PM Mode — Reports & Analytics
Platform-wide PM usage, project statistics, top users and document breakdown.
PM Mode — All Sent Emails
Full log of every PM email sent platform-wide. Filter by status, type, user, project or date to diagnose delivery issues and monitor usage.
Loading...
PM Mode — Activity Logs
Full audit trail of every create, update and delete across all PM entities — projects, tasks, members, meetings, documents and emails.
Loading...
📧 Email Verification
View verification status, resend codes, and configure the verification SMTP sender.
Total Users
Verified ✅
Unverified ⚠️
📧 Email
🔴 Google
🔵 LinkedIn
⚙️ Verification SMTP
6-digit codes sent from verification@erponlinehub.com
Click Refresh to load

User Details

Loading...