# Requests



# 1. Requests: Overview

The **Requests** module centralizes all client-initiated actions—support tickets, callback requests, document submissions, feature requests, and more—ensuring every interaction is tracked, assigned, and resolved in context. Key features include:

1. **Project &amp; Client Association**  
    Every request is tied to a specific Project and Client record, so you always know who asked and under which business line or website.
2. **Desks &amp; Queues**  
    Route requests into different Desks (e.g., Support, KYC, IT) for specialized teams to pick up.
3. **Status &amp; Priority**  
    Track request lifecycles (New, In Progress, Waiting on Client, Closed) and set priority levels (Low, Normal, High, Urgent).
4. **Messaging Thread**  
    Communicate back and forth within each request via the built-in Messages feature, preserving a full audit trail.
5. **Attachments &amp; Metadata**  
    Clients (or staff) can upload files—screenshots, documents, logs—and custom fields capture key details (e.g., account numbers, incident times).
6. **SLA &amp; Escalations**  
    Monitor response and resolution times, escalate overdue requests automatically, and generate reports for continuous improvement.

The following actions are available in the **Requests** module:

1. [Creation](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/3-how-to-create-a-request)
2. [Editing](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/4-how-to-edit-a-request)
3. [Filtering and Searching](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/5-how-to-filter-or-search-a-request)

# 2. Requests: Use Cases

**Use Case #1: Managing Service Inquiries**

Your consulting firm’s website has a “Request a Consultation” form. When a prospect fills it out, a new Request is created, automatically linked to their Client profile (or created anew). All attachments—project briefs, budgets, previous correspondence—are stored in that Request’s thread, so sales and delivery teams can efficiently follow up.

**Use Case #2: Ticket System for Customer Support**

Treat each support ticket as a Request. Assign tickets to your Support Desk, set priorities (e.g., “Urgent – System Down”), and use the Messages feature to ask for details or provide status updates. The SLA dashboard flags aging tickets, ensuring no issue falls through the cracks.

**Use Case #3: Handling Client Feedback and Suggestions**

After onboarding or delivery, invite clients to submit feedback through the portal. Each piece of feedback becomes a Request—categorized (UI suggestion, process improvement, bug report), tagged for review by Product, and tracked through to implementation or response.

**Use Case #4: KYC/AML Documentation Submission**

Use Requests to collect Know-Your-Customer (KYC) documents. A client uploads passports, utility bills, or corporate documents as attachments. The AML Desk can then verify, request additional pages, and set the Request’s status to “Compliance Approved” once complete—maintaining a full audit log for regulators.

**Use Case #5: Account Modification &amp; Feature Requests**

Clients often need changes to their account settings—new user invitations, permission tweaks, or portal feature requests. Each change request is handled through the Requests module: assigned to the IT or Product Desk, prioritized, and communicated back to the client with progress updates until completion.

# 3. How to Create a Request

The **Requests** module is your single pane of glass for all client-initiated actions—support tickets, callback bookings, document uploads, feedback submissions, and more. Each request is automatically tied to a specific **Client** and **Project**, ensuring that nothing falls through the cracks. By using Requests you gain:

1. **Centralized Tracking:** Every inquiry lives in one list with clear status indicators (Active, Archived).
2. **Structured Context:** Attach files, set time windows, and capture custom data so your team has everything they need.
3. **Accountability &amp; Audit:** Who opened, who owns, when it was created—and a complete message thread for full transparency.

Below is a step-by-step guide to **creating** and **viewing** requests in the system.

**1. Open the Requests Module:** From the left-hand nav, click **Requests**. The main Requests list shows total count, filters, search, and the table of existing requests.

**2. Launch the “Add Request” Form:** Click the **+ Add Request** button in the top-right corner.

**3. Complete the General Section** Fill in each field as follows:

<div class="_tableContainer_16hzy_1" id="bkmrk-field-description-na"><div class="_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="2130" data-start="1302" style="width: 99.7619%; height: 178.21px;"><thead data-end="1414" data-start="1302"><tr data-end="1414" data-start="1302" style="height: 29.7017px;"><th data-col-size="sm" data-end="1318" data-start="1302" style="width: 12.6629%; height: 29.7017px;">Field</th><th data-col-size="lg" data-end="1414" data-start="1318" style="width: 87.3265%; height: 29.7017px;">Description</th></tr></thead><tbody data-end="2130" data-start="1533"><tr data-end="1647" data-start="1533" style="height: 29.7017px;"><td data-col-size="sm" data-end="1550" data-start="1533" style="width: 12.6629%; height: 29.7017px;">**Name**</td><td data-col-size="lg" data-end="1647" data-start="1550" style="width: 87.3265%; height: 29.7017px;">Descriptive title (e.g., “Network Outage” or “Schedule Callback”).</td></tr><tr><td data-col-size="sm" data-end="1766" data-start="1748" style="width: 12.6629%;">**UID**</td><td data-col-size="md" data-end="1870" data-start="1766" style="width: 87.3265%;">System-generated unique ID (auto-increment).</td></tr><tr data-end="1776" data-start="1651" style="height: 29.7017px;"><td data-col-size="sm" data-end="1668" data-start="1651" style="width: 12.6629%; height: 29.7017px;">**Time range**</td><td data-col-size="lg" data-end="1776" data-start="1668" style="width: 87.3265%; height: 29.7017px;">(Optional) Select start/end dates to indicate when the request is valid or when the client is available.</td></tr><tr data-end="1894" data-start="1780" style="height: 29.7017px;"><td data-col-size="sm" data-end="1797" data-start="1780" style="width: 12.6629%; height: 29.7017px;">**Client**</td><td data-col-size="lg" data-end="1894" data-start="1797" style="width: 87.3265%; height: 29.7017px;">Pick the client from the dropdown. This cannot be changed after saving.</td></tr><tr data-end="2012" data-start="1898" style="height: 29.7017px;"><td data-col-size="sm" data-end="1915" data-start="1898" style="width: 12.6629%; height: 29.7017px;">**Project**</td><td data-col-size="lg" data-end="2012" data-start="1915" style="width: 87.3265%; height: 29.7017px;">Choose the project context (e.g., “Web Portal Support”).</td></tr><tr data-end="2130" data-start="2016" style="height: 29.7017px;"><td data-col-size="sm" data-end="2033" data-start="2016" style="width: 12.6629%; height: 29.7017px;">**Description**</td><td data-col-size="lg" data-end="2130" data-start="2033" style="width: 87.3265%; height: 29.7017px;">Free-text details provided by the client or added by you for internal context</td></tr></tbody></table>

</div></div><p class="callout info">**Note**: Once saved, you cannot change the client of the request.</p>

**4. Add Custom Data (Additional Information):** Use the **Additional information** JSON tree to set any structured fields (e.g., `priority: "high"`, `documentType: "KYC"`). This is ideal for downstream automation or reporting.

**5. Attach Supporting Files:** Drag-drop or click **Browse** under **Attached file(s)** to upload screenshots, logs, or PDFs. Valid formats: JPG, PNG, PDF.

**6. Save the Request:** When ready, click **Save** at the bottom of the panel.  
The panel closes and your new request appears at the top of the Requests list with **Status = Active**.  
**To view information about created requests**, go to the **Requests** tab and click on the name of the specific request. A drawer will appear with information about it:

##### Viewing &amp; Managing a Request

**Open a Request:** Click any request’s **Name** in the list.  
**Inspect Details:** A **Request information** drawer opens on the right, displaying:

1. General fields (Name, Time range, Client, Description)
2. Status badge (Active, Archived)
3. Attached files and any custom data
4. Full message thread and metadata

##### Conclusion

By leveraging the Requests module you ensure that every client touchpoint is:

1. **Logged:** No more lost emails or ad-hoc notes.
2. **Linked:** Always tied to the right client and project for clear ownership.
3. **Transparent:** Full audit trail and effortless status tracking.

This standardized process boosts team efficiency, improves response times, and elevates client satisfaction across all service lines

# 4. How to Edit a Request

The **Requests** module not only lets you log new client requests, but also provides a full edit interface for updating request details, changing status, and communicating with clients. The Edit Request page centralizes request information and message history in one place.

##### 1. Open the Edit Request page

In the left-hand navigation, click **Requests** to view the list of all requests.  
In the table, locate the request you want to edit and click **Edit** in the Actions column.  
The Edit Request page opens with tabs for **General** and **Messages**.

##### 2. Request Activity Tracking (Last Message Timestamps)

To improve operational visibility, the system automatically tracks when the last message was sent by the client and by the manager for each request.

**New System Fields** Each Request entity contains two additional system-managed fields:

1. **Last message from client at**
2. **Last message from manager at**

These fields store the date and time of the most recent message sent by the respective party.

Defaults:

1. For existing requests: values are `null`
2. For new requests: values are updated automatically once messages are created

These fields are system-controlled and cannot be manually edited.

**Automatic Update Logic** When a new message is created inside a request:

1. If the message is sent by a **client** →  
    `Last message from client at` is updated to the message timestamp.
2. If the message is sent by a **manager** →  
    `Last message from manager at` is updated to the message timestamp.

The timestamp is derived from the message creation time.  
If a request contains messages from both parties, each field reflects the latest message from its respective sender.

**Requests Table Columns** The Requests list table includes two additional columns:

1. **Last message from client at**
2. **Last message from manager at**

Location:  
Displayed after the **Description** column.

Display behavior:

1. Uses the standard CRM date-time format
2. Shows “—” if no message exists from that side

These columns allow managers to immediately understand:  
Who interacted last  
Whether a request is waiting on client response  
Whether manager follow-up is required

**Sorting and Filtering** Both fields fully support:

**Sorting:**  
Ascending  
Descending

**Filtering:**  
Date range filtering (In Range)  
Uses the same filtering logic as other date fields

These filters can be combined with:

1. Project
2. Status
3. Type
4. Created date
5. Other existing filters

**Customize Columns Support** The two new fields are available in **Customize Columns**:

1. Show / Hide toggle
2. Column reordering
3. Persisted per user view (same behavior as other columns)

They behave identically to existing configurable columns such as Created, Updated at, and Status.

**Operational Use Cases** These timestamps help teams:

1. Identify requests waiting for manager reply
2. Detect inactive conversations
3. Prioritize active client threads
4. Monitor SLA compliance
5. Filter requests by recent client interaction

##### 3. Update Core Request Fields  


Inside the **General** tab, you can update the main request fields:  
**Name:** The request title.  
**Time range:** Start Date and End Date selectors.  
**Client:** The primary client associated with the request.  
**Related clients:** Additional client contacts linked to the request.  
**Status:** Indicates the current request state (e.g., Active, Archived).  
**Type:** Defines the request category.  
**Description:** A multi-line field for request details.

> **Note:** The **Client** field is locked after creation to preserve accountability.

##### 4. Additional Information and Attachments

In the **General** tab, you can add structured data and files to the request.  
**Additional information:** Select available nodes to store structured request data.  
**Attached file(s):** Upload files such as images or PDFs using drag and drop or the browse option.

##### 5. Communicate with the Client

Switch to the **Messages** tab at the top of the Edit Request page.  
The Messages tab displays the conversation history related to the request. If no messages exist, an empty state is shown.  
Use this tab to review previous messages and continue communication when available.

> All messages are time-stamped, attributed to you, and—if API-integrated—pushed to the client’s portal.

##### 6. Save Changes

Click **Save** to apply any updates made to the request fields or attachments.

<p class="callout info">**Note**: You can add or edit statuses that are assigned to requests in the **Settings** module ([**Statuses** tab of the **Configurations** section](https://wiki.wi.services/books/wifox-business-core-solution-wbcs/page/3-how-to-configure-statuses)).</p>

When creating a new Request status in Settings → Configurations → Statuses, make sure to define the **Order** field.  
The Order value controls how statuses are displayed in dropdowns and lists. Statuses are sorted in ascending order based on this value.

If the Order field is not set, the status may appear in an unexpected position in the interface.

The **Edit Request** feature centralizes all aspects of request management—metadata, status tracking, file attachments, and real-time messaging—into a single, intuitive panel. By keeping request details up to date and maintaining a live chat history, your team can ensure timely resolutions and a seamless client experience.

# 5. How to Filter or Search a Request

When your list of client requests grows, the Search bar (located above the table) and the Fast Filters panel allow you to narrow results using multiple criteria at once — including name, description, UID, project, client, type, status, and date ranges. Active filters appear as chips above the table, and the Total counter updates instantly.

You can search for requests in two ways:

1. Quick Search (free-text matching)
2. Fast Filters (multi-field structured filtering)

##### To find a request using the Search input:

> The Search input is permanently displayed above the Requests table and works independently from Fast Filters. Search terms are not saved inside filter presets.

**1. Locate the Search field:** At the very top of the Requests table, you’ll see a text box with a magnifying-glass icon and the placeholder “Search…”.

**2. Type your query: By Name**: Start typing the exact or partial request **Name**.  
**By Description**: You can also enter any word from the **Description** field (e.g. “setup”, “bug”).

**3. Instant filtering:** As you type, the table narrows down in real time—only requests whose Name or Description contain your text remain visible. The Total counter at the top left updates automatically to reflect the number of matching records.

**4. Clear the search:** Click the **×** at the right end of the Search box (once text has been entered) to reset the table back to showing all requests:

##### Using Fast Filters

**1. Open the Filters panel**: Click the Filter button (funnel icon) in the top toolbar.

**2. Available Filter Fields** You can filter by multiple parameters simultaneously:  
**Project** – filter by project or desk  
**Name** – filter by request name (Contains / Not contains)  
**UID** – filter by exact or non-equal ID  
**Clients** – select one or multiple linked clients  
**Description** – text-based filter  
**Status** – Active, Archived, Pending, etc.  
**Type** – request category  
**Created** – date &amp; time range (In range / Not in range)  
**Updated at** – date &amp; time range

Each field may support operators such as:

1. Contains
2. Not contains
3. Equal
4. Not equal
5. Includes
6. In range
7. Not in range

**3. Apply Filters:** After selecting your criteria, click **Apply**.  
The table refreshes immediately and only matching records remain visible.

Active filters appear as filter chips above the table.  
Each chip displays:

1. Field name
2. Operator
3. Selected value

Example:  
Created date – In range – 28.02.2023 → 13.01.2026  
Status – Includes – Active  
UID – Not equal – r000117

4\. **Remove Filters:** Remove a single filter by clicking the × on its chip.  
Click **Drop filters** (top right) to clear all filters at once.

5\. **Combine Multiple Criteria:** You can combine as many filters as needed.

Example:  
To find all Active support-type requests created in the last 30 days for Client “ABC”:

1. Status: Includes – Active
2. Type: Equal – Support
3. Clients: Includes – ABC
4. Created: In range – last 30 days

Click **Apply** to update the table.

<article class="text-token-text-primary w-full" data-scroll-anchor="true" data-testid="conversation-turn-218" dir="auto" id="bkmrk-with-search-for-quic">##### Saving Custom Views

If you frequently use the same filter combination:

1. Apply your desired filters.
2. Click **Create View** (top right).
3. Save the configuration for future reuse.

Saved views allow you to instantly load complex filter setups without rebuilding them each time.

With Quick Search for instant keyword matching and Fast Filters for multi-criteria segmentation, you can analyze requests using precise combinations of status, client, type, UID, and date ranges — making even large datasets easy to navigate.

</article>

# 6. Customizing Table Columns in the Requests Module

To improve usability and flexibility, the Requests table supports column customization. This allows users to control which non-core columns are visible and in what order they appear — while ensuring that critical operational columns remain fixed and always visible.

##### Opening Customize Columns

1. In the Requests module, locate the table header area.
2. Click **Customize columns** (column settings icon).
3. A side panel will open displaying the list of available columns.

The interface follows the standard CRM column customization pattern:  
Toggle switches to show/hide columns  
Drag &amp; drop (where supported) to reorder columns

##### Pinned Core Columns (Always Visible)

The following columns are permanently pinned and cannot be hidden or reordered:

1. **Name**
2. **Status**
3. **Type**
4. **Created**
5. **Actions**

##### Pinned Column Rules

1. These columns are always visible.
2. Their position is fixed.
3. They cannot be disabled.
4. They cannot be reordered.
5. They remain consistent across all saved views.

This ensures operational stability and prevents accidental misconfiguration.

##### Configurable Columns

All other columns in the Requests table are configurable.  
Users can:  
Toggle visibility on/off  
Reorder columns via drag &amp; drop (within the configurable section)

Examples of configurable columns may include:

1. UID
2. Project
3. Client
4. Description
5. Updated at
6. Time range
7. Any additional non-core fields

There are no hard-coded non-pinned columns outside the pinned set.

##### Column Visibility

To hide or show a column:

1. Open **Customize columns**
2. Toggle the switch next to the column name
3. Click **Save**

The table updates immediately after saving.

Hidden columns:  
Are removed from the visible table  
Remain available in Customize Columns  
Do not affect filtering or sorting logic

##### Column Reordering

Where supported, configurable columns can be reordered using drag &amp; drop inside the customization panel.

Rules:

1. Pinned columns remain fixed.
2. Reordering applies only to configurable columns.
3. Sorting behavior remains unchanged.
4. Pagination and filters are not affected.

##### Persistence

Your column configuration:

1. Is saved automatically after clicking **Save**
2. Persists after page reload
3. Is retained per user session (according to system settings)

If no customization exists, the system loads the default layout (which matches the current production layout).

##### Default Layout Behavior

The default table layout:

1. Matches the current production configuration
2. Displays all standard columns in their original order
3. Keeps core columns pinned

There are no visual or functional changes unless a user customizes the table.

##### What Customization Does Not Affect

The Customize Columns feature does **not** change:

1. Filtering behavior
2. Sorting logic
3. Pagination
4. Request processing logic
5. Permissions or access control
6. Performance characteristics

All existing table functionality remains stable.

> For better usability:  
> Keep only operationally relevant columns visible.  
> Hide rarely used metadata fields.  
> Use saved views together with column customization for maximum efficiency.

This ensures the Requests table remains clean, readable, and optimized for daily workflows — especially when working with large datasets.