MTP
STM
SGP
$
$
$
Got one! 🎯
Ticket hunters on duty 🎯
Let's collect today's bounties

Welcome back

Sign in with your master panel credentials.

Filter by Mode

Loading...

Filter by Source

Loading...

Filter by Service

Filter by Provider

Loading...

Filter by Created

0 orders selected
ID User Charge Link Start count Quantity Service Status Remains Created Mode
Loading...
-
0 tickets selected
ID User Subject Status Assignee Created Last update
Loading...
-
0 users selected
ID Username Email Balance Spent Status Created Last auth Discount
Loading...
-
ID User Balance Amount Method Status Fraud risk Memo Created Updated Mode
Loading...
-
ID Name Type Rate Min Max
Click Refresh or set a Services API key in Panels settings.

Service description

Import service descriptions

Upsert rows by (panel_id, service_id). Existing rows are overwritten; other columns are reference-only.

Personal

Private to you — nobody else can see this
Reported at Panel Service Reason Reported by Status Resolved
Loading...

Service Tracking — Profiles

Each profile is a filtered view over your services with its own thresholds. Click View to open the live report; Edit to tweak the service list and thresholds.
Name Services Stuck after Slow multiplier Min orders Created
Loading profiles…

User Tracking — Profiles

Surface top-spending users + new sign-ups in any window. Each profile filters to specific users (or all) with its own thresholds.
Name Users Min payments Min spend Created
Loading profiles…

Ticket Tracking

Snapshot of staff reply quality and per-service complaint volume in a chosen window. Pulled from the audit log + ticket messages — no PP load.
Loading…

Competitor Tracking

Watch rival SMM panels for new services, removals and absurd price moves.
Name Competitors Tracking Sync every Created
Loading…

Tracked services

Panel ID Service name Category Rate Min / Max
Loading…

Add competitor panel

Paste the panel's domain. We'll call /api/v2 on it.
Open a regular account on the rival panel and copy the key from API page.

Competitor Tracking — How it works

Data pipeline

  • For each competitor panel you add we periodically pull its public services API (/api/v2?action=services&key=…) — no admin scope required.
  • Each sync compares the fresh service list against the previous snapshot and writes the diffs to competitor_service_history.
  • The first snapshot is silent (so a 5,000-service panel doesn't flood the feed with "added" rows). Real diffs start from the 2nd sync onward.

How profiles work

  • Sync every = how often the system re-fetches. The smallest value across all profiles drives the actual cadence (with a 1h floor).
  • Track = what gets reported: Price changes (with drop/jump thresholds), Min/Max changes, New services, Removed services.
  • Mark-as-seen: opening the profile view marks the current diffs as seen → the ● N new badge clears. The next sync that detects a new diff lights it up again.
  • Refresh button triggers an immediate sync, marks-as-seen, and reloads — only changes detected after the click remain.

Change types

  • 🟩 New service — competitor added a service (market-entry signal).
  • 🟥 Service removed — competitor pulled a service (opportunity).
  • ⚠️ Price changed — price move that passes your drop/jump threshold.
  • ↔️ Min / Max changed — order quantity range changed.
  • ✏️ Name / Category changed — rebrand or recategorization.

Practical flow

  • Manage panels → add competitor(s) (public API key is enough).
  • New profile → pick competitors, sync interval, track types, thresholds.
  • When a profile lights up ● N new → open it → review → press Refresh to acknowledge.

Competitor panels

Each entry uses the panel's public API (/api/v2?action=services) — open a regular customer account on the rival panel and copy its API key. Synced every 12h, manual sync available per row.
NameBase URLServicesLast syncStatusEnabled
Loading…

New competitor profile

Leave all unchecked to track every competitor.
How often to re-fetch competitor services and detect new diffs. The smallest value across all profiles drives the actual schedule (1h floor). Diffs you already saw won't reappear after Refresh.
💰 Price changes drop ≥30% · jump ≥100%

SMM Panel Discovery

Find new SMM panels in the wild — daily scan of fresh SSL certificates + DNS validation against Perfect Panel name servers.
Name Filters Window Created
Loading…

New discovery profile

Show panels detected in the last N hours.
5+ = certain panel · 2-4 = candidate · <2 = ignored.
Filter to "serious" panels (≥500 = significant).
2-letter code (en, tr, es, ar…) or empty = any.

SMM Panel Discovery — How it works

Discovery pipeline

  • Source: Crt.sh (public Certificate Transparency logs) — pulls every SSL certificate issued in the last 24 hours.
  • Validation: for each candidate domain, query its NS records via Cloudflare DoH. If NS = ns1.perfectdns.com → confirmed Perfect Panel install.
  • Probe: hit /api/v2?action=services to confirm SMM panel API is up + capture service count.
  • Score: NS=PP (+5), has API (+5), SMM keywords (+2), title hint (+1) — anything ≥2 is stored.
  • Runs once a day (with 10-min boot delay). Use "Run scan now" to trigger manually.

Profiles

  • Window = how many hours back to look at the discovery feed.
  • Min score = quality threshold. 5+ confirms a real panel, 2-4 leaves a candidate to review.
  • Min services count = filter for "serious" panels (≥500 services = real operation).
  • Language = HTML lang attribute filter (en/tr/es/…).
  • Mark-as-seen: opening or refreshing the profile clears the new-count badge.

Per-row actions

  • Visit — open the panel in a new tab.
  • Mark interesting — flag for follow-up review.
  • Ignore — drop from future reports (stays in DB).

Flagged replies

How to read this report

Tickets mode (AI quality)

  • Each staff reply within the window is judged by an LLM (gpt-4.1-mini) using the editable prompt (see Edit AI Prompt).
  • Verdicts: 🟢 Good = on-policy, on-topic, professional · 🟡 Mediocre = vague, partial answer or missing educational info · 🔴 Bad = wrong info, off-topic, or rude.
  • Flags shown next to the verdict explain the specific issue (e.g. wrong_info, partial, missing_education).
  • Each ticket appears once — if a ticket has multiple analyzed replies, the worst verdict is shown.
  • Click a row → modal with full reasoning + suggested better reply.
  • Welcome auto-messages and Nora AI bot replies are excluded from analysis.

Services mode

  • Parses order IDs (6–10 digit numbers) out of customer message bodies for tickets in the window.
  • Resolves those order IDs via orders_cacheservice_id + service_name.
  • Each row aggregates per service: Tickets = unique tickets mentioning the service, Orders = total order IDs referenced, Reasons = customer complaint types (classified from the message text — refill, speed up, refund, cancel, etc.).
  • Tickets whose body isn't in DB yet are fetched live from PP (max 80/req) and cached — subsequent loads are DB-only.
  • Click a row → sample tickets for that service (with their order IDs).
  • Unresolved = tickets where no order ID could be parsed or matched in orders_cache (shown in the top meta).

AI Quality Analyzer Prompt

Bu prompt staff yanıtlarını gpt-4o-mini'ye gönderirken kullanılır. Çıktının daima {"verdict":"good|mediocre|bad","flags":[...],"reasoning":"...","suggestion":"..."} JSON şemasında olmasını isteyen kuralı koru. Promptu güncellediğinde, sonraki analiz çağrıları yeni prompt'u kullanır; mevcut DB kayıtları olduğu gibi kalır.

New profile

Top spenders: window'da en çok harcayanlar (sıralı). New signups: bu pencerede kayıt olan kullanıcılar. All activity: payment + order toplam aktivitesine göre.
Selected users (0)

How to read this report

Goal

Spot top spenders and new high-value sign-ups in any chosen window. Use it to follow up with whales, run welcome offers, or catch new signups depositing big amounts.

Columns

  • User — panel + ID + username/email. 🆕 New badge if the user signed up inside the window.
  • Joined — sign-up date.
  • Payments — count + dollar total inside the window (status=completed only).
  • Spend (window) — orders charge sum in the window. The list is sorted by this column DESC.
  • Lifetime — `users_cache.spent` (PP-side cumulative spend, all-time).
  • Top services — most-used 3 service IDs in the window.

Filters

  • Min payments — drop users with fewer payments than this in the window.
  • Min spend — drop users whose window spend is below this dollar amount.
  • Profile user IDs — restrict the report to specific users (leave empty for all).

Window

Pick 12/24/48/72/96h or a custom value. The report re-aggregates from scratch each time.

How to read this report

Status colors

  • 🟢 Healthy — score > 70. No stuck or slow orders, or only marginal.
  • 🟡 Warning — score 40–70. Some orders are stuck or significantly slower than the speed in the service name.
  • 🔴 Critical — score < 40. Many orders stuck and/or very slow. Investigate the provider; the service may be down.

What counts as "stuck" or "slow"

  • Stuck — orders that are currently stuck across the whole catalog (status in in_progress / pending / processing / awaiting, created more than Stuck after hours ago, remains > 0). The count is window-independent — picking "Last 2h" doesn't hide pre-existing stuck orders.
  • Slow — orders finished inside the selected window, where completion took longer than quantity ÷ min-speed × Slow multiplier. The minimum speed is parsed from the service name (e.g. Speed: 5-10K/Day).

Score formula

100 − min(60, stuck × 5) − slow% — each stuck order shaves 5pt off (capped at 60pt), then the slow ratio is subtracted. Stuck weighs heaviest because frozen orders block customers.

How to act

  • Open the row's menu to Snooze 24h (hide it) or Copy ID for tickets/messages.
  • The red bar at the top appears when one or more services are critical — use it to bulk-snooze or copy all critical IDs at once.
  • Adjust thresholds for this profile from Edit (the 12h / 2× / min-orders tuning lives there).
  • The report runs against your local order cache — if the data looks stale, resume Sync from Settings → Sync.

Time windows

Each tab re-aggregates from scratch — picking Last 2h shows real-time issues; Last 72h reveals recurring patterns. Use Custom h… for an arbitrary range.

New profile

Selected services (0)
Preset or custom — which time window the detail page opens to by default.

Panels

Connected Perfect Panel installations.
Name URL Status

Staff members

Master panel users — admin or support roles.
Note: The username here must exactly match the staff name configured inside each Perfect Panel admin (e.g. "kainat", "huseyin") so that ticket replies are attributed correctly.
Username Role Allowed panels

Background sync & cache

Tickets use the old polling system. Orders, Payments, Users use the new sync engine with local DB cache, adaptive polling, and rate limiting.
Sync engine
Loading status…
Resource Interval (sec) Records per fetch Currently cached Last fetched Status

Sync engine settings

Orders, Payments, Users sync engine global settings. Changes apply instantly. Retention change will immediately delete data older than the set period.

Activity log

Every action staff members take inside the master panel.

When Staff Action Details IP / Device
Loading…

Staff statistics

Per-staff ticket reply counts and average response time, calculated from the master panel's audit log.
Staff Answered Ticket Average Response Time (min)
Loading…
Response time = how long the customer waited (between their last message and the staff's reply). Counted only when calculable.

Saved replies

Your personal reply templates. Used in the ticket detail "Insert saved reply" dropdown. Each staff has their own. Drag rows by the handle to reorder — this order is reflected in the ticket detail dropdown.
Title Body preview

AI profiles

Your personal AI reply profiles. Each profile has its own system prompt (character, tone, rules) and is selectable from the ticket detail "AI reply" button. API keys are set globally by an admin in AI settings.
Title Provider / Model System prompt preview

Translation Language

Language used by the per-message TR / Intent buttons in ticket detail. Change freely — takes effect immediately.

AI Analysis Prompt

Customize the prompt used when clicking AI Analyze on tickets. Use placeholders: {{subject}}, {{customer}}, {{status}}, {{conversation}}. Leave blank to use the built-in default.

AI settings

API keys for AI providers. These are shared by every staff member. Keys are stored on the server and shown masked in the browser — only the last 4 characters are visible once saved. Get OpenAI keys from platform.openai.com, Anthropic from console.anthropic.com.
Leave a field blank to keep the existing key. Type - (a single dash) to clear a key.

Payment methods

Internal ↔ display name mapping per panel. /payments/add needs the internal name; list API returns display. Toggle a method off to hide from Add Payment dropdown.
Internal name Display name Min Max
Loading...

Add payment method

The exact string PP's /payments/add expects. Case and whitespace matter.
User-friendly label shown in the Add Payment dropdown.
Lower = shown first.

API keys

External tokens for /adminapi/v2/*. Clients send the token via the X-Api-Key header. Scopes restrict the endpoints a key may reach; panel restriction limits which panels it can act on (empty = all).
Base URL: https://hyperspanel.com/adminapi/v2 · Open API documentation
Auth header: X-Api-Key: <token>
Example: curl -H "X-Api-Key: $TOKEN" "https://hyperspanel.com/adminapi/v2/orders?order_status=fail&limit=10"
NamePrefixScopesPanelsCreatedLast usedStatus
Loading...

Create API key

Leave all unchecked to allow every panel.

My account

Change your own password.
-
#-
Type any extra guidance into the reply box first, then pick a profile. The box content becomes the instruction and is replaced by the generated reply.
⚙ Manage AI profiles…
Auto-refresh: on
Loading...
Total Orders
-
Tickets
-
Users
-
Payments
-

Add panel

Leave blank if you don't need the Services page. Separate from the admin API v2 key.

Add staff

Allowed panels

Tick which panels this staff member can access. Admins always see all.

Action permissions

Which actions this staff can run. Admins always have all.

New saved reply

Plain text or HTML. Will be inserted into the reply textarea.

New AI profile

This is the "character" — it shapes every reply this profile generates. Ticket context is added automatically.
0 = deterministic, 1 = creative

Add payment

Loaded from the selected panel's payment history — exact match required by PP.

Fail orders by provider

Loading...

Report service

Service stuck
Orders not progressing
Service down
Provider offline / failing
High Churn / High Refill Need
Customers repeatedly requesting refills
Other
Describe the issue yourself

Report details

Add ticket