PanelOps is purpose-built for PerfectPanel resellers. Every feature below works right out of the box — no plugins, no extensions, no extra setup. Each section includes a live mockup showing exactly how the bot replies.
8
Feature Categories
60+
Individual Features
35+
Message Templates
7
Order Actions
Every action your customers need, handled by the bot over PerfectPanel Admin API v2. No panel login required.
Live status with service name, start count, remains, and provider. Supports single and bulk IDs in one message.
Auto-validates eligibility (status must be Partial or active) before submitting. Shows service, link, qty, and start count in reply.
Checks eligibility and submits cancellation. Confirmed in reply with next steps.
Priority flag on active orders. Validates, submits, and confirms.
Submits refund request after eligibility check. Logged with full provider context.
Request partial delivery for oversized orders. Validates and submits via panel API.
Staff tool for force-completing stalled orders when needed.
Send up to 10 order IDs and get an instant summary; send more and the bot replies right away, then works through them in the background — no waiting.
Customers can ask for two compatible actions at once — "cancel or refill 12345" — and the bot confirms both, logs it as "Cancel/Refill", and escalates it to the right provider group as one item.
Platform-wide LLM (OpenAI, Claude, Groq, Ollama) configured once by your admin. Applied intelligently across all tenant interactions.
All customer-facing command replies reformatted through LLM. Unrecognised messages routed to AI with full context. Auto language detection.
Automatically polls your panel for pending tickets. Reads ticket content, generates a contextual AI reply with live order data, and posts the reply — all within seconds.
Tickets containing action keywords (speedup, refill, cancel, refund, partial) + order IDs are processed as commands — fetches live order status, logs with serial + provider OID.
General questions get a support-focused AI reply. Logged as "Ticket AI Reply" with any order context found in the message.
When a customer includes frustrated/angry text alongside an order ID + action, bot executes the command AND generates a merged AI consolation reply.
Flagged in the logs dashboard when either: (1) the order action is in your configured priority action list (set in Bot Settings — Cancel, Refund, Partial by default), or (2) a customer adds frustrated/angry text alongside an order ID + action.
Per-user conversation history kept in Redis. AI replies maintain context across a session automatically.
Per-user AI rate limiting prevents abuse. Separate from order check rate limits.
Automated verification links every WhatsApp number to a panel account. No manual look-up required.
New users: greeting → enter panel username → API lookup → 6-digit OTP sent via panel ticket → enter code → verified. Code expires in 10 minutes.
Once verified, the customer's WhatsApp number is permanently linked to their panel username. Persists across bot restarts.
!verify-users <username> verifies all group members at once. Useful for migrating existing customer bases.
"my username" command lets any verified user check their registered panel username.
Configurable max messages per minute per user and max verification attempts with cooldown period.
Per-user message rate limiting and order check rate limiting (max_order_checks_per_hr) prevent spam and abuse.
Three independent flags per group. Toggle live — no bot restart. Admin commands or dashboard.
Controls whether the bot responds to user commands in this group. Disable to make the bot ignore all messages from the group.
Controls whether scheduled marketing broadcasts are sent to this group. Independent of support mode.
Bot fully processes and logs all commands but sends zero replies. Useful for testing or monitoring without customer interruption.
New groups are automatically registered when the bot first receives a message from them. Requires manual enable for the bot to respond.
All three flags toggleable from the Groups page in the dashboard. Changes take effect on the next message — no reload needed.
!support enable/disable, !marketing enable/disable, !silent enable/disable — run inside the target group. Admins only.
Remove the bot from a group entirely, straight from the dashboard. Leaves on every connected WhatsApp number for your account, then removes the group from your list — not just a local delist.
Build a rotating library of marketing messages. Broadcasts run on your schedule across all opted-in groups.
Unlimited marketing messages per tenant. Rich WhatsApp text formatting supported. Managed from the Marketing page in your dashboard.
marketing_interval_hours: base interval between broadcasts. Configurable per tenant via bot settings.
Each broadcast fires with 0–60 minute random jitter on top of the base interval. Prevents patterns that trigger spam filters.
Set your timezone from Settings using UTC offset format (e.g. UTC+6). The owner's timezone drives daily resets like messages-today and service-search dates.
Messages only go to groups with marketing_enabled = true. Groups not in the list are skipped entirely.
No cron jobs to maintain. Reinitialises automatically on WhatsApp reconnect.
WhatsApp-native admin and staff commands. Works in DMs and groups. No login required for admins.
| Command | Where | Access | Description |
|---|---|---|---|
| !status | DM / Group | Admin | Uptime, user count, group count, AI status |
| !broadcast <msg> | DM / Group | Admin | Send to all support-enabled groups now |
| !support enable|disable | Group | Admin | Toggle bot responses for this group |
| !marketing enable|disable | Group | Admin | Toggle marketing broadcasts for this group |
| !silent enable|disable | Group | Admin | Toggle silent mode — process but send no replies |
| <ids> set-<status> | DM / Group | Admin+Staff | Update log status; set-escalated notifies provider group |
| !config set <key> <value> | DM / Group | Admin only | Live config update — persists to DB immediately |
| <ids> refill-verify | DM / Group | Admin+Staff | Live count vs panel data — refill justification |
| <ids> provider-status | DM / Group | Admin+Staff | Provider OID + Provider Status per order |
| <ids> panel-status | DM / Group | Admin+Staff | Full order details from panel |
| !verify-users <username> | Group | Admin | Bulk verify all group members at once |
| !remove-users <username> | Group | Admin | Unverify all users under this username |
Member-since date, days active, total message count, and a full config summary — chat mode, cooldown, groups (Support / Silent / Provider / Marketing), and people (Admins / Staff / Customers). DM or group.
Send a message to all support-enabled groups immediately. Useful for urgent announcements and flash promotions.
List all verified customers or all whitelisted groups for this instance.
Admin + staff command. Shows live count vs panel data for each order ID — justifies or disputes a refill request without the customer seeing.
Comma-separated order IDs + the command keyword: provider-status shows Provider OID + status per order; panel-status returns full order details. No ownership check — staff use.
Live config management via WhatsApp. Changes persist to bot_config table. No restart needed. Admin only.
Two role levels: Admin (full command access) and Staff (limited to refill verify + provider status). Managed from the dashboard.
Admins are authenticated by their phone number in DMs and automatically by their WhatsApp identity in groups.
When a customer’s order comes back Failed on any command (refill, cancel, speed up, refund, partial, fake complete, refill status), the bot privately DMs your owner and admin numbers with the failed order ID(s), the action, the customer’s panel username, and the provider. Deduped to once per order every 6 hours, and sent even in silent mode. Toggle on/off in Bot Settings.
WhatsApp Bot
Dashboard
WhatsApp Bot
Dashboard
WhatsApp Bot
Dashboard
Connect multiple SMM providers, sync their service catalogs, and get WhatsApp alerts for new services.
Fetches the full service list from your provider panel. Updates existing services, tags new ones detected on subsequent syncs.
Account balance fetched alongside services on every sync. Best-effort — sync succeeds even if the balance call fails.
When a subsequent sync detects genuinely new services, a WhatsApp alert is sent to admin-role numbers only (not staff). First sync is treated as baseline — no alert.
Configurable sync interval per provider. Auto-sync runs in the background. Disable a provider to pause auto-sync for it.
Search across all synced service catalogs by name or ID. Filter by provider, sort by price or name. A daily "newly added" view shows fresh services grouped by provider.
Switch it on and every refill, cancel, or speed-up a customer requests is forwarded to the WhatsApp group mapped for that provider — using the provider's own order ID, grouped into one message per provider.
Every forwarded escalation is logged with the provider group, provider order ID, and action — in its own tab on the Message Logs page.
Built-in locking prevents two sync jobs from running on the same provider simultaneously — even across multiple background workers.
Real-time visibility, live config, template management, billing — all in one place.
| Serial | Action | Order | Status |
|---|---|---|---|
| #1247 | Refill | #54321 | Resolved |
| #1246 | CancelPriority | #54318 | Open |
| #1245 | Status | #54310 | Ignored |
| #1244 | RefundPriority | #54305 | Escalated |
Searchable logs with three tabs — Support, Escalations, and Panel Tickets. Filters by date, action, status, priority. Click long IDs to expand in modal.
Messages over time, action breakdown, busiest groups, support status split, and a day-by-hour activity heatmap — right on the Overview page.
Dirty commands auto-flagged as priority. Visual indicator in logs. Bulk status update: select rows → choose status → Apply.
35+ template keys across 11 categories. Edit any key from the Templates page. Changes take effect on next message — no restart.
All dashboard saves instantly reload the bot config. No restart required — changes take effect on the next message.
View all verified users with WhatsApp display name + panel username side by side. Block or remove customers, and sync display names on demand.
View all groups with support/marketing/silent flags. Toggle per-group or sync your full group list from the dashboard.
Pay by card or crypto right inside the dashboard. Upgrade, downgrade, or cancel any time. Usage meters and full payment history included.
"Copy IDs" button in logs bulk action bar — copies all Provider OIDs from selected rows as comma-separated list. Useful for cross-checking with providers.
Escalated status also sends provider order IDs to the mapped provider WhatsApp group for cross-panel follow-up. Update via !resolve <ids> <status> or bulk-select in dashboard logs.
7-day free trial. No credit card. Connect WhatsApp in under 30 seconds.