> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://helpdesk.ggcircuit.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# User Assistance Manual

# User Assistance Chat Widget
The **User Assistance** feature allows players to request help directly from their gaming machines. Center staff can monitor these requests in real-time, engage via a live chat interface, and track the resolution of every interaction.

### How it works, end to end
From the moment a player identifies an issue to the final feedback rating, the assistance request follows a structured lifecycle:
1. **Player submits a request:** On the ggLeap client, the player taps the floating help button, picks a reason, and writes a message up to**&#160;2,048 characters**.
2. **Staff get notified:** A toast appears in WebAdmin with a machine name and message preview, accompanied by a toggleable audio chime.
3. **Live chat reply:** Opening a request expands the live chat panel; staff and players can send as many messages as needed in real time.
4. **Machine tracking:** If a player moves machines mid-conversation, the request updates automatically to show both the original and current PC.
5. **Resolving a request:** Either side can close the conversation; staff select "Mark as resolved" from the action menu.
6. **Player feedback:** After resolution, the player can rate the experience with a 👍 or 👎 and an optional comment.
7. **Reopening requests:** Staff can revisit the "Resolved" tab to mark a request as "unresolved" if further follow-up is needed.
8. **Deletion:** Employees with the `CanDeleteUserAssistanceRequests` permission can delete individual or bulk resolved requests.
# Player Experience (ggLeap Client)

#### The help button on the ggLeap home screen

The help icon sits at the top-right corner of the screen amongst the other system-level icons.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1trkbho.png)
#### Submitting a request
Tapping the button opens a widget where players pick a reason and type their issue. Default reasons include **Games** and **Other** unless custom reasons are configured.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1ubxe3.png)

#### Active conversation
Once a request is sent, the player's messages appear on the right, while staff replies appear on the left. 

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_m8lh94.png)

A pulse on the help button notifies the player of unread replies.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1vfd1wc.png)

#### Feedback prompt
Once resolved, the player sees a rating screen where they can provide optional feedback.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1ki33q9.png)
# Employee Management (WebAdmin)
#### The Assistance Requests page
Staff use the WebAdmin interface to manage the real-time grid of help requests. 
The page features "Open" and "Resolved" tabs and allows for inline chat expansion.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_nwp6yp.png)
#### Live chat panel
Expanding a row reveals the chat history. Player messages are displayed in surface gray, and staff replies appear in WebAdmin blue.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_q4als9.png)
#### Dashboard Widget
The `Assistance Requests Widget` offers a card-list layout for the dashboard. Open requests feature a yellow count pill, while unread messages are highlighted with a red circle on the "Open chat" button.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1g5r094.png)
### Audit Trail: Activity Log
Every action—created, resolved, unresolved, deleted, or config updated—is recorded in the dashboard Activity Log widget with the actor, target, and timestamp.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_y8jlq3.png)
### Configuration
The **User Assistance** section in the ggRock/LEAP Web-admin settings allows you to manage how customers or players request help from staff via the client interface.

![](https://storage.crisp.chat/users/helpdesk/website/-/a/f/d/6/afd6941e8bc7d800/image_1fozhuk.png)

Here is a breakdown of the specific settings highlighted in the red box:
### Global Toggle Settings
* **Assistance requests enabled:** This is the master switch. When toggled **on** (blue), it allows players to send help requests from their stations to the admin dashboard.
* **Play notification sound:** When enabled, an audible alert will play on the admin's computer whenever a new assistance request is submitted by a user.
* **Use custom reasons for assistance requests:** Enabling this allows you to define a specific list of categories (like "Audio" or "Network") that users must choose from when asking for help. This helps staff prioritize and understand the issue before reaching the station.
### Assistance Reasons List
This table manages the specific categories available to the user. Defining these helps organize your workflow:
* **Existing Reasons:** Currently, you have categories like **Audio, Graphics, Network, Keyboard & Mouse, GamePasses, Shop,** and **Games**.
* **Managing Reasons:**
    * **Add Button:** Click the blue "Add" button in the top right of this section to create a new category (e.g., "Food/Drink" or "Hardware Issue").
    * **Options (Three Dots):** The vertical ellipsis on the right of each row allows you to **Edit** the name of the reason or **Delete** it if it's no longer needed.
### How it Works in Practice
When a player clicks "Request Assistance" on their screen, they will be presented with the list you've created here. Once they select a reason and submit, a notification (and sound, if enabled) will appear in your **Activity Tracker** or **Dashboard** so you can respond promptly.

# Permissions & Access Control
| **Permission** | **Description** |
| **Any employee** | View requests, reply to chat, and mark as resolved or unresolved. |
| **`CanDeleteUserAssistanceRequests`** | Required to delete individual resolved requests or perform bulk deletions. |
# Key Limits & Behaviors
* **Message length:** Maximum of 2,048 characters per message; counter turns red and Send is disabled if exceeded.
* **One Open Request:** A player must resolve their current request before opening another.
* **Resolved Pagination:** Loads 30 requests at a time via infinite scroll.
* **Toast Duration:** Notification toasts auto-dismiss after 10 seconds.
* **Read-counter behavior:** Atomic and monotonic; counters only increase and cannot be "un-read".
* **Config Cache:** Changes are pushed via WebSocket for instant application, despite a 1-hour CDN cache TTL.
# Frequently Asked Questions
**1. Can a player have more than one open request at a time?**
No. A player can only have one open request and must resolve it before submitting a new one.
**2. What happens if a player moves to a different machine?**
The request stays open and the machine field updates automatically; staff see both the original and current machine.
**3. Can employees see requests from other employees?**
Yes. All employees in the center share the same list and can reply to or resolve any open request.
**4. Is there a message length limit?**
Yes—2,048 characters per message.
**5. What if the player never leaves feedback?**
Feedback is optional; if skipped, the Feedback column stays blank.
**6. Can a deleted request be recovered?**
No. Deletion—single or bulk—is permanent and cannot be undone.
**7. Why is the chat widget not showing on a player's machine?**
Possibilities include: the feature is disabled in Settings, no reasons are configured, or the ggLeap client version is outdated.
**8. How long until a config change reaches all machines?**
Effectively instant. A WebSocket notification is broadcast to every machine the moment settings are saved.