---
title: "Table column layout"
description: "Choose which columns appear, and in what order, in the item, client, and booking tables everyone in your organization sees."
canonical_url: "https://requiply.com/docs/en/guides/settings/fields/table-columns"
---
# Table column layout

> Choose which columns appear, and in what order, in the item, client, and booking tables everyone in your organization sees.

The **Table column layout** page is where admins choose which columns appear, and in what order, on the main data tables in Requiply. It controls how items, item groups, clients, and bookings are presented to everyone in the organization, so the most relevant information shows up first across the app.

You can find this page under **Settings → Fields → Table column layout**.

<warning>

**Admin only.** Non-admin users are redirected to the access denied screen.

</warning>

<figure>

![Table column layout on the Item tab: an Available Columns list holding only Barcode, a Visible Columns list of SKU, QR, Status and Total Expenses, and a Preview underneath rendering those four columns across two sample rows](https://requiply.com/docs/assets/settings/fields/table-levels/image.png)<figcaption>

The visible columns, in order, and the table they produce. This organization has left **Barcode** out, so it waits on the **Available Columns** side while **QR** is shown.

</figcaption>
</figure>

## Why this page matters

Requiply lists records in tables across many areas of the product — the inventory list, item group list, client list, and booking list. Each table has a default set of columns, but different businesses care about different details. This page lets an organization tailor those tables once, in a single place, instead of having every user adjust their own view.

Because the configuration is saved per organization and per entity level, the chosen layout affects:

- The **Items** table.
- The **Item Groups** table.
- The **Clients** table.
- The **Bookings** table.

Custom fields defined for each entity level are also offered here, so business-specific data (not just the built-in system fields) can be promoted into the visible columns.

## Who can use this page

- The page is restricted to administrators. The route uses the `admin` middleware, which checks the current user's membership role and redirects anyone who is not an admin.
- A `store-refresh` middleware also runs to ensure the latest organization data is loaded before the page is shown.

There are no plan or billing restrictions on this page.

## What you'll see

The page is laid out as a single card with the title **Table Column Layout** and the following sections:

- **Entity level tabs** at the top, one tab per supported table:
  - **Item** (inventory items)
  - **Item Group**
  - **Client**
  - **Booking**<br />

The active tab is reflected in the URL as `?tab=...`, so a specific level can be linked to or refreshed without losing context.
- **Columns** section with a small info icon. Hovering the icon explains that this controls the order and visibility of columns on the selected level.
- A **pick list** with two sides:
  - **Available Columns** (left) — columns that exist for this level but are currently hidden from the table.
  - **Visible Columns** (right) — columns that will be shown in the table, in the order they appear here.<br />

Each row shows the column label and a small subtitle indicating whether the column is a **system** field (built into Requiply) or a **custom field** (defined by the organization on this entity level).<br />

Two system columns deliberately start on the **Available Columns** side, so they only appear once you ask for them:<table>
<thead>
  <tr>
    <th>
      Column
    </th>
    
    <th>
      Level
    </th>
    
    <th>
      What it shows
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Client portal
      </strong>
    </td>
    
    <td>
      Client
    </td>
    
    <td>
      Whether the client has an account on your <a href="https://requiply.com/docs/en/guides/online-booking/customer-accounts">
        client portal
      </a>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Origin
      </strong>
    </td>
    
    <td>
      Booking
    </td>
    
    <td>
      The channel the booking came through: <strong>
        Web app
      </strong>
      
      , <strong>
        Mobile app
      </strong>
      
      , <strong>
        Booking page
      </strong>
      
      , <strong>
        AI assistant
      </strong>
      
      , <strong>
        API
      </strong>
      
      , or <strong>
        Unknown
      </strong>
      
      .
    </td>
  </tr>
</tbody>
</table>
- A live **Preview** underneath the pick list, rendering the table with the visible columns in their current order using sample data. It updates as you move and reorder columns, before anything is saved. An **Open** button in the preview header opens the real list page in a new tab.
- **Reset to defaults** and **Save** buttons at the bottom right.

While saving or resetting, the entire page is blocked with a full-screen overlay so the configuration cannot be edited mid-operation.

## Empty state

There is no dedicated "no data" empty state — every entity level has at least a default set of columns. However, two near-empty situations exist:

- If a level has no default layout and no custom fields, the pick list shows two empty lists. This is unusual in normal use.
- If a level has only system defaults and no custom fields have been added yet, the **Available Columns** side may be empty until either columns are removed from the visible side or custom fields are created.

## Main actions

### Choosing which columns are visible

Move columns between **Available Columns** and **Visible Columns** using the pick list controls. Anything on the right side will appear as a column in that table; anything on the left side will be hidden.

### Reordering visible columns

Within the **Visible Columns** side, columns can be reordered. The order saved here is the order used when the table is rendered elsewhere in Requiply.

### Switching between entity levels

Click a tab to switch to another level (Item, Item Group, Client, Booking). Each tab loads its own saved configuration and its own custom fields. Unsaved changes on the current tab are not carried over — only the saved layout for the new tab is loaded.

### Saving changes

Click **Save** to persist the current layout for the active level. Saving stores the full list of columns: visible columns are saved with their order and marked as visible, and the columns left on the **Available** side are saved as hidden so future custom field additions are detected correctly.

On success a toast confirms **Column layout saved successfully**. On failure a generic error toast is shown and the previous state remains.

The **Save** button is disabled when there are no changes compared to the last loaded state, or while a save or reset is in progress.

### Resetting to defaults

Click **Reset to defaults** to restore Requiply's out-of-the-box column set and order for the active level.

- If a saved configuration exists for this level, resetting deletes that saved configuration and reloads the default layout from the server.
- If there is no saved configuration but the on-screen state has been changed, resetting just restores the default columns in the local view (no server call is needed).

A success toast **Column layout reset to default** appears on success. The button is disabled when the current state already matches the default and there is no saved override to clear.

### Searching, filtering, or sorting

This page does not provide search, filtering, or sorting controls — it only configures the column layout itself.

## Forms and fields

The page is not a typical form, but the items in the pick list represent column definitions:

- **Column label** — the user-facing column name. If the column has a translation key, the translated label is used; otherwise an explicit header text or the column's id is shown.
- **System / custom field indicator** — clarifies whether the column is built into Requiply or comes from a custom field defined on that entity level.

There are no text inputs or required fields to fill in. Validation only enforces that the configuration can be saved; if the save fails, the page shows an error toast.

## How this page connects to the rest of Requiply

<table>
<thead>
  <tr>
    <th>
      Feature
    </th>
    
    <th>
      How this page affects it
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Items table
      </strong>
    </td>
    
    <td>
      Controls which inventory item columns are shown and in what order.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Item Groups table
      </strong>
    </td>
    
    <td>
      Controls which item group columns are shown and in what order.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Clients table
      </strong>
    </td>
    
    <td>
      Controls which client columns are shown and in what order.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Bookings table
      </strong>
    </td>
    
    <td>
      Controls which booking columns are shown and in what order.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Custom fields
      </strong>
    </td>
    
    <td>
      Custom fields defined for an entity level become available here as columns. Hiding a custom field on this page does not delete it; it only removes it from the table view.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Level configurations
      </strong>
    </td>
    
    <td>
      The set of available columns is influenced by which entity levels are in use, configured under <a href="https://requiply.com/docs/en/guides/settings/fields/level-configurations">
        Level configurations
      </a>
      
      . Only fields with <strong>
        Available for table view
      </strong>
      
       switched on are offered here.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Detail page fields
      </strong>
    </td>
    
    <td>
      Independent of this page — <a href="https://requiply.com/docs/en/guides/settings/fields/detail-page-fields">
        Detail page fields
      </a>
      
       controls what a single record shows when opened. A column can be visible in the table and hidden on the detail page, or the other way round.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Features
      </strong>
    </td>
    
    <td>
      Columns belonging to an optional feature — the QR and barcode columns, the subrental columns — are only offered while that feature is enabled under <a href="https://requiply.com/docs/en/guides/settings/organization/features">
        Features
      </a>
      
      . Saving while a feature is off does not discard its columns; they reappear when it is switched back on, though possibly at the end of the list.
    </td>
  </tr>
</tbody>
</table>

Because the configuration is stored at the organization level, changes are visible to every user in the organization the next time the corresponding table is loaded.

## Common scenarios

### New business setup

Right after onboarding, an admin opens this page and trims each table down to the columns the team actually uses (for example, hiding internal IDs and showing the fields most relevant to the business). The team then sees a focused, business-specific layout from day one.

### Promoting a new custom field

After adding a custom field to clients (for example, "Loyalty tier"), an admin opens the **Client** tab here and moves the new field from **Available Columns** into **Visible Columns**, placing it next to the client name. From then on, the loyalty tier is visible directly in the clients table.

### Cleaning up after a layout experiment

An admin tries a new arrangement on the **Booking** tab, decides it is not better than the original, and clicks **Reset to defaults** to remove the saved configuration and return the bookings table to Requiply's standard layout.

## Tips and cautions

<tip>

**Tip:** Each tab is saved independently. Remember to click **Save** before switching tabs — moving to another tab reloads that tab's saved state and discards unsaved changes on the previous tab.

</tip>

<tip>

**Tip:** Watch the **Preview** below the pick list while you drag — it shows the real column order with sample data, so a layout can be judged before it is saved.

</tip>

<warning>

**Heads up:** Changes here apply to the entire organization, not just to the current user. Reordering or hiding columns will change what every team member sees in the affected table.

</warning>

<warning>

**Heads up:** **Reset to defaults** removes any saved override for the current level. If a carefully tuned layout existed, it will be lost and replaced with Requiply's defaults.

</warning>


## Sitemap

See the full [sitemap](https://requiply.com/docs/sitemap.md) for all pages.
