first commit
CI / typecheck (push) Successful in 1m8s
CI / format (push) Failing after 1m6s
CI / lint (push) Failing after 49s
CI / test (push) Failing after 1m8s

This commit is contained in:
SDI
2026-07-15 18:05:12 +09:00
commit 12e4f17b62
4633 changed files with 817125 additions and 0 deletions
@@ -0,0 +1,263 @@
---
title: Getting Started
description: This document explains how to start the system from initial setup to collecting the first feedback after installing ABC User Feedback.
sidebar_position: 1
---
# Getting Started
After installing ABC User Feedback for the first time, initial setup is required to use the system. This document provides step-by-step guidance from tenant creation to collecting the first feedback.
---
## Initial Setup Overview
To start ABC User Feedback, proceed with the following setup steps in order:
1. **Create tenant and administrator account**
2. **First login and profile setup**
3. **Create project**
4. **Create channel and configure fields**
5. **Generate API key**
6. **Test first feedback collection**
---
## Accessing the System
If you need to install ABC User Feedback, first proceed with [Installation using Docker Hub images](/en/developer-guide/installation/docker-hub-images).
After completing the installation, access ABC User Feedback through a web browser:
```
http://localhost:3000
```
> If you changed the port or domain, enter the address according to your settings.
---
## Creating Tenant and Administrator Account
![member-register.png](/img/tenant.png)
When you first access the system, the **Tenant Creation and Administrator Account Registration** screen will be displayed.
### Step 1: Enter Tenant Information
Set the tenant name.
After entering the tenant name, click the **Next** button.
> This tenant name will be displayed in the login UI.
### Step 2: Create Administrator Account
Create the first administrator account for the system.
1. Enter the administrator account email and click the **Request Code** button.
2. Check the authentication code in your email inbox and enter it
3. Click the **Verify** button
4. After verification is complete, set a password.
:::info Password Requirements
- **At least 8 characters**
- **Include letters** (AZ, az)
- **Include special characters** (e.g., `@`, `#`, `!`)
- **No consecutive characters** (e.g., `aa`, `11`)
> **Examples**: ✅ `MyCompany2024!`, ❌ `12345678`, `password`
:::
After tenant and administrator account creation is complete, a confirmation screen will be displayed.
**Next step**: Click the **Confirm** button to proceed to the login screen.
---
## Logging In
Log in for the first time with the created administrator account.
1. **Email**: Enter the administrator email registered earlier
2. **Password**: Enter the set password
3. Click the **Sign In** button
---
## Creating First Project
After logging in, the project creation wizard will automatically start.
### Understanding System Structure
ABC User Feedback has the following hierarchical structure:
```
Tenant (Organization)
└── Project (Product/Service Unit)
└── Channel (Feedback Collection Path)
```
### Step 1: Project Basic Information
| Item | Description | Example |
| --------------- | ------------------------------------------------- | ------------------------------------------- |
| **Name** | Project name | `Mobile App`, `Web Service` |
| **Description** | Project description (optional) | `Customer feedback collection and analysis` |
| **Time Zone** | Time reference (affects dashboard and statistics) | `Asia/Seoul` |
**After completion**: After entering the information, click the **Next** button.
### Step 2: Invite Team Members (Optional)
In this step, you can invite team members to the project. You can skip this now and add them later anytime.
### Step 3: Generate API Key (Optional)
You can pre-generate an API key for integration with external systems.
### Project Creation Complete
After entering all information, project creation will be complete.
**Select next step**:
- **Create Channel**: Immediately create a channel to start collecting feedback
- **Skip for Now**: Create channel later
---
## Creating First Channel
After project creation, you need to create a **channel** to actually collect feedback.
### Understanding Channel Concept
A channel represents a **feedback collection path**:
- Website inquiry form
- In-app feedback in mobile app
- Customer service VoC
- Survey responses
### Step 1: Channel Basic Information
| Item | Description | Example |
| ---------------------------------- | -------------------------------------------------------- | ---------------------------- |
| **Name** | Channel name | `Web Feedback`, `App Review` |
| **Description** | Channel description (optional) | `Website user opinions` |
| **Maximum Feedback Search Period** | Searchable period for feedback (30/90/180/365 days, all) | `90 days` |
**After completion**: After entering the information, click the **Next** button.
### Step 2: Field Configuration
Define the data structure to collect in the channel.
#### Default Fields
Fields automatically created by the system:
| Field Name | Format | Property | Description |
| ----------- | ----------- | --------- | --------------------- |
| `id` | number | Read Only | Unique feedback ID |
| `createdAt` | date | Read Only | Creation time |
| `updatedAt` | date | Read Only | Modification time |
| `issues` | multiSelect | Editable | List of linked issues |
#### Adding Custom Fields
Add custom fields for actual feedback collection:
1. Click the **Add Field** button
2. Enter field information:
| Item | Description | Example |
| ---------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------- |
| **Key** | Unique identifier (uppercase/lowercase letters, numbers, `_`) | `message`, `rating` |
| **Display Name** | Name displayed in UI | `Feedback Content` |
| **Format** | Data format | `text`,`keyword`,`number`,`date`,`select`,`multiSelect`,`images`,`aiField` |
| **Property** | `Editable` (modifiable in UI) / `Read Only` (not modifiable) | `Editable` |
| **Status** | `Active` / `Inactive` | `Active` |
#### Recommended Default Field Configuration
For the first channel, it is recommended to add the following fields:
| Key | Display Name | Format | Description |
| ----------- | ---------------- | ------- | ------------------ |
| `message` | Feedback Content | text | User feedback |
| `userEmail` | User Email | keyword | Contact (optional) |
| `rating` | Satisfaction | number | 1-5 point rating |
### Field Preview
After completing field configuration, you can preview the feedback input screen with the **Preview** button.
**After completion**: Complete channel creation with the **Complete** button.
### Channel Creation Complete
**Next step**: Click the **Start** button to begin collecting feedback.
---
## Testing First Feedback Collection
After channel creation is complete, you can actually collect feedback.
### Registering Feedback via API
Let's register the first feedback using the created API key.
#### API Request Example
```bash
curl -X POST http://localhost:4000/api/projects/1/channels/1/feedbacks \
-H "Content-Type: application/json" \
-H "X-API-KEY: YOUR_API_KEY" \
-d '{
"message": "The app runs slowly",
"userEmail": "user@example.com",
"rating": 3
}'
```
> Replace `YOUR_API_KEY` with the actual API key created earlier.
#### Checking Success Response
If the API request succeeds, you will receive the following response:
```json
{
"id": 1
}
```
### Checking Feedback
Let's check the registered feedback in the web interface.
1. Click the **Feedback** tab in the top menu
2. Check the registered feedback in the feedback list
3. Click the feedback to view detailed information
### Creating First Issue
Let's create an issue based on the feedback.
1. In the feedback detail screen, click the **`+` button** in the **Issue** section
2. Enter the issue name and press **Enter** or click the **Create** button
3. Check the created issue
## Next Steps Guide
Basic setup and first feedback collection are complete!
## Related Documents
- [API Integration](/en/developer-guide/api-integration) - Detailed API usage guide
@@ -0,0 +1,347 @@
---
title: Project
description: This document explains how to create, configure, and manage projects in ABC User Feedback, and how to set team member roles and permissions.
sidebar_position: 2
---
# Project
In ABC User Feedback, a **project** is the most basic unit for collecting and analyzing feedback. This document covers features from project creation to team management and permission settings.
---
## Project Overview
Projects have the following hierarchical structure:
```
Tenant
└── Project (multiple allowed)
├── Channel (multiple allowed)
├── Members and Roles
├── Issue Tracker Integration
├── Webhook Integration
├── AI Features
└── API Keys
```
Each project is a management unit that includes multiple channels, and can independently set and operate team members, roles, issue tracker integration, external system integration, etc.
---
## Creating a Project
### Access Permissions
Only **Super users** can create projects. Regular users can participate by being invited as members to existing projects.
> If you need Super user permissions, please contact your system administrator.
### Access Method
There are two ways to create a new project:
1. **First login**: The project creation wizard automatically starts
2. **Additional projects**: Click the **Create Project** button at the top of the left sidebar
### Step 1: Project Basic Information
![create-project-1](/img/project/1.png)
When creating a project, enter the following information:
| Item | Description | Example |
| --------------- | -------------------------------------------------------------- | ------------------------------------------------ |
| **Name** | Project name (required) | `Mobile App`, `Customer Service`, `Beta Service` |
| **Description** | Brief description (optional) | `iOS/Android app user feedback collection` |
| **Time Zone** | Used as the time reference for feedback and reports (required) | `Asia/Seoul` |
> The time zone affects **dashboard statistics**.
**After completion**: After entering all information, click the **Next** button.
### Step 2: Add Team Members (Optional)
![create-project-2](/img/project/2.png)
This step can be **skipped**. You can add members later from the project settings at any time.
#### Adding Members
1. Click the **Register Member** button at the top right
2. Enter the following items:
- **Email**: Select a user registered in the system
- **Role**: Choose from Admin, Editor, or Viewer
> If you want to use custom roles, click the **Role Management** button for additional settings.
**After completion**: Check the member list and click **Next**.
### Step 3: Generate API Key (Optional)
![create-project-3](/img/project/3.png)
API keys are used when collecting feedback from external systems. You can generate them later from the settings menu, so you can skip this step now.
#### Key Generation Method
1. Click the **Create API Key** button at the top right
2. The key is automatically generated and displayed in the list
3. Copy the generated key and store it in a safe place
### Project Creation Complete
![create-project-4](/img/project/4.png)
After completing all steps, a **summary screen** appears:
- Project information: name, description, time zone
- Member list
- Generated API keys
- Role settings status
#### Next Steps
- To immediately create a channel and start collecting feedback, click the **Create Channel** button
- Or click the **Later** button to create it later
---
## Managing Project Settings
![project-setting.png](/img/project/project-setting.png)
### Access Method
To change project settings:
1. Click **Settings** in the top menu
2. Select **Project Setting** from the left menu
### Editing Basic Information
You can modify the following items at any time:
| Item | Description | Notes |
| --------------- | --------------------------------------------------- | ----------------------------------- |
| **Name** | Project name | Name displayed to team members |
| **Description** | Description (optional) | Purpose of the project |
| **Time Zone** | Time reference for statistics and time-related data | Changes do not affect existing data |
**Save method**: After making changes, click the **Save** button at the top right.
### Notes on Time Zone Changes
- Does not affect the time information of existing feedback/issues
- Data inconsistencies may occur in dashboard statistics after changes.
### Deleting a Project
#### Deletion Procedure
To completely delete a project:
1. Click the **Delete Project** button at the bottom of the Project Setting screen
2. Enter the project name exactly in the confirmation popup
3. Click the **Delete** button to finalize
#### Deletion Notes
- **All feedback, issues, and settings within the project will be permanently deleted**
- **Cannot be undone**, so backup or export is recommended beforehand
- Connected channels and API keys are also removed upon deletion
---
## Member Management
![member-setting.png](/img/project/member-setting.png)
### Viewing Member List
To view members currently participating in the project:
1. Click **Settings** in the top menu
2. Select **Member Management** from the left menu
The member list displays the following information:
| Item | Description |
| ---------- | -------------------------- |
| Email | Account email |
| Name | User name (from profile) |
| Department | Department |
| Role | Role within the project |
| Joined | Project participation date |
### Inviting New
![member-register.png](/img/project/member-register.png)
#### Invitation Procedure
1. Click the **Register Member** button
2. Enter invitation information:
| Item | Description |
| --------- | -------------------------------------------- |
| **Email** | Email of the user to invite |
| **Role** | Role to assign (Admin, Editor, Viewer, etc.) |
3. Click the **Invite** button to complete the invitation
### Editing Member Information
To modify existing member information:
1. Click the row of the member you want to edit in the member list
2. In the popup, you can modify the Role:
3. Click the **Save** button to save changes
### Removing Members
To remove a member from the project:
1. Click the **Delete** button at the bottom of the member edit popup
2. Click **Confirm** in the confirmation message
> Removing a member does not delete feedback/issue records created by that user; only project access permissions are removed.
---
## Role and Permission Management
![role-setting.png](/img/project/role-setting.png)
### Default Roles
The system provides the following default roles:
| Role | Permission Summary |
| ---------- | ---------------------------------------------------------------------- |
| **Admin** | Access to all features. Includes project deletion |
| **Editor** | Can create, modify, and delete feedback/issues. Cannot access settings |
| **Viewer** | View only. Cannot modify, delete, or access settings |
### Creating Custom Roles
![role-create.png](/img/project/role-create.png)
You can create custom roles when more granular permissions are needed:
1. Click the **Role Management** link in the Member Management screen
2. Click the **Create Role** button
3. Enter the role name and permissions:
### Permission Settings
For each role, you can set the following feature-specific permissions:
#### Feedback Permissions
| Permission Item | Description |
| ----------------------------------- | -------------------------------- |
| **Download Feedback** | Download feedback data |
| **Edit Feedback** | Edit feedback |
| **Delete Feedback** | Delete feedback |
| **Attach/Detach Issue in Feedback** | Link/unlink issues with feedback |
#### Issue Permissions
| Permission Item | Description |
| ---------------- | ------------- |
| **Create Issue** | Create issues |
| **Edit Issue** | Edit issues |
| **Delete Issue** | Delete issues |
#### Project Management
| Permission Item | Description |
| --------------------- | ------------------------ |
| **Edit Project Info** | Edit project information |
| **Delete Project** | Delete project |
#### Member Management
| Permission Item | Description |
| ------------------------- | ---------------------- |
| **Read Project Member** | View project members |
| **Create Project Member** | Invite project members |
| **Edit Project Member** | Edit project members |
| **Delete Project Member** | Remove project members |
#### Role Management
| Permission Item | Description |
| ----------------------- | -------------------- |
| **Read Project Role** | View project roles |
| **Create Project Role** | Create project roles |
| **Edit Project Role** | Edit project roles |
| **Delete Project Role** | Delete project roles |
#### API Key Management
| Permission Item | Description |
| ------------------ | --------------- |
| **Read API Key** | View API keys |
| **Create API Key** | Create API keys |
| **Edit API Key** | Edit API keys |
| **Delete API Key** | Delete API keys |
#### Issue Tracker
| Permission Item | Description |
| ---------------------- | ----------------------- |
| **Read Issue Tracker** | View issue tracker |
| **Edit Issue Tracker** | Configure issue tracker |
#### Webhook Management
| Permission Item | Description |
| ------------------ | --------------- |
| **Read Webhook** | View webhooks |
| **Create Webhook** | Create webhooks |
| **Edit Webhook** | Edit webhooks |
| **Delete Webhook** | Delete webhooks |
#### AI and Channel Settings
| Permission Item | Description |
| ---------------------- | ---------------- |
| **Read Generative AI** | View AI settings |
| **Edit Generative AI** | Edit AI settings |
#### Channel-Related Settings
| Permission Item | Description |
| ---------------------- | ------------------------ |
| **Edit Channel Info** | Edit channel information |
| **Delete Channel** | Delete channel |
| **Read Field** | View fields |
| **Edit Field** | Edit fields |
| **Read Image Setting** | View image settings |
| **Edit Image Setting** | Edit image settings |
| **Create Channel** | Create new channels |
### Permission Setting Tips
#### Security Best Practices
- **Principle of least privilege**: Grant only the minimum permissions necessary for work
- **Regular review**: Check permissions when team changes or employees leave
- **Limit Admin role**: Keep the number of administrators as small as possible
### Editing and Deleting Roles
- **Edit**: Click the desired item in the role list to modify the name and permissions
- **Delete**: Roles not in use can be deleted with the **Delete** button
> **Note**: At least one Admin role must always exist and cannot be deleted.
---
## Related Documents
- [Channel Management](./03-channel-management.md) - Channel creation and field settings
- [Feedback Management](./04-feedback-management.md) - Feedback collection and analysis
- [API Integration](/en/developer-guide/api-integration) - API key usage
@@ -0,0 +1,237 @@
---
title: Channel
description: This document explains how to create, configure, and manage feedback collection channels in ABC User Feedback, and how to handle custom fields and image settings.
sidebar_position: 3
---
# Channel
A **Channel** is a unit that distinguishes feedback collection paths or purposes. Each channel has an independent field structure, image settings, and AI features, allowing configuration for various feedback collection scenarios.
---
## Channel Overview
### Role of Channels
Channels serve the following roles:
- **Distinguish feedback collection paths**: Web, app, customer service, surveys, etc.
- **Define data structure**: Unique field settings per channel
- **Manage collection policies**: Image allowance, search period, security settings, etc.
- **Provide analysis units**: Independent statistics and analysis per channel
---
## Creating a Channel
### Access Method
To create a new channel:
1. **Right after project creation**: Click the **Create Channel** button on the project completion screen
2. **Additional channel creation**: Click the **Create Channel** button in **Settings > Channel List**
### Step 1: Channel Basic Information
![channel-create-1](/img/channel/1.png)
| Item | Description | Example |
| ---------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------ |
| **Name** | Channel name (required) | `Web Feedback`, `App Review`, `Customer Service` |
| **Description** | Brief channel description (optional) | `Website user opinion collection` |
| **Maximum Feedback Search Period** | Maximum searchable period for feedback (30/90/180/365 days, all) | `90 days` |
#### Notes on Maximum Feedback Search Period Setting
- **Impact scope**: Directly affects the feedback download functionality
- **Download behavior**: All feedback within the set search period becomes the download target
- **Performance testing**: If daily feedback count is high, test with various periods to find the optimal value
- **Gradual adjustment**: Start with a short period and gradually increase as needed
**After completion**: After entering the information, click the **Next** button.
### Step 2: Field Configuration
![channel-create-2](/img/channel/2.png)
Define the data structure to collect in the channel. This directly affects the API request structure and feedback table configuration.
#### Default System Fields
Fields automatically included in all channels:
| Key | Format | Property | Description |
| ----------- | ----------- | --------- | -------------------------- |
| `id` | number | Read Only | Unique feedback ID |
| `createdAt` | date | Read Only | Feedback creation time |
| `updatedAt` | date | Read Only | Feedback modification time |
| `issues` | multiSelect | Editable | List of linked issues |
> These fields cannot be deleted or have their main properties modified.
#### Adding Custom Fields
Add fields that match actual business requirements.
1. Click the **Add Field** button
2. Enter field information
| Item | Description | Example |
| ---------------- | ------------------------------------------------------------- | -------------------------------- |
| **Key** | Unique identifier (uppercase/lowercase letters, numbers, `_`) | `message`, `rating` |
| **Display Name** | Name displayed in UI | `Feedback Content`, `User Email` |
| **Format** | Data format (see table below) | `text`, `keyword`, `number` |
| **Property** | `Editable` (can input) / `Read Only` (view only) | `Editable` |
| **Status** | `Active` / `Inactive` | `Active` |
| **Description** | Easy-to-understand description for team members (optional) | `User-entered feedback content` |
### Field Format Types
| Format | Description | Usage Example | API Example |
| ------------- | ------------------------ | ----------------------------------------------- | ------------------------ |
| `text` | Free text input | Feedback content, detailed description | `"App keeps freezing"` |
| `keyword` | Short keyword/tag | Version info, page name | `"v1.2.3"` |
| `number` | Number | Rating, age, usage time | `5` |
| `date` | Date | Occurrence date, expiration date | `"2024-03-01T00:00:00Z"` |
| `select` | Single selection | Category, priority | `"Feature Request"` |
| `multiSelect` | Multiple selection | Tags, related features | `["Bug", "UI"]` |
| `images` | Image URL array | Screenshots, attachments | `["https://..."]` |
| `aiField` | AI analysis result field | Sentiment analysis, summary, keyword extraction | `"Positive"` |
> **About images format**: For detailed image setting methods, refer to the [Image Settings](/en/user-guide/settings/image-setting) document.
>
> **About aiField format**: For AI field settings and template configuration methods, refer to the [AI Settings](/en/user-guide/settings/ai-setting) document.
### Field Configuration Examples
#### Web Feedback Channel
| Key | Display Name | Format | Purpose |
| ------------- | ---------------- | ------- | ------------------------------- |
| `message` | Feedback Content | text | User opinion |
| `userEmail` | Email | keyword | Contact (optional) |
| `pageUrl` | Page URL | keyword | Feedback occurrence location |
| `category` | Category | select | Bug/Feature Request/Improvement |
| `priority` | Priority | select | High/Medium/Low |
| `screenshots` | Screenshots | images | Problem situation capture |
#### Mobile App Review Channel
| Key | Display Name | Format | Purpose |
| ------------ | -------------- | ------- | -------------------- |
| `message` | Review Content | text | User review |
| `rating` | Rating | number | 1-5 point rating |
| `appVersion` | App Version | keyword | For bug tracking |
| `deviceType` | Device Type | select | iOS/Android |
| `crashLogs` | Crash Logs | text | Technical error info |
### Field Preview
After completing field configuration, you can preview the actual feedback input screen with the **Preview** button.
This preview matches the field structure required for API requests.
**After completion**: Proceed to the next step with the **Next** button.
### Step 3: Channel Creation Complete
![create-channel-3](/img/channel/3.png)
Once all steps are completed, a **summary screen** appears:
- Channel information: Name, description, time zone
- Field information
---
## Field Management
![field-management.png](/img/channel/field-management.png)
### Editing Fields
To modify existing fields, click the row of the field you want to edit in the field list and modify the information.
> **Note**: `Key` and `Format` cannot be modified after creation. This is restricted for data consistency.
### Field Deletion
To ensure data integrity and consistency, **field deletion is not provided**.
#### Recommended Method Instead of Deletion
1. **Change to Inactive status**: Disable the field to exclude it from new feedback collection
2. **Preserve data**: Keep existing collected feedback data as is
3. **Use filtering**: Display only Active fields in the field list for management efficiency
#### When Complete Removal is Needed
If you need to completely remove a field:
- Consider deleting the entire channel and creating a new one
- Export data and migrate to a new structure
- Consult with the development team for database-level processing
### Field Status Management
#### Active / Inactive Toggle
- **Active**: Fields used during feedback collection
- **Inactive**: Temporarily disabled fields (data is preserved)
#### Filtering Options
You can filter fields by the following conditions using the top controls:
- **Status**: `Active` / `Inactive`
- **Property**: `Editable` / `Read Only`
---
## Channel Information Management
![channel-setting](/img/channel/channel-setting.png)
### Editing Channel Basic Information
You can modify the basic information of created channels.
#### Access Method
1. **Settings > Channel List > [Select Channel]**
2. Click the **Channel Information** tab
#### Editable Items
| Item | Editable | Notes |
| ---------------------------------- | -------- | ------------------------------ |
| **Channel ID** | ❌ No | Internal system identifier |
| **Channel Name** | ✅ Yes | Name displayed to team members |
| **Description** | ✅ Yes | Channel purpose |
| **Maximum Feedback Search Period** | ✅ Yes | May affect performance |
### Channel Deletion
You can delete channels that are no longer in use.
#### Deletion Procedure
1. Click the **Delete Channel** button at the bottom of the Channel Information screen
2. Enter the channel name exactly in the confirmation popup
3. Finalize with the **Delete** button
#### Deletion Notes
- **All feedback data for that channel will be permanently deleted**
- **Cannot be undone**, so backup or export is recommended beforehand
- Related API key settings should also be checked
---
## Related Documents
- [Project Management](./02-project-management.md) - Project settings and permission management
- [Feedback Management](./04-feedback-management.md) - Analysis and utilization of collected feedback
- [API Integration](/en/developer-guide/api-integration) - Integration methods with external systems
- [AI Integration](/en/user-guide/settings/ai-setting) - AI feature settings
@@ -0,0 +1,336 @@
---
title: Feedback
description: This document explains how to create, view, analyze, and manage feedback in ABC User Feedback.
sidebar_position: 4
---
# Feedback
Feedback is the core data of ABC User Feedback. This document covers all features related to feedback, from creation to analysis and management.
![feedback](/img/feedback/0.png)
---
## Creating Feedback
Feedback is mainly created by external systems (websites, mobile apps, API integration), but administrators can also create it directly.
### Creating Feedback via API
This is the most common method of creating feedback.
#### Basic API Request Structure
```bash
curl -X POST http://your-domain.com/api/v1/projects/{projectId}/channels/{channelId}/feedbacks \
-H "Content-Type: application/json" \
-H "X-API-KEY: YOUR_API_KEY" \
-d '{
"message": "User feedback content",
"userEmail": "user@example.com",
"category": "Bug Report"
}'
```
#### Request Examples by Channel Fields
The request structure varies depending on each channel's field settings:
**Web Feedback Channel Example**:
```json
{
"message": "Login button is not working",
"userEmail": "user@company.com",
"pageUrl": "https://example.com/login",
"category": "Bug",
"priority": "High",
"browserInfo": "Chrome 119.0.0"
}
```
**Mobile App Channel Example**:
```json
{
"message": "App freezes frequently",
"rating": 2,
"appVersion": "v2.1.3",
"deviceType": "iOS",
"crashLogs": "Exception in thread main..."
}
```
#### Feedback with Images
When using image URL method:
```json
{
"message": "Screen appears broken",
"userEmail": "user@example.com",
"images": [
"https://cdn.example.com/screenshot1.png",
"https://cdn.example.com/screenshot2.png"
]
}
```
### Verifying Feedback Creation
Created feedback is immediately displayed in the feedback list.
---
## Accessing Feedback List
Access the feedback list to view and manage created feedback.
### Access Method
1. Select the desired **project** from the left sidebar
2. Click the desired **channel** from the channel list at the bottom
3. Select the **Feedback** tab in the top menu
### Feedback Table Structure
The feedback list is displayed in table format with the following basic structure:
| Column Type | Description | Example |
| ------------------- | --------------------------------------------- | ---------------------------- |
| **Default Columns** | Displayed for all channels | ID, Created, Updated, Issue |
| **Custom Columns** | Displayed according to channel field settings | Message, UserEmail, Category |
---
## Feedback Filtering/Sorting/View Options
Various tools are provided to quickly find desired information from large amounts of feedback data.
![feedback-option](/img/feedback/1.png)
### Date Filtering
You can set the viewing period with the **Date** button at the top.
#### Available Period Options
| Option | Description | Use Case |
| ---------------- | --------------------------- | ------------------------ |
| **Today** | Feedback registered today | Real-time monitoring |
| **Yesterday** | Previous day's feedback | Daily review |
| **Last 7 Days** | Recent 1 week of data | Weekly analysis |
| **Last 30 Days** | Recent 1 month of data | Monthly trend analysis |
| **Custom** | Set start-end date directly | Specific period analysis |
### Filters
Click the **Filter** button to filter feedback by various conditions.
![feedback-filter](/img/feedback/2.png)
#### Filter Structure
```
Where: First condition
And: Feedback that satisfies all conditions
Or: Feedback that satisfies at least one condition
```
> **Note**: `And` and `Or` cannot be mixed at the same time.
#### Filter Options by Field Type
| Field Type | Available Operators | Example |
| --------------- | ------------------------------------------ | ----------------------------- |
| **text** | Contains (partial match) | message contains "bug" |
| **keyword** | Is (exact match) | category is "Feature Request" |
| **number** | Is (exact match) | rating == 3 |
| **select** | Is (exact match) | |
| **multiSelect** | Is (exact match), Contains (partial match) | |
| **aiField** | Contains (partial match) | |
| **date** | Is (exact match), Between (period match) | created between date range |
#### Filter Usage Examples
**Advanced Search for Multi-Select Category**:
```
Where: category contains "Bug"
And: priority is "High"
```
**Finding Feedback Linked to Multiple Issues**:
```
Where: issues contains "Login Issue"
Or: issues contains "UI Improvement"
```
**Finding 4-Rating Feedback in Specific Category**:
```
Where: category is "Feature Request"
And: rating is 4
```
### Sorting Function
Click table headers to sort by that column. This feature is available for Created and Updated columns.
### View Options
You can adjust the display method of the feedback list to suit your needs.
#### Expand Feature
Click the **Expand** button to preview detailed content of each feedback in the table.
**Usage**:
- Check main content without opening detail panel
- Quickly browse through multiple feedback
- View full content of long text fields
#### Show/Hide Columns
You can select columns to display with the **View** button at the top of the table.
**Features**:
- **Required columns**: ID, Created are always displayed (cannot be hidden)
- **Optional columns**: Custom fields can be individually shown/hidden
- **Screen optimization**: Efficiently use screen space by displaying only needed information
**Usage Tips**:
```
For monitoring: Display only ID, Created, Message
For analysis: Display all custom fields
For review: Display Message, Category, Priority
```
## Viewing/Editing/Deleting Feedback
You can view detailed information of individual feedback and edit or delete it as needed.
### Viewing Feedback Details
#### Access Method
Click a **row** in the feedback table to open the detail view panel on the right.
![feedback-detail](/img/feedback/3.png)
### Detail Panel Structure
The detail panel is structured as follows:
#### 1. Basic Information Area
- **Feedback ID**: Unique identification number
- **Creation Time**: Initial registration date/time
- **Modification Time**: Last change date/time
- **Issues**: Tagged issues
#### 2. Custom Fields Area
All custom fields set in the channel are displayed.
### Editing Feedback
#### Editable Fields
Click the **Edit** button in the detail panel to switch to edit mode.
#### Editable Items
| Item | Editable | Notes |
| ------------------ | -------- | -------------------------------------------------------------------- |
| **Default Fields** | ❌ No | ID, creation date, etc. |
| **Custom Fields** | ✅ Yes | Varies by field setting Property, not possible if Status is Inactive |
#### Completing Edits
1. Modify necessary information
2. Click the **Save** button
3. Changes are immediately reflected and "Updated" time is refreshed
### Issue Link Management
#### Creating New Issue
1. Click the **+ button** in the issue column
2. Enter the issue name and click the **Create** option
#### Linking Existing Issue
1. Click the **+ button** in the issue section
2. Enter the name of the issue to link
3. Select the issue to link from the dropdown
#### Unlinking Issue
1. Click the **+ button** in the issue section
2. Select the issue to unlink
### Deleting Feedback
#### Single Feedback Deletion
1. Click the **Delete Feedback** button at the bottom of the detail panel
2. Approve deletion in the confirmation dialog
#### Multiple Feedback Deletion
1. Select multiple feedback using **checkboxes** in the feedback list
2. Click the **Delete Selected** button that appears at the top
3. Confirm batch deletion
#### Deletion Notes
- **Cannot be recovered**: Deleted feedback cannot be restored
- **Issue links removed**: Linked issues remain but links are removed
- **Statistics impact**: Data is excluded from dashboard statistics
---
## Downloading Feedback
You can export collected feedback data in various formats for analysis or backup.
### Accessing Download Function
#### Download All Feedback
1. Click the **Export** button at the top of the feedback list
#### Download Filtered Feedback
1. Apply filtering with desired conditions
2. Click the **Export** button to download only data matching current filter conditions
#### Download Selected Feedback
1. Select specific feedback using checkboxes
2. Click the **Export Selected** button
### Download Format Selection
When clicking the Export button, you can select the download format.
#### Supported Formats
| Format | Extension | Advantages | Recommended Use Cases |
| --------- | --------- | ---------------------------------------- | ---------------------------------- |
| **CSV** | `.csv` | Lightweight and highly compatible | Excel, Google Sheets analysis |
| **Excel** | `.xlsx` | Format preservation, multi-sheet support | Detailed analysis, report creation |
---
## Related Documents
- [Channel Management](./03-channel-management.md) - Channel and field settings for feedback collection
- [Issue Management](./05-issue-management.md) - Creating and managing issues from feedback
- [API Integration](/en/developer-guide/api-integration) - How to send feedback from external systems
@@ -0,0 +1,314 @@
---
title: Issue
description: This document explains how to create and manage issues in ABC User Feedback and efficiently track them using kanban/list views.
sidebar_position: 5
---
# Issue
**Issues** are a core feature for systematically managing problems or improvements found in feedback. This document covers all issue management features, from issue creation to category management and various view modes.
![issue](/img/issue/1.png)
---
## Issue Overview
### Role of Issues
Issues are used for the following purposes:
- **Problem tracking**: Systematically manage bugs, errors, performance issues, etc.
- **Feature request management**: Structure user requests and reflect them in development plans
- **Identifying improvements**: Identify improvement points through feedback analysis
### Issue Status
Each issue has the following status:
| Status | Description | When Used |
| --------------- | ------------------- | --------------------------------------- |
| **New** | Newly registered | Initial issue creation |
| **On Review** | Under review | When assignee starts review |
| **In Progress** | In progress | During actual work |
| **Resolved** | Resolved | Problem solved and completed |
| **On Hold** | Temporarily on hold | Waiting for additional info or deferred |
---
## Creating/Editing/Deleting Issues
### Issue Creation Methods
Issues can be created in two ways.
#### 1. Create Issue from Feedback (Recommended)
The most common method, creating an issue based on specific feedback.
1. Click feedback in the **Feedback** tab to open detail view
2. Click the **`+` button** in the **Issue** section of the right detail panel
3. Enter the issue name and press **Enter** or click the **Create** option
#### 2. Create Directly from Issue List
1. Click the **Issue** tab in the top menu
2. Click the **+ Create Issue** button at the top left
3. Enter information in the issue creation dialog:
| Item | Description | Required | Example |
| --------------- | ----------------------------- | -------- | ---------------------------- |
| **Title** | Issue title | Required | `Login button malfunction` |
| **Description** | Detailed description | Optional | `Occurs in specific browser` |
| **Category** | Issue classification | Optional | `Bug` |
| **Status** | Initial status (default: New) | Optional | `New` |
### Editing Issues
You can modify information of created issues.
#### Editing Method
1. Click the issue you want to edit in the issue list
2. Click the **Edit** button in the **Issue Details** panel that opens on the right
3. In edit mode, you can modify the following items:
#### Editable Items
| Item | Editable | Description |
| --------------- | -------- | ------------------------------------------- |
| **Title** | ✅ Yes | Issue title |
| **Description** | ✅ Yes | Detailed description |
| **Category** | ✅ Yes | Issue classification (select from dropdown) |
| **Status** | ✅ Yes | Current progress status |
| **Ticket** | ✅ Yes | External issue tracker ticket number |
| **ID** | ❌ No | System auto-generated |
| **Created** | ❌ No | Creation date/time |
#### Save and Cancel
- **Save** button: Saves changes and exits edit mode
- **Cancel** button: Cancels changes and reverts to original state
### External Issue Tracker Integration
When integration with external issue trackers (Jira, etc.) is configured, you can link external tickets to issues.
#### Ticket Linking Method
1. Enter the external ticket number in the **Ticket** field in the issue detail panel
2. The entered number is automatically converted to an external system link
> **Note**: External issue tracker integration requires prior configuration in **Settings > Issue Tracker Management**.
### Deleting Issues
You can delete issues that are no longer needed.
#### Deletion Method
1. Click the **Delete** button in the issue detail panel
2. Approve deletion in the confirmation dialog
#### Deletion Notes
- **Cannot be recovered**: Deleted issues cannot be restored
- **Feedback links removed**: Issue links in connected feedback are removed
- **Statistics impact**: Data is excluded from dashboard issue statistics
---
## Kanban View
Kanban view is a viewing method that allows visual management by separating issues into columns by status.
![issue-kanban](/img/issue/2.png)
### Accessing Kanban View
1. Click the **Issue** tab in the top menu
2. Select **Kanban** view at the top right
### Kanban Board Structure
Columns are organized by each status, and issues are displayed as cards.
#### Kanban Column Structure
| Column | Display Information | Card Count Display |
| --------------- | ----------------------- | ------------------ |
| **New** | Newly registered issues | Number at top |
| **On Review** | Issues under review | Number at top |
| **In Progress** | Issues in progress | Number at top |
| **Resolved** | Resolved issues | Number at top |
| **On Hold** | Issues on hold | Number at top |
#### Issue Card Information
Each issue card displays the following information:
- **Issue title**: Click to go to detail view
- **Feedback count**: Number of linked feedback (with 📝 icon)
- **Category**: Displayed at bottom if set
- **External ticket**: Ticket number displayed if linked
### Drag and Drop Status Change
A core feature of kanban view, you can change status by dragging issue cards to different columns.
#### Usage Method
1. Click and drag an issue card with the mouse
2. Move it over the desired status column
3. Release the mouse to automatically change status
### Kanban View Filtering
You can display only issues matching specific conditions using the filter function at the top.
#### Available Filters
1. **Date** filter: Display only issues created in a specific period
2. **Filter** button: Set advanced filter conditions
#### Filter Condition Examples
| Filter Type | Condition Example | Use Case |
| ------------ | ---------------------- | ---------------------------------- |
| **Category** | Category = "Bug" | Check only bug issues |
| **Title** | Title contains "Login" | Find login-related issues |
| **Created** | Created >= 2024-03-01 | Issues created after specific date |
| **Status** | Status != "Resolved" | Display only unresolved issues |
### Kanban View Sorting
You can change the sort order of issue cards within each column.
#### Sort Options
- **Created Date ↓**: Newest first
- **Created Date ↑**: Oldest first
- **Feedback Count ↓**: Most linked feedback first
---
## List View
List view is a viewing method that displays issues grouped by category in table format.
### Accessing List View
1. Click the **Issue** tab in the top menu
2. Select **List** view at the top right
### List View Structure
Issues grouped by category are displayed hierarchically.
#### Category Groups
Each category is displayed as a collapsible/expandable group:
- **Group header**: Category name and number of included issues
- **Collapse/Expand arrow**: Toggle group content display/hide
- **"No Category"**: Issues without assigned category
### List View Filtering
Provides the same filter function as kanban view.
#### Filter Application Method
1. Click the **Date** or **Filter** button at the top
2. Set desired conditions
3. Filtered results are displayed grouped by category
#### Empty Category Handling
Categories with no issues in the filtering results are automatically hidden.
### List View Sorting
You can sort by clicking each column header.
#### Sort Behavior
- **First click**: Ascending sort ↑
- **Second click**: Descending sort ↓
#### Each Sort Content
| Sort Criteria | Use Case |
| -------------------- | ----------------------------- |
| **Created ↓** | Check latest issues first |
| **Feedback Count ↓** | Prioritize high-impact issues |
| **Status** | Check grouped by status |
---
## Issue Categories
Issue categories are a feature that allows systematic management by classifying issues.
### Purpose of Categories
- **Issue classification**: Distinguish bugs, feature requests, improvements, etc.
- **Analysis ease**: Analyze issue occurrence patterns by category
### Default Category Examples
Commonly used category classifications:
| Category | Description | Priority | Example Team |
| ------------------- | ----------------------------- | -------- | ---------------------------- |
| **Bug** | Function malfunction, errors | High | Development Team |
| **Feature Request** | New feature addition requests | Medium | Planning Team |
| **Improvement** | Existing feature enhancement | Medium | UX Team |
| **Performance** | Speed, stability issues | High | Infrastructure Team |
| **UI/UX** | User interface problems | Low | Design Team |
| **Documentation** | Help, guide related | Low | Technical Documentation Team |
### Category Management
#### Adding Categories
You can add new categories in the issue detail panel:
1. Click the **Add** button in the **Category** field of the issue detail panel
2. Enter the new category name
3. Press **Enter** or click the confirm button
#### Assigning Categories
You can assign or change categories for existing issues:
1. Click the **Edit** button in the issue detail panel
2. Select the desired category from the **Category** dropdown
3. Save changes with the **Save** button
### Category-Based Issue Management
#### Checking by Category in List View
In list view, you can see issues grouped by category at a glance:
- **Issue count by category**: Number of included issues displayed in each group header
- **Group collapse/expand**: Selectively check only needed categories
- **"No Category" group**: Separate management of unclassified issues
#### Category-Based Filtering
When you want to check only issues of a specific category:
1. Click the **Filter** button
2. Add a **Category** condition
3. Select the desired category
---
## Related Documents
- [Feedback Management](./04-feedback-management.md) - How to create and link issues from feedback
- [Issue Tracker Integration](/en/user-guide/settings/issue-tracker-management) - Integration settings with external tools
- [Project Management](./02-project-management.md) - Team composition and permission management
@@ -0,0 +1,236 @@
---
title: Tenant Settings
description: This guide explains how to manage tenant information, login methods, user management, and other organization-wide settings in ABC User Feedback.
sidebar_position: 1
---
# Tenant Settings
Tenant settings are the top-level management features of ABC User Feedback, covering important settings that affect the entire organization. This document explains how to manage tenant information, configure login methods, and manage all users.
> **Note**: These settings can only be accessed by users with **Super Admin permissions**.
---
## Tenant Settings
A tenant is the top-level unit of an organization, encompassing all projects and users.
### Access Method
1. Click the **Home** icon in the top right menu
2. Select **Tenant Information** from the left menu
### Editable Items
| Item | Description | Editable | Example |
| --------------- | -------------------------------------------- | -------- | ---------------------------- |
| **ID** | Unique tenant identifier (system auto-generated) | ❌ No | `1` |
| **Name** | Tenant name (organization name, company name, etc.) | ✅ Yes | `ABC Company` |
| **Description** | Tenant description (optional) | ✅ Yes | `Customer feedback management system` |
### How to Edit Information
1. Modify the **Name** or **Description** field
2. Click the **Save** button at the top right
3. A success message is displayed when saved
> The tenant name may be displayed in the login UI.
---
## Login Settings
Configure the authentication method users will use when accessing the system.
### Access Method
1. Click the **Home** icon in the top right menu
2. Select **Login Management** from the left menu
### Supported Login Methods
#### 1. Email Login
The default email + password combination method.
**Features**:
- Enabled by default without additional setup
- User invitation → email verification → password setup sequence
- Password reset functionality provided
**Password Policy**:
- Minimum 8 characters
- Recommended to include letters, numbers, and special characters
- Consecutive characters prohibited (e.g., `aa`, `11`)
#### 2. Google Login
Social login method via Google OAuth 2.0.
**Setup Method**:
1. **Enable Google Login**: Toggle to ON
2. **Google Cloud Console setup is required**:
> **Note**: For detailed implementation of Google OAuth integration, refer to the [OAuth Integration Guide](/en/developer-guide/oauth-integration).
#### 3. Custom OAuth Login
Method using your own OAuth server or other OAuth providers.
**Setup Items**:
| Item | Description | Example |
| ----------------- | ------------------------------------ | --------------------------------------------- |
| **Provider Name** | Name displayed on login button | `Sign in with Microsoft` |
| **Client ID** | OAuth client ID | `abc123xyz` |
| **Client Secret** | OAuth client secret | `supersecret` |
| **Auth URL** | Authentication request URL | `https://auth.example.com/oauth2/auth` |
| **Token URL** | Token request URL | `https://auth.example.com/oauth2/token` |
| **User Info URL** | User information request URL | `https://auth.example.com/oauth2/userinfo` |
| **Scope** | Permission scope to request | `openid email profile` |
| **Email Key** | Email field name in user information | `email` |
**Setup Sequence**:
1. Enter OAuth server information in each field
2. Click the **Save** button to save
3. A button with the configured Provider Name is displayed on the login screen
### Login Method Combinations
Multiple login methods can be enabled simultaneously:
- **Email only**: Only default login form displayed
- **Email + Google**: Login form + "Sign in with Google" button
- **Email + Custom**: Login form + custom OAuth button
### Testing Login Settings
After changing settings, be sure to test:
1. Access the login page in browser incognito mode
2. Verify that configured login methods are displayed correctly
3. Perform actual login tests with each method
---
## User Management
A feature to centrally manage all users across the tenant.
### Access Method
1. Click the **Home** icon in the top right menu
2. Select **User Management** from the left menu
### Viewing User List
#### Displayed Information
| Column | Description | Display Example |
| ---------- | -------------------------------- | ---------------------------- |
| Email | Login account email | `user@company.com` |
| Name | User name (from profile) | `John Doe` |
| Department | Department | `Development Team` |
| Type | User type | `SUPER` / `GENERAL` |
| Project | List of accessible projects | `Project A, Project B` |
| Created | Account creation date/time | `2024-03-15 14:30` |
#### User Type Description
| Type | Description | Permission Scope |
| --------- | --------------------------------------------------------------- | ---------------------- |
| `SUPER` | Can access all projects and settings. Acts as full system administrator | Entire tenant |
| `GENERAL` | Can only access specified projects | Specific projects only |
### User Search and Filtering
You can quickly find desired users when there are many users.
#### Filter Function
Click the **Filter** button at the top to set conditions.
**Filter Conditions**:
- **Email**: Search by email address
- **Name**: Search by user name
- **Department**: Search by department name
**Operator Options**:
- **CONTAINS**: When it contains
- **IS**: When it exactly matches
### Inviting Users
Invite new users to the system.
#### Invitation Method
1. Click the **Invite User** button at the top right
2. Enter invitation information
| Item | Description | Options |
| ----------- | ---------------------------------- | --------------------------- |
| **Email** | Email address of user to invite | Required input |
| **Type** | User type | `GENERAL` / `SUPER` |
| **Project** | Projects to allow access | Select from project list |
| **Role** | Role in that project | `Admin` / `Editor` / `Viewer` |
3. Click the **Invite** button to complete the invitation
#### Post-Invitation Process
1. An email is sent to the invited user
2. The user clicks the link in the email to proceed with registration
3. After registration is complete, they are automatically added to the specified project
### Editing User Information
You can modify information and permissions of existing users.
#### Editing Method
1. Click the user you want to edit in the user list
2. The **Edit User** popup opens
#### Editable Items
| Item | Editable | Description |
| --------- | -------- | ------------------------------------- |
| **Email** | ❌ No | Cannot be changed as account identifier |
| **Type** | ✅ Yes | Can change between `GENERAL``SUPER` |
#### Save and Apply
1. Modify necessary information
2. Click the **Save** button
3. Changes are applied immediately and reflected from the user's next login
### Deleting Users
You can delete users who no longer use the system.
#### Deletion Method
1. Click the **Delete** button at the bottom of the user edit popup
2. Approve deletion in the confirmation dialog
#### Deletion Notes
- **Cannot be recovered**: Deleted user accounts cannot be restored
- **Immediate access removal**: All system access is blocked immediately upon deletion
---
## Related Documents
- [Project Management](../02-project-management.md) - Member and permission management per project
- [OAuth Integration Guide](../../02-developer-guide/03-oauth-integration.md) - Technical implementation of OAuth settings
- [API Integration](/en/developer-guide/api-integration) - User management via API
@@ -0,0 +1,134 @@
---
title: API Key Settings
description: This document explains how to create, manage, and maintain security for API keys used for external system integration in ABC User Feedback.
sidebar_position: 2
---
# API Key Settings
API keys are authentication means that allow external systems to securely integrate with ABC User Feedback. This document explains API key creation, management, and security maintenance from a UI perspective.
![api-key-setting.png](/img/api-key/api-key-setting.png)
---
## API Key Overview
### Role of API Keys
API keys are used for the following purposes:
- **External system authentication**: Send feedback from websites, mobile apps
- **Automation integration**: Data collection through batch jobs, scripts
- **Third-party tool connection**: Integration with analysis tools, monitoring systems
- **Security control**: Independent access permission management per project
### Security Features
- **Per-project independence**: Separate keys issued for each project
- **Status management**: Can be controlled immediately with Active/Inactive status
---
## Creating API Keys
### Access Method
1. Click **Settings** in the top menu
2. Select **API Key Management** from the left menu
### Key Creation Process
#### 1. Click Create Button
Click the **Create API Key** button at the top right of the API Key Management screen.
#### 2. Auto Generation and Display
A new API key is automatically generated and displayed in a popup immediately upon clicking the button.
**Popup Components**:
- **API Key Value**: Displays the full key string
- **Copy Button**: Instantly copies to clipboard
---
## Managing API Key List
### Key List Screen Structure
Created API keys are managed in table format.
#### Table Column Information
| Column | Description | Display Format |
| ----------- | ------------------------- | ----------------------------- |
| **API Key** | Generated key value | `AbcdEfgh...` |
| **Status** | Current activation status | Active / Inactive |
| **Created** | Key creation date/time | `2024-03-15 14:30` |
| **Actions** | Management action buttons | Status change, delete buttons |
#### Key Identification Method
Since the full key value cannot be viewed again, distinguish keys using the following methods:
- **Creation time**: Check when the key was created
- **Usage purpose memo**: Record the key's purpose separately
---
## API Key Status Management
![api-key-detail.png](/img/api-key/api-key-detail.png)
### Active / Inactive Toggle
Each API key can be activated/deactivated immediately.
#### Status Meanings
| Status | Description | API Call Result |
| ------------ | ------------------------------ | ----------------- |
| **Active** | Available for actual API calls | Normal processing |
| **Inactive** | Call blocked state | 401 Unauthorized |
#### Status Change Method
1. Click the toggle switch in the **Status** column of the API key list
2. Status changes immediately and is reflected on screen
3. External systems using that key are immediately affected
---
## Deleting API Keys
### When to Delete
API keys should be deleted in the following cases:
- **Key exposure**: When a key is accidentally made public
- **Project termination**: When use of that project ends
- **Security policy**: According to regular key rotation policy
- **Unused keys**: Cleanup of keys no longer in use
### Deletion Method
#### 1. Click Delete Button
Click the delete button in the **Actions** column of the key you want to delete in the key list.
#### 2. Confirm Deletion
Approve deletion in the confirmation dialog.
#### 3. Deletion Complete
When you click the **Delete** button, the key is immediately deleted and removed from the list.
---
## Related Documents
- [API Integration Guide](/en/developer-guide/api-integration) - Actual integration implementation using API keys
- [Project Management](/en/user-guide/project-management) - API key management per project
@@ -0,0 +1,167 @@
---
title: Issue Tracker Settings
description: This guide explains how to integrate ABC User Feedback issues with external issue trackers (Jira, etc.) to track and link issues.
sidebar_position: 3
---
# Issue Tracker Settings
With issue tracker settings, you can integrate ABC User Feedback issues with external issue management systems (Jira, etc.). You can link external ticket links to internal issues to naturally integrate with development workflows.
---
## Issue Tracker Overview
### Purpose of Integration
Issue tracker integration is used for the following purposes:
- **Workflow integration**: Connect customer feedback with development work
- **Issue tracking**: One-to-one mapping between internal issues and external tickets
- **Progress sharing**: Synchronize information between development and customer support teams
- **Efficiency improvement**: Prevent duplicate work and maintain context
### Integration Method
- **Manual link connection**: Manually enter external ticket numbers in ABC issues
- **Automatic URL generation**: Automatically generate links with configured Base URL and Project Key
- **Click navigation**: Click generated links to immediately navigate to external systems
> **Note**: Real-time bidirectional synchronization is not supported. If synchronization such as status changes is needed, use [Webhook](./04-webhook-management.md).
---
## Accessing Settings Screen
### Access Method
1. Click **Settings** in the top menu
2. Select **Issue Tracker Management** from the left menu
### Settings Screen Structure
The issue tracker management screen is structured as follows:
- **Issue Tracking System**: Dropdown to select system to integrate
- **Connection Settings**: Area to enter connection information
- **Link Preview**: Preview of links to be generated
- **Test Connection**: Connection test button
---
## Jira Integration Settings
### System Selection
#### 1. Issue Tracking System Setting
Select **Jira** from the dropdown.
### Entering Connection Information
#### 2. Base URL Setting
Enter the base address of the Jira system.
| Input Example | Description |
| --------------------------------------- | ------------------------------ |
| `https://yourcompany.atlassian.net` | Jira Cloud instance |
| `https://jira.company.com` | Self-hosted Jira Server |
| `https://jira.internal:8080` | Internal network Jira |
**Notes**:
- Must include `https://` or `http://` protocol
- Remove trailing slash (`/`)
- Include port number if present
#### 3. Project Key Setting
Enter the unique key of the Jira project.
| Input Example | Description |
| ------------- | --------------------------- |
| `PROJ` | Common project key |
| `DEV` | Development team project |
| `CS` | Customer support team project |
| `BUG` | Bug management dedicated |
**How to Check Project Key**:
1. Access the project in Jira
2. The part before `-` in the issue number is the Project Key
3. Example: In `PROJ-123`, `PROJ` is the Project Key
### Link Preview
You can preview the links that will be generated based on the configured information.
#### Preview Structure
```
Base URL + /browse/ + Project Key + - + Issue Number
```
**Example**:
- Base URL: `https://yourcompany.atlassian.net`
- Project Key: `PROJ`
- Issue Number: `123` (entered by user)
- **Generated Link**: `https://yourcompany.atlassian.net/browse/PROJ-123`
#### Link Format Validation
Use the preview to check the following:
- Whether the URL format is correct
- Whether actual Jira issues are accessible
- Whether team members have access permissions
---
## Linking Tickets to Issues
### Entering Ticket Number
After issue tracker settings are complete, you can link external tickets to individual issues.
#### Linking Method
1. Click the desired issue in the **Issue** tab
2. The **Issue Details** panel opens on the right
3. Enter the external ticket number in the **Ticket** field
#### Input Format
| Input Method | Description | Generated Link |
| ----------- | ----------- | -------------------------------------------- |
| `123` | Enter only number | `https://jira.company.com/browse/PROJ-123` |
The system automatically adds the Project Key, so you only need to enter the number.
### Automatic Link Generation
After entering the ticket number, click the **Save** button to automatically generate the link.
#### Link Features
- **Click navigation**: Clicking the link opens the external Jira issue in a new tab
- **External link display**: External link icon displayed next to the link
- **Editable**: Can change ticket number in Edit mode
### Unlinking
To remove external ticket connection:
1. Click the **Edit** button in the issue detail panel
2. Delete the content in the **Ticket** field
3. Save changes with the **Save** button
---
## Related Documents
- [Issue Management](/en/user-guide/issue-management) - How to create issues and link tickets
- [Webhook Management](/en/user-guide/settings/webhook-management) - External system notifications when issue status changes
- [API Integration Guide](/en/developer-guide/api-integration) - Issue management via API
@@ -0,0 +1,172 @@
---
sidebar_position: 4
title: 'Webhook Settings'
description: 'This document explains how to set up webhooks for automatic integration with external systems and send notifications when events occur.'
---
# Webhook Settings
Webhooks are a feature that **automatically sends notifications to external systems when specific events occur** in ABC User Feedback. You can deliver events such as feedback creation and issue status changes in real-time to external services (Slack, Discord, your own server, etc.). For detailed integration guide, refer to the [Webhook Integration](/en/developer-guide/webhook-integration) document.
![webhook-setting](/img/webhook/webhook-setting.png)
---
## Access Method
1. Click **Settings** in the top menu
2. Select **Webhook Integration** from the left menu
---
## Webhook Integration Screen Overview
![webhook-list.png](/img/webhook/webhook-list.png)
The webhook integration screen is structured as follows:
### Webhook List Table Structure
| Column | Description |
| ----------------- | --------------------------------------------- |
| **On/Off** | Webhook activation/deactivation toggle switch |
| **Name** | Webhook name |
| **URL** | External endpoint to receive notifications |
| **Event Trigger** | Subscribed event triggers |
| **Created** | Webhook creation date/time |
---
## Creating New Webhooks
![webhook-create](/img/webhook/webhook-create.png)
### 1. Start Webhook Registration
Click the **Register Webhook** button at the top right to open the webhook registration modal.
### 2. Enter Basic Information
#### Required Input Items
| Item | Description |
| -------- | -------------------------------------- |
| **Name** | Name for webhook identification |
| **URL** | Endpoint to receive HTTP POST requests |
### 3. Token Setting (Optional)
You can set a token for authentication in the **Token** field:
- Click the **Generate** button to auto-generate
- Or enter token value directly
### 4. Event Trigger Selection
You can select events to subscribe to per channel:
#### Supported Event Types
For each channel (VOC, Review, Survey, VOC Test), you can select the following events:
| Event Type | Description |
| ----------------------- | -------------------------------- |
| **Feedback Creation** | When new feedback is registered |
| **Issue Registration** | When new issue is created |
| **Issue Status Change** | When issue status is changed |
| **Issue Creation** | When issue is linked to feedback |
### 5. Save Webhook
After entering all information:
1. Click the **OK** button to create the webhook
2. You can cancel with the **Cancel** button
---
## Webhook Status Management
### Activation/Deactivation Toggle
You can change the status by clicking the toggle switch in the **On/Off** column of each webhook in the webhook list:
- **On (Active)**: Real-time transmission when events occur
- **Off (Inactive)**: Webhook is maintained but transmission is stopped
### Temporary Deactivation Scenarios
- When external server is under maintenance
- When changing webhook URL
- When spam notifications need to be prevented
---
## Webhook Editing and Deletion
### Webhook Editing
Click the webhook you want to edit in the webhook list to open the edit modal:
#### Editable Items
- Webhook name
- Target URL change
- Token value modification
- Event type addition/removal
### Webhook Deletion
To completely remove a webhook:
1. Select delete option in the edit modal
2. Or click delete button directly in the list (if delete button exists in UI)
---
## Webhook Testing and Validation
### Manual Validation Method
1. **Feedback Creation Test**:
- Register test feedback to check `Feedback Creation` event
2. **Issue Management Test**:
- Create issues or change status to check related events
3. **External Service Check**:
- Check message reception in Slack, Discord, etc.
---
## Common Integration Examples
### Slack Webhook Settings
```
Name: Slack Notifications
URL: https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXX
Events: Feedback Creation, Issue Registration (all channels)
```
### Discord Webhook Settings
```
Name: Discord Development Team Notifications
URL: https://discord.com/api/webhooks/123456789/abcdefghijk
Events: Issue Status Change (VOC channel only)
```
### Custom Server Integration
```
Name: Internal Analysis System
URL: https://api.yourcompany.com/webhooks/feedback
Token: your-generated-token
Events: All events (all channels)
```
---
## Related Documents
- [Webhook Developer Guide](/en/developer-guide/webhook-integration) - How to implement webhook receiving server
- [API Key Management](./02-api-key-management.md) - API key-based authentication settings
@@ -0,0 +1,272 @@
---
sidebar_position: 5
title: 'AI Settings'
description: 'This document explains basic settings and integration methods for using generative AI features.'
---
# AI Settings
To use **generative AI features** in ABC User Feedback, you must first set up integration with an AI provider.
After completing AI settings, you can use all features such as **AI Field Templates**, **AI Issue Recommendations**, and **AI Usage Monitoring**.
---
## Access Method
1. Click **Settings** in the top menu
2. Select **Generative AI Integration** from the left menu
3. Click **AI Setting** in the top tabs
---
## AI Provider Selection and Settings
![ai-setting.png](/img/ai/ai-setting.png)
### 1. Provider Selection
Select one of the currently supported AI providers: OpenAI, Google Gemini:
### 2. API Key Input
Enter the API key issued from the selected AI provider.
### 3. Base URL Setting (Optional)
In most cases, **leave it empty** and the default value will be used automatically.
Enter only when using special endpoints or proxy servers.
### 4. System Prompt Setting (Optional)
You can set **basic instructions** that the AI will reference when processing all requests.
Use this when you have organizational tone and manner or special requirements.
### 5. Save Settings
After entering all information, click the **Save** button at the top right.
---
## AI Usage Monitoring
![ai-usage.png](/img/ai/ai-usage.png)
You can monitor AI feature usage and costs in the **AI Usage** tab.
### Usage Dashboard
Information you can check:
- **Daily/monthly API call count**
- **Token usage** (input/output separately)
- **Usage distribution by feature** (AI fields vs issue recommendations)
---
## AI Field Template Management
![ai-field-template.png](/img/ai/ai-field-template.png)
After completing AI settings, you can manage automatic feedback analysis templates in the **AI Field Template** tab.
### Default Templates
Default templates provided by the system:
| Template | Description | Usage Example |
| ---------------------- | ---------------------------------------------- | ---------------------------------------- |
| **Feedback Summary** | Summarize feedback in one sentence | Grasp core of long feedback |
| **Sentiment Analysis** | Sentiment analysis (positive/negative/neutral) | Analyze customer satisfaction trends |
| **Translation** | Translate feedback to English | Integrate multilingual feedback analysis |
| **Keyword Extraction** | Extract 2-3 core keywords | Auto-tag issue categories |
### Creating Custom Templates
![ai-field-template-create.png](/img/ai/ai-field-template-create.png)
1. Click the **Create New** card
2. Enter template information
| Item | Description |
| --------------- | ------------------------------- |
| **Title** | Template name |
| **Prompt** | Instruction sentence for AI |
| **Model** | Select AI model to use |
| **Temperature** | Creativity adjustment (0.0~1.0) |
3. Test in Playground
- Enter test feedback with "Add Data" button
- Check results by clicking "AI test execution"
### Template Editing and Deletion
- Click template card → edit
- Delete with **Delete Template** button
- Deletion may affect AI fields using that template
---
## Applying AI Fields to Channels
After creating AI field templates, you must apply them as actual channel fields to view AI analysis results in feedback.
### 1. Add AI Field in Field Management
Add AI fields in **Settings > Channel List > [Select Channel] > Field Management**.
#### AI Field Setting Items
| Item | Description | Required |
| ----------------------- | -------------------------------- | -------- |
| **Key** | Unique field identifier | Required |
| **Display Name** | Name displayed in UI | Required |
| **Format** | Select `aiField` | Required |
| **Template** | Select created AI field template | Required |
| **Target Field** | Text field to be analyzed | Required |
| **Property** | Editable or Read Only | Required |
| **AI Field Automation** | Auto execution | Optional |
#### Setting Example
```
Key: sentiment_analysis
Display Name: Sentiment Analysis
Format: aiField
Template: Feedback Sentiment Analysis
Target Field: message
Property: Read Only
AI Field Automation: ON (auto execution)
```
### 2. Template Connection and Target Field Setting
Select the AI field template created earlier from the **Template** dropdown.
**Target Field** specifies the fields to be analyzed by AI
### 3. AI Field Automation Setting
Select execution method through **AI Field Automation** toggle:
- **ON (Auto execution)**: Automatically execute AI analysis when new feedback is registered
- **OFF (Manual execution)**: User must manually click execution button
## Checking AI Analysis Results in Feedback
After AI field settings are complete, you can check AI analysis results in the feedback list and detail screens.
### Checking in Feedback List
AI fields are added as new columns in the feedback table:
- **Summary**: Summary generated by AI
- **Classification**: AI classification results
- **Korean**: Translation results, etc.
### Checking in Feedback Detail Screen
You can check more detailed AI analysis results in the feedback detail view panel:
1. Click feedback row → right detail panel opens
2. Check AI analysis results by field
3. Displayed with analysis results for each AI field
## Manual AI Analysis Execution
You can manually execute AI analysis in the feedback detail screen.
### Using Run AI Button
1. Click **Run AI** button in feedback detail screen
2. AI analysis executes and results are automatically entered in that field
3. Results can be checked immediately after analysis completes
### Manual Execution Usage Scenarios
- **Cost savings**: Select only needed feedback for AI analysis
- **Performance check**: Test results of new templates in advance
- **Re-analysis**: Re-analyze existing feedback after template modification
---
## AI Issue Recommendation Settings
![ai-issue-recommendation.png](/img/ai/ai-issue-recommendation.png)
You can set up automatic issue recommendation features based on feedback in the **AI Issue Recommendation** tab.
### Creating AI Issue Recommendation Settings
![ai-issue-recommendation-create.png](/img/ai/ai-issue-recommendation-create.png)
1. Click **Create New** button
2. Enter setting items
| Item | Description | Required |
| ---------------- | -------------------------------- | -------- |
| **Channel** | Select channel to apply | Required |
| **Target Field** | Field to analyze (e.g., message) | Required |
| **Prompt** | Recommendation criteria prompt | Optional |
| **Enable** | Feature activation toggle | Required |
3. Advanced Settings
| Setting | Description |
| ------------------------- | ----------------------------------------------------------- |
| **Model** | Model to use |
| **Temperature** | Creativity adjustment |
| **Data Reference Amount** | Amount of issues to reference (issues and related feedback) |
### Testing AI Issue Recommendation Feature
Test in Playground with entered settings:
1. Enter example feedback
2. Click "AI test execution"
3. Check recommended issue list
### Using Recommendations in Actual Feedback
In feedback detail view:
- Check AI recommended issue list
- Select appropriate issues with checkboxes
- Request different recommendations with **Retry** button
### Using Issue Recommendations in Feedback List
In channels with AI issue recommendations configured, you can also use issue recommendation features directly in the feedback list screen.
#### Usage Method
1. Click the **+ button** in the **Issue column** of the feedback you want to link issues to in the feedback list
2. When dropdown menu appears, select **"Run AI"**
3. AI analyzes related issues and displays recommendation list
#### Checking and Applying Recommendation Results
After AI analysis completes, from the recommended issue list:
- Check **recommended issues**
- Select appropriate recommended issues
- Option to create new issues also provided
- After selection, that issue is automatically linked to feedback
#### Batch Processing Usage
You can use AI issue recommendations even when multiple feedback are selected, enabling efficient feedback classification:
1. Select multiple rows in feedback list (using checkboxes)
2. Execute AI issue recommendations from top batch operation menu
3. Check and apply recommended issues for each feedback
---
## Related Documents
- [Field Settings](/en/user-guide/feedback-management) - How to apply AI fields to channels
- [Issue Creation and Status Management](/en/user-guide/issue-management) - How to use AI recommended issues
- [Feedback Checking and Filtering](/en/user-guide/feedback-management) - How to check AI analysis results
@@ -0,0 +1,102 @@
---
sidebar_position: 6
title: 'Image Settings'
description: 'This guide explains how to set up image storage methods and security policies for images attached to feedback.'
---
# Image Settings
ABC User Feedback supports **uploading images along with feedback** when users submit feedback. You can build a safe and efficient feedback collection environment by appropriately setting image storage methods and security policies.
![image-setting.png](/img/image/image-setting.png)
---
## Access Method
1. Click **Settings** in the top menu
2. Select **Channel List > [Select Channel]** from the left menu
3. Select **Image Management** from the bottom tabs
---
## Image Storage Integration Settings
S3 or S3-compatible storage integration is required to upload images directly to the server via **Multipart Upload API** or use **Presigned URL Download** functionality.
### Required Setting Items
| Item | Description | Example |
| --------------------- | ------------------------------------- | ----------------------------------------- |
| **Access Key ID** | Key ID for S3 access | `AKIAIOSFODNN7EXAMPLE` |
| **Secret Access Key** | Secret for the key | `wJalrXUtnFEMI/K7MDENG/...` |
| **End Point** | S3 API endpoint URL | `https://s3.ap-northeast-1.amazonaws.com` |
| **Region** | Region where bucket is located | `ap-northeast-1` |
| **Bucket Name** | Target bucket where images are stored | `consumer-ufb-images` |
### Presigned URL Download Settings
You can enhance image download security through the **Presigned URL Download** option.
#### Setting Options
- **Enable**: Access images through authenticated one-time URLs (enhanced security)
- **Disable**: Image URLs are directly exposed and publicly accessible
### Connection Test
After entering all settings, click the **Test Connection** button to verify storage connection.
Connection results:
-**Success**: "Connection test succeeded" message
-**Failure**: Recheck input values, bucket permissions, network settings
---
## Image URL Domain Whitelist Settings
When using **Image URL method** or wanting to enhance security, you can set a whitelist to allow only trusted domains.
### Current Status Check
Default setting is **"All image URLs are allowed"** state, allowing image URLs from all domains.
### Adding to Whitelist
To allow only specific domains for security enhancement:
1. Add trusted domains in the **Whitelist** area
2. Example domains:
- `cdn.yourcompany.com`
- `images.trusted-partner.io`
- `storage.googleapis.com`
---
## Supported Storage Services
### AWS S3
- Most commonly used cloud storage
- Stable and highly scalable
---
## Saving Settings
After completing all settings, click the **Save** button at the top right to save changes.
After saving:
- New image uploads work according to configured method
- Existing images remain with existing settings
- Recommended to recheck normal operation with Test Connection
---
## Related Documents
- [Field Settings](/en/user-guide/feedback-management) - How to add image fields to feedback forms
- [Feedback Checking and Filtering](/en/user-guide/feedback-management) - How to check uploaded images in feedback
- [API Key Management](./02-api-key-management.md) - API key security management methods
@@ -0,0 +1,5 @@
{
"position": 7,
"label": "Settings",
"description": "Guide for settings."
}
@@ -0,0 +1,8 @@
---
title: Settings
description: Guide for settings.
---
import DocCardList from '@theme/DocCardList';
<DocCardList />
@@ -0,0 +1,5 @@
{
"position": 2,
"label": "User Guide"
}
@@ -0,0 +1,7 @@
---
title: User Guide
---
import DocCardList from '@theme/DocCardList';
<DocCardList />