---
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 1–2 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
- [[Escrow Flow]] · [[Request Network Integration Constraints]] · [[Payout Flow]] — 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]]
