10 KiB
title, tags, audience, created
| title | tags | audience | created | ||
|---|---|---|---|---|---|
| Support Guide |
|
Support agent | 2026-05-23 |
Support Guide
End-to-end usage for Support agents — Tier-1 customer help, account recovery, troubleshooting. Support has elevated read permissions but limited write power; serious actions escalate to admin.
[!info] Looking for a different role? See User Guide (Buyer), Seller Guide (Owner), Admin Guide.
1. Support account
Support agents are provisioned by an admin (see Admin Guide §3.3). A typical seed:
| Role | Capabilities | |
|---|---|---|
support@amn.gg |
support | Read users, reset passwords, view chat (case-scoped), escalate |
A support account CANNOT:
- Change roles
- Ban / unban
- Resolve disputes (read-only)
- Issue refunds (escalate to admin)
- Modify points or financial records
- Publish blog posts
2. Workflow
Support tickets flow through these stages:
flowchart LR
A[New ticket] --> B[Triage]
B --> C{Resolvable?}
C -- yes --> D[Resolve]
C -- no --> E[Escalate to admin]
D --> F[Close]
E --> G[Wait]
G --> H[Admin resolves]
H --> F
Ticket sources:
- In-app contact form (writes to a
supportNotification / dedicated collection) - Email to
support@amn.gg(forwards to ticketing tool) - Live chat widget (if enabled)
3. Common Tier-1 tasks
3.1 "I can't sign in"
- Ask the user for their email.
- Dashboard → User → [profile] to look them up.
- Check status:
active,banned,pending email verification? - If pending verification → Resend verification email (button in user profile).
- If account locked → wait out the lockout (default 30 min) OR escalate to admin for immediate unlock.
- If forgotten password → tell the user to use Forgot password on the sign-in page OR you can trigger Reset password from their profile (sends a fresh reset code).
Warning
Never ask a user for their password. Never SET a password for them — the platform sends a reset code so only they can complete the change.
3.2 "I didn't receive the email"
Checklist:
- Confirm the correct email is on file.
- Ask them to check Spam / Promotions.
- Check if the user's email domain is on a known block list (yopmail, mailinator, etc.).
- Resend (max 3 retries / hour).
- If issue persists → check backend SMTP logs (escalate to admin).
3.3 "How do I change my email?"
- Ask the user to first verify ownership of the new email.
- Today this is an admin-assisted change — escalate.
(Roadmap: self-service email change with verify-old + verify-new.)
3.4 "I lost access to my Passkey device"
- They can use their password as a fallback.
- Direct to Dashboard → Account → Passkey → Remove [device].
- Add a new passkey from the new device.
- If passkey was their ONLY auth method → escalate to admin who can manually unlock.
3.5 "I'm a seller — how do I withdraw?"
- Verify they completed shop setup (payout wallet on file).
- Walk them through Dashboard → Payment → Payouts → Request payout.
- Remind them that payouts process within 1–2 business days.
- If a specific payout is stuck → escalate to admin with the payout ID.
3.6 "My payment is stuck"
- Get the payment ID or invoice URL.
- Open in Admin user (if you have read access).
- Check status:
pendingfor <1h — tell user to wait for blockchain confirmation.pendingfor >1h — escalate to admin (webhook may have failed).processing— usually clears within minutes.failed— note the error code and escalate.
- If user sent wrong network/token → escalate immediately, recovery may require manual on-chain work.
3.7 "I want to delete my account"
- Confirm via email reply (anti-impersonation).
- Check for: open orders, in-flight payments, open disputes — none should exist.
- If any open obligations → ask user to settle first.
- Escalate to admin for the actual deletion (it's a manual op to ensure data retention compliance).
3.8 "How do I become a seller?"
Walk them through:
- Dashboard → Account → Become a seller.
- Fill in shop info (name, country, payout address, social links).
- Submit → admin verification within 1 business day.
- Once approved → can build templates and submit offers.
See Seller Guide.
3.9 "I see stale data / the page is broken"
Suggest the localStorage cleanup trick:
- Open browser DevTools (
F12orCmd+Opt+I). - Console tab → paste:
Object.keys(localStorage) .filter(k => /^(manual-payment|buyer-step|LAST_(PAYMENT|TEMPLATE|SOCKET))-/.test(k)) .forEach(k => localStorage.removeItem(k)); location.reload(); - (This pattern matches the keys cleared by
frontend/cleanup-localstorage.js.)
If the issue persists → screenshot + browser info + URL → escalate.
3.10 "I want a refund"
- Confirm what they're requesting (full / partial / for which order).
- Check the order status & history.
- If order is Funded and not yet shipped → they can negotiate cancellation with the seller (no admin needed).
- If order is shipped/disputed/refund-disputed → direct them to open a dispute (or it's already open).
- Goodwill refund < $10 — admin can issue. Note the case and escalate.
- Larger refunds — must go through dispute process.
See Dispute Flow.
4. Triage rubric
Assign priority based on impact:
| Priority | Examples | SLA |
|---|---|---|
| P0 — Site outage / data loss | Cannot reach amn.gg, all logins failing, payments silently failing | Immediate page admin |
| P1 — User cannot transact | Specific user can't pay, payout failed, dispute stuck > 7 days | 4 hours |
| P2 — Functional bug, workaround exists | Notification not arriving, cosmetic issue | 1 business day |
| P3 — Question / how-to | "How do I…" inquiries | 2 business days |
5. Escalation matrix
| Issue | Escalate to |
|---|---|
| Account un-ban request | Admin |
| Role change (buyer→seller, granting support) | Admin |
| Refund > $10 | Admin |
| Dispute resolution | Admin (mediator) |
| Manual payout exception | Admin |
| Database correction | Admin + engineer on-call |
| Site outage | Engineering on-call |
| Security incident (suspected breach / abuse) | Admin + engineering on-call IMMEDIATELY |
| Legal request (law enforcement, GDPR) | Admin + legal/compliance |
6. Communication templates
6.1 Password reset
Subject: Reset your Amn password
Hi {name},
You can reset your password at https://amn.gg/auth/jwt/reset-password. You'll receive a 6-digit code by email valid for 1 hour.
If you didn't request this, please ignore this email — your password remains unchanged.
— Amn Support
6.2 Verification email not received
Hi {name},
The verification email was sent. Please:
1. Check your Spam / Promotions folder.
2. Allow up to 5 minutes for delivery.
3. Click "Resend code" if it still hasn't arrived.
If the issue persists, reply with the email address you signed up with so we can investigate.
— Amn Support
6.3 Payment stuck (>1 hour)
Hi {name},
We see your payment {paymentId} is still showing pending. Crypto confirmations usually take a few minutes; an hour is unusual.
We've escalated this to our payments team for investigation. We'll update you within 4 hours.
In the meantime, please do NOT send additional funds — that may complicate recovery.
— Amn Support
6.4 Refund request → dispute path
Hi {name},
I understand you'd like a refund for order {orderId}. The fairest way to resolve this is through our dispute process, which gives both you and the seller a chance to provide evidence before a neutral mediator decides.
To open a dispute:
1. Open the order page (link below).
2. Click "Open dispute".
3. Choose a reason and upload photos / chat screenshots as evidence.
A mediator will pick up your case within 24 hours.
Link: https://amn.gg/dashboard/request/{orderId}
— Amn Support
6.5 Account un-ban (require admin approval)
Hi {name},
I've escalated your account review to our admin team. They'll look at the original reason for the suspension and respond within 1 business day.
In the meantime, you won't be able to sign in. Funds in escrow are unaffected and will be settled once any open orders complete.
— Amn Support
7. Tools & access
| Tool | Purpose | Permission |
|---|---|---|
| Admin dashboard (read mode) | Look up users, orders, payments | Yes (read) |
| User → Reset password | Trigger fresh reset code | Yes |
| User → Resend verification | Resend signup code | Yes |
| Notification system | Send "follow-up" notifications | Yes (scoped) |
| Chat history viewer | Read dispute chats | Yes (case-scoped) |
| MongoDB direct | Ad-hoc queries | No (escalate) |
| Payout trigger | Issue payouts | No (escalate) |
| Refund issuer | Issue refunds | No (escalate) |
| Dispute resolver | Make resolution | No (escalate) |
8. Privacy & ethics
Warning
Support has powerful read access. Do not browse user chats, payments, or addresses unless investigating a specific ticket. Each access should be tied to a ticket ID, ideally logged.
- Never disclose one user's data to another user.
- Verify identity before discussing account specifics (signed-in session > email reply > anonymous form).
- For financial / legal inquiries, escalate to admin + legal.
9. Common knowledge base
Bookmark these for instant reference:
- User Guide — common Buyer questions
- Seller Guide — common Seller questions
- Glossary — terminology reference
- Authentication Flow · Password Reset Flow · Passkey (WebAuthn) Flow — how auth actually works
- Payment Flow - SHKeeper · Payment Flow - DePay & Web3 — how payments flow
- Dispute Flow — when refund requests need to go to dispute
- Notification Flow — why a user might not have received an email
- Error Codes — interpret HTTP errors / app-specific codes the user reports
10. Improving the docs
If you answer the same question repeatedly, propose a knowledge-base article:
- Note the recurring question.
- Write a short answer with screenshots.
- Submit to admin for inclusion in
frontend/src/sections/blog/or this vault.
A good support team grows the docs over time.
11. Related
- User Guide · Seller Guide · Admin Guide
- All flow docs in 04 - Flows folder
- Incident Response — when support is alerted to outages
- Glossary