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 Window Created
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 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.
Report only includes diffs detected in this window. Not a sync interval — sync is manual from Manage panels.
💰 Price changes drop ≥30% · jump ≥100%

Flagged replies

How to read this report

By Staff

  • Replies — kaç cevap atmış (window içinde).
  • Avg length — ortalama yanıt karakter sayısı (HTML çıkarılmış).
  • Avg response — kullanıcının son mesajına ortalama yanıt süresi.
  • 🔴 Quick fires — yanıt 25 karakterden kısa veya 30 saniyeden hızlı: kopyala-yapıştır şablonu / soruyu okumadan cevap olabilir.
  • 🔁 Repeated — staff yanıtından sonra kullanıcı 2+ kez daha cevap atmış: çözüm yetersiz.
  • Score — 100 üstünden, quick-fire ve repeat oranlarına göre düşer.
  • Bir staff'ın satırına tıkla → flagged ticket'larını gör.

By Service

  • Window'da açılan ticket'ların mesaj gövdesinden order ID'leri çıkarır (6-10 haneli sayılar).
  • O order ID'leri orders_cache ile eşleştirip service_id + service_name bulur.
  • Her servis için: Tickets = ilgili ticket sayısı, Orders = mesajlarda geçen order ID toplamı, Top complaint = en sık şikayet tipi (subject prefix kırpılır, ör. "Orders - Refill" → "Refill").
  • Mesajı DB'de olmayan ticket'lar için PP'den canlı detay çekilir (max 80/req) ve ticket_messages'a kaydedilir — sonraki çağrılar tamamen DB-only.
  • Satıra tıkla → o servisteki örnek ticket'lar (ilk 3 order ID ile).
  • unresolved = order ID parse edilemeyen veya orders_cache'te bulunmayan ticket sayısı (üst metada gösterilir).

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