Files
nick-doc/06 - Usage/Support Guide.md
2026-05-23 20:35:34 +03:30

332 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Support Guide
tags: [usage, role/support]
audience: Support agent
created: 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:
| Email | 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:
```mermaid
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 `support` Notification / 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"
1. Ask the user for their email.
2. **Dashboard → User → [profile]** to look them up.
3. Check status: `active`, `banned`, `pending email verification`?
4. If pending verification → **Resend verification email** (button in user profile).
5. If account locked → wait out the lockout (default 30 min) OR escalate to admin for immediate unlock.
6. 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:
1. Confirm the correct email is on file.
2. Ask them to check Spam / Promotions.
3. Check if the user's email domain is on a known block list (yopmail, mailinator, etc.).
4. Resend (max 3 retries / hour).
5. If issue persists → check backend SMTP logs (escalate to admin).
### 3.3 "How do I change my email?"
1. Ask the user to first verify ownership of the new email.
2. 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"
1. They can use their password as a fallback.
2. Direct to **Dashboard → Account → Passkey → Remove [device]**.
3. Add a new passkey from the new device.
4. If passkey was their ONLY auth method → escalate to admin who can manually unlock.
### 3.5 "I'm a seller — how do I withdraw?"
1. Verify they completed shop setup (payout wallet on file).
2. Walk them through **Dashboard → Payment → Payouts → Request payout**.
3. Remind them that payouts process within 12 business days.
4. If a specific payout is stuck → escalate to admin with the payout ID.
### 3.6 "My payment is stuck"
1. Get the payment ID or invoice URL.
2. Open in Admin user (if you have read access).
3. Check status:
- `pending` for <1h — tell user to wait for blockchain confirmation.
- `pending` for >1h — escalate to admin (webhook may have failed).
- `processing` — usually clears within minutes.
- `failed` — note the error code and escalate.
4. If user sent wrong network/token → **escalate immediately**, recovery may require manual on-chain work.
### 3.7 "I want to delete my account"
1. Confirm via email reply (anti-impersonation).
2. Check for: open orders, in-flight payments, open disputes — none should exist.
3. If any open obligations → ask user to settle first.
4. 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:
1. **Dashboard → Account → Become a seller**.
2. Fill in shop info (name, country, payout address, social links).
3. Submit → admin verification within 1 business day.
4. 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:
1. Open browser DevTools (`F12` or `Cmd+Opt+I`).
2. Console tab → paste:
```js
Object.keys(localStorage)
.filter(k => /^(manual-payment|buyer-step|LAST_(PAYMENT|TEMPLATE|SOCKET))-/.test(k))
.forEach(k => localStorage.removeItem(k));
location.reload();
```
3. (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"
1. Confirm what they're requesting (full / partial / for which order).
2. Check the order status & history.
3. If order is **Funded** and not yet shipped → they can negotiate cancellation with the seller (no admin needed).
4. If order is shipped/disputed/refund-disputed → direct them to open a **dispute** (or it's already open).
5. Goodwill refund < $10 — admin can issue. Note the case and escalate.
6. 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**:
1. Note the recurring question.
2. Write a short answer with screenshots.
3. 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]]