# Data Control & Customization

Wave Grid gives you the power to personalize how data is displayed and interacted with—just like a flexible spreadsheet. Whether you're sorting, filtering, or accessing related records via lookup fields, you’re always in control of the grid layout and field behavior.

**Key controls include:**

* Column Header Actions for customizing individual columns.
* Lookup and Lookup Filters for managing related data visibility.

These features don’t just enhance visibility—they empower you to focus on the data that matters most.

***

## Column Header

Each column in the Wave Grid has a **Column Header**, which displays the field name (title) of that column. These headers also include a **drop-down menu (Header Action)** packed with useful actions for managing and customizing data display.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FoJnbD4bqFYBCieZt9iAI%2FColumn%20Header%20Edit.png?alt=media&#x26;token=ec3fdaf5-a86f-478b-8679-9e3e4d58b256" alt=""><figcaption><p>Column Header</p></figcaption></figure>

Users can also **rearrange columns** by dragging the column header using the **hand cursor** to reposition them as needed.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FzWU7voTHQRrf6UF5c7z9%2FRearrange%20Fields.gif?alt=media&#x26;token=76842567-04dd-4993-9b36-6916b0731e89" alt=""><figcaption><p>Rearrange Fields</p></figcaption></figure>

To add new fields to the grid, **hover over any column header** and click the **➕ button** that appears. This will open the field picker, where you can select the fields you want to include. After making your selection, click **Update Fields** to apply the changes.

For more details, see [Insert Field](#insert-field).

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FodPqEbVwsifMXYcV9lvc%2FAdd%20Field%20Picker.gif?alt=media&#x26;token=468f42b0-bc12-4adb-b18b-3e0a1e051427" alt=""><figcaption><p>Add field</p></figcaption></figure>

***

## Field Selector

The **Field Selector** is a popup window that allows you to search, filter, and manage fields for your object grid. You can access it in multiple places, including:

* **Manage Grid** – by clicking the **Add** button to update existing grids.
* **Grid Wizard** – when adding fields to a new object grid.

### Features in the Field Selector

* **Search Field**\
  Find a specific field in the object by typing its name in the search bar.
* **Field Type Filters**\
  Narrow down the field list by type, such as **Lookup**, **Picklist**, etc.
* **Included Toggle**\
  Switch between:
  * **Included** – shows fields already added to the grid.
  * **Not Included** – shows fields that have not yet been added.
* [**Formula Field**](#formula-field)\
  Create a new custom formula field directly within the Field Selector.
* **Refresh Object**\
  Update the list of fields to match the latest object definition in Salesforce. Any new fields created (or removed) in Salesforce will be reflected after refresh.

#### Actions

Once you’ve set your field selections:

* **Update Fields** – Apply your changes and add the selected fields to the object grid.
* **Cancel** – Close the Field Selector without saving changes.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2F5BDw0qFSghMTVzlMYjl8%2FField%20Selector.gif?alt=media&#x26;token=aa9fb9fd-f53a-46bc-9e34-77bb78d22665" alt=""><figcaption></figcaption></figure>

***

## Formula Field

Formula Fields let you create new calculated columns directly inside the Wave Grid — without modifying Salesforce records. They compute values automatically from existing field data using built-in functions and operators.

**Common use cases include:**

* Showing the final price after applying a discount
* Combining first name and last name into a single display column
* Flagging at-risk deals based on amount and days open
* Truncating long text fields to a readable summary

> **Note:** Formula Fields create a new column in the grid. They do not write back to Salesforce or modify existing field values.

### How to Create a Formula Field

1. In Field Selector, click **Formula Field**
2. Enter a **Column Name** (required). This is the label shown in the grid header.
3. Choose the Formula Return Type: String, Number, Boolean or Currency. This must match what your formula outputs.
4. Type your formula expression in the Formula Editor using the supported functions and field API names.
5. Click **Check Syntax** to validate the formula. Fix any errors shown before proceeding.
6. Click **Apply** to save, then Update Fields to add the column to the grid

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2Fq3ilfNML9pw59c1hZvAa%2FFormula%20Fields%20v2.gif?alt=media&#x26;token=c4726495-bd01-4979-b4c1-1c508cba73f4" alt=""><figcaption><p>Formula Field</p></figcaption></figure>

### Choosing The Right Return Type

Every formula must declare a Return Type before saving. There are 4 options. Choosing the wrong type causes a type mismatch error — use the table below as a guide:

<table><thead><tr><th width="127" valign="top">Return Type</th><th width="290" valign="top">When to use</th><th valign="top">Example formula</th></tr></thead><tbody><tr><td valign="top">String</td><td valign="top">Result is text or a label</td><td valign="top">CONCAT(FirstName, " ", LastName)</td></tr><tr><td valign="top">Number</td><td valign="top">Result is a plain numeric value (count, score, quantity)</td><td valign="top">FLOOR(DaysOpen__c / 7)</td></tr><tr><td valign="top">Boolean</td><td valign="top">Result is true or false — used for flags and checkbox-style columns</td><td valign="top">AND(Amount > 50000, DaysOpen__c > 90)</td></tr><tr><td valign="top">Currency</td><td valign="top">Result is a monetary amount that should display with currency formatting</td><td valign="top">Amount - (Amount * Discount__c / 100)</td></tr></tbody></table>

### Supported Functions in Formula Fields

The following functions and operators are now supported. They are grouped by category for easier reference.

#### Logical Functions

Logical functions evaluate conditions and control the logic of your formula. They can return Boolean values or, in the case of IF, any return type based on what each branch produces.

<table><thead><tr><th width="110" valign="top">Function</th><th width="216" valign="top">Description</th><th width="264" valign="top">Example Formula</th><th width="155" valign="top">Result</th></tr></thead><tbody><tr><td valign="top">AND</td><td valign="top">Returns true only if ALL conditions are true</td><td valign="top">IF(AND(Amount > 50000, DaysOpen__c > 90), "At Risk", "On Track")</td><td valign="top">"At Risk"</td></tr><tr><td valign="top">IF</td><td valign="top">Returns one value if a condition is true, another if false. Can be nested.</td><td valign="top">IF(Amount > 100000, "High", IF(Amount > 10000, "Mid", "Low"))</td><td valign="top">"High"</td></tr><tr><td valign="top">ISBLANK</td><td valign="top">True if a text field is empty or contains only spaces</td><td valign="top">IF(ISBLANK(Phone), "No phone on file", Phone)</td><td valign="top">"No phone on file"</td></tr><tr><td valign="top">ISNULL</td><td valign="top">True if a value is null or undefined</td><td valign="top">IF(ISNULL(OwnerId), "Unassigned", Owner.Name)</td><td valign="top">"Unassigned"</td></tr><tr><td valign="top">OR</td><td valign="top">Returns true if AT LEAST ONE condition is true</td><td valign="top">IF(OR(Amount &#x3C; 1000, StageName = "Needs Analysis"), "Review", "Good")</td><td valign="top">"Review"</td></tr></tbody></table>

#### Math Functions

All math functions operate on number fields or numeric expressions.

<table><thead><tr><th width="110" valign="top">Function</th><th width="216" valign="top">Description</th><th width="260" valign="top">Example Formula</th><th valign="top">Sample Result</th></tr></thead><tbody><tr><td valign="top">ABS</td><td valign="top">Absolute value — removes the negative sign from a number</td><td valign="top">ABS(Amount - Forecast__c)</td><td valign="top">2000 (not −2000)</td></tr><tr><td valign="top">SQRT</td><td valign="top">Square root of a number</td><td valign="top">SQRT(RiskScore__c)</td><td valign="top">12 (if score = 144)</td></tr><tr><td valign="top">ROUND</td><td valign="top">Rounds to the nearest integer</td><td valign="top">ROUND(Amount * CommissionRate__c / 100)</td><td valign="top">763</td></tr><tr><td valign="top">FLOOR</td><td valign="top">Rounds down to the nearest integer</td><td valign="top">FLOOR(DaysOpen__c / 7)</td><td valign="top">3 full weeks (23 days)</td></tr><tr><td valign="top">CEIL</td><td valign="top">Rounds up to the nearest integer</td><td valign="top">CEIL(Quantity__c / BoxCapacity__c)</td><td valign="top">5 boxes (25 items / 6)</td></tr><tr><td valign="top">EXP</td><td valign="top">e raised to the power of a number</td><td valign="top">EXP(GrowthRate__c * Years__c)</td><td valign="top">1.35 (rate=0.1, years=3)</td></tr><tr><td valign="top">LOG</td><td valign="top">Natural logarithm of a number</td><td valign="top">LOG(Amount)</td><td valign="top">13.8 (amount=1,000,000)</td></tr><tr><td valign="top">SUM</td><td valign="top">Sum of two or more numbers</td><td valign="top">SUM(Amount, AddonValue__c, ServiceFee__c)</td><td valign="top">750</td></tr><tr><td valign="top">MAX</td><td valign="top">Largest value from a list</td><td valign="top">MAX(BasicPrice__c, StandardPrice__c, PremiumPrice__c)</td><td valign="top">1200</td></tr><tr><td valign="top">MIN</td><td valign="top">Smallest value from a list</td><td valign="top">MIN(QuoteA__c, QuoteB__c, QuoteC__c)</td><td valign="top">500</td></tr></tbody></table>

#### String Functions

String functions work on text fields. They can be nested inside IF or combined with CONCAT for powerful display logic.

<table><thead><tr><th width="126" valign="top">Function</th><th width="198" valign="top">Description</th><th width="228" valign="top">Example Formula</th><th valign="top">Sample Result</th></tr></thead><tbody><tr><td valign="top">BEGINSWITH</td><td valign="top">True if a string starts with a given prefix</td><td valign="top">IF(BEGINSWITH(Account.Name, "ENT-"), "Enterprise", "SMB")</td><td valign="top">"Enterprise"</td></tr><tr><td valign="top">CONCAT</td><td valign="top">Joins two or more strings. Use " " for a space.</td><td valign="top">CONCAT(FirstName, " ", LastName)</td><td valign="top">"John Doe"</td></tr><tr><td valign="top">CONTAINS</td><td valign="top">True if a string contains a given substring</td><td valign="top">IF(CONTAINS(LOWER(Description), "competitor"), "Review", "OK")</td><td valign="top">"Review needed"</td></tr><tr><td valign="top">ENDSWITH</td><td valign="top">True if a string ends with a given suffix</td><td valign="top">IF(ENDSWITH(LOWER(Email__c), ".gov"), "Government", "Commercial")</td><td valign="top">"Government"</td></tr><tr><td valign="top">LEFT</td><td valign="top">Returns the leftmost N characters</td><td valign="top">LEFT(BillingCountry, 2)</td><td valign="top">"Ma" (from "Malaysia")</td></tr><tr><td valign="top">LENGTH</td><td valign="top">Number of characters in a string</td><td valign="top">LENGTH(TRIM(Notes__c))</td><td valign="top">10 (for "Short note")</td></tr><tr><td valign="top">LOWER</td><td valign="top">Converts text to lowercase</td><td valign="top">LOWER(Email__c)</td><td valign="top">"sales@acme.com"</td></tr><tr><td valign="top">REPLACE</td><td valign="top">Replaces part of a string with new text</td><td valign="top">REPLACE(Phone, "+60", "0")</td><td valign="top">Strips country code</td></tr><tr><td valign="top">SUBSTRING</td><td valign="top">Extracts characters from position start to end (0-based)</td><td valign="top">SUBSTRING(Description, 0, 40)</td><td valign="top">First 40 characters</td></tr><tr><td valign="top">TEXT</td><td valign="top">Converts a number or field value to a string</td><td valign="top">TEXT(Amount)</td><td valign="top">"10000" (as text)</td></tr><tr><td valign="top">TRIM</td><td valign="top">Removes leading and trailing spaces</td><td valign="top">TRIM(ProductName__c)</td><td valign="top">"Widget Pro" (no spaces)</td></tr><tr><td valign="top">UPPER</td><td valign="top">Converts text to uppercase</td><td valign="top">UPPER(Account.Name)</td><td valign="top">"ACME CORP"</td></tr></tbody></table>

#### Arithmetic Operators

Operators can be used directly in any numeric expression or inside IF conditions.

<table><thead><tr><th width="107" valign="top">Operator</th><th width="196" valign="top">Meaning</th><th width="254" valign="top">Example Formula</th><th valign="top">Result</th></tr></thead><tbody><tr><td valign="top">+</td><td valign="top">Addition</td><td valign="top">Amount + AddonValue__c</td><td valign="top">10500 (10000 + 500)</td></tr><tr><td valign="top">-</td><td valign="top">Subtraction</td><td valign="top">Amount - COGS__c</td><td valign="top">6000 (10000 − 4000)</td></tr><tr><td valign="top">*</td><td valign="top">Multiplication</td><td valign="top">Quantity__c * UnitPrice__c</td><td valign="top">1500</td></tr><tr><td valign="top">/</td><td valign="top">Division</td><td valign="top">Amount / Quantity__c</td><td valign="top">500 per unit</td></tr><tr><td valign="top">%</td><td valign="top">Remainder (modulo)</td><td valign="top">IF(InvoiceNumber__c % 2 = 0, "Even", "Odd")</td><td valign="top">"Even" (if number = 4)</td></tr><tr><td valign="top">=</td><td valign="top">Equals</td><td valign="top">IF(StageName = "Closed Won", "Won", "Not Won")</td><td valign="top">"Won"</td></tr><tr><td valign="top">!=</td><td valign="top">Not equal</td><td valign="top">IF(Status__c != "Active", "Inactive", "Active")</td><td valign="top">"Inactive"</td></tr><tr><td valign="top">> </td><td valign="top">Greater than</td><td valign="top">IF(Amount > 50000, "Large Deal", "Small Deal")</td><td valign="top">"Large Deal"</td></tr><tr><td valign="top">&#x3C; </td><td valign="top">Less than</td><td valign="top">IF(DaysOpen__c &#x3C; 30, "New", "Aging")</td><td valign="top">"New"</td></tr><tr><td valign="top">>=</td><td valign="top">Greater than or equal</td><td valign="top">IF(Amount >= 50000, "Tier 1", "Tier 2")</td><td valign="top">"Tier 1"</td></tr><tr><td valign="top">&#x3C;=</td><td valign="top">Less than or equal</td><td valign="top">IF(Score__c &#x3C;= 40, "Low", "High")</td><td valign="top">"Low"</td></tr></tbody></table>

### Advanced Real-World Examples

These examples combine multiple functions for more complex use cases.

**Commission tier label**

`IF(Amount >= 50000, "Tier 1 (8%)", IF(Amount >= 20000, "Tier 2 (5%)", "Tier 3 (3%)"))`

**Short contact summary line**

`CONCAT(UPPER(LEFT(FirstName, 1)), ". ", LastName, " — ", TRIM(Title__c))`

> *Result: "J. Smith — Senior Account Executive"*

**Deal risk score label**

`IF(AND(Amount > 50000, DaysOpen__c > 90), "High Risk", IF(OR(Amount > 50000, DaysOpen__c > 90), "Medium Risk", "Low Risk"))`

**Total value with fallback to zero**

`IF(ISNULL(Quantity__c), 0, Quantity__c * UnitPrice__c)`

**Masked account number**

`CONCAT("XXXX-", SUBSTRING(AccountNumber__c, LENGTH(AccountNumber__c) - 4, LENGTH(AccountNumber__c)))`

> *Result: "XXXX-5678" from "ACC-005678"*

### Quick Reference — All Supported Functions

<table><thead><tr><th width="118" valign="top">Category</th><th width="134" valign="top">Function</th><th valign="top">Syntax</th><th valign="top">Returns</th></tr></thead><tbody><tr><td valign="top">Math</td><td valign="top">ABS</td><td valign="top">ABS(number)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">Math</td><td valign="top">CEIL</td><td valign="top">CEIL(number)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">Math</td><td valign="top">EXP</td><td valign="top">EXP(number)</td><td valign="top">Number</td></tr><tr><td valign="top">Math</td><td valign="top">FLOOR</td><td valign="top">FLOOR(number)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">Math</td><td valign="top">LOG</td><td valign="top">LOG(number)</td><td valign="top">Number</td></tr><tr><td valign="top">Math</td><td valign="top">MAX</td><td valign="top">MAX(n1, n2, ...)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">Math</td><td valign="top">MIN</td><td valign="top">MIN(n1, n2, ...)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">Math</td><td valign="top">ROUND</td><td valign="top">ROUND(number)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">Math</td><td valign="top">SQRT</td><td valign="top">SQRT(number)</td><td valign="top">Number</td></tr><tr><td valign="top">Math</td><td valign="top">SUM</td><td valign="top">SUM(n1, n2, ...)</td><td valign="top">Number / Currency</td></tr><tr><td valign="top">String</td><td valign="top">BEGINSWITH</td><td valign="top">BEGINSWITH(text, prefix)</td><td valign="top">Boolean</td></tr><tr><td valign="top">String</td><td valign="top">CONCAT</td><td valign="top">CONCAT(s1, s2, ...)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">CONTAINS</td><td valign="top">CONTAINS(text, substring)</td><td valign="top">Boolean</td></tr><tr><td valign="top">String</td><td valign="top">ENDSWITH</td><td valign="top">ENDSWITH(text, suffix)</td><td valign="top">Boolean</td></tr><tr><td valign="top">String</td><td valign="top">LEFT</td><td valign="top">LEFT(text, n)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">LENGTH</td><td valign="top">LENGTH(text)</td><td valign="top">Number</td></tr><tr><td valign="top">String</td><td valign="top">LOWER</td><td valign="top">LOWER(text)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">REPLACE</td><td valign="top">REPLACE(text, old, new)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">SUBSTRING</td><td valign="top">SUBSTRING(text, start, end)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">TEXT</td><td valign="top">TEXT(value)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">TRIM</td><td valign="top">TRIM(text)</td><td valign="top">String</td></tr><tr><td valign="top">String</td><td valign="top">UPPER</td><td valign="top">UPPER(text)</td><td valign="top">String</td></tr><tr><td valign="top">Logical</td><td valign="top">AND</td><td valign="top">AND(cond1, cond2, ...)</td><td valign="top">Boolean</td></tr><tr><td valign="top">Logical</td><td valign="top">IF</td><td valign="top">IF(condition, true_val, false_val)</td><td valign="top">String / Number / Boolean / Currency</td></tr><tr><td valign="top">Logical</td><td valign="top">ISBLANK</td><td valign="top">ISBLANK(text)</td><td valign="top">Boolean</td></tr><tr><td valign="top">Logical</td><td valign="top">ISNULL</td><td valign="top">ISNULL(value)</td><td valign="top">Boolean</td></tr><tr><td valign="top">Logical</td><td valign="top">OR</td><td valign="top">OR(cond1, cond2, ...)</td><td valign="top">Boolean</td></tr></tbody></table>

***

## Column Header Action

Click the **drop-down icon** in the column header to **search for records and choose which ones to display**, allowing for more tailored data viewing.

Depending on the field type, the drop-down menu offers different options:

* **Picklist fields**: You can search and select specific values, but filter options will not appear.
* **Date fields**: Filter using preset options like *Today*, *Tomorrow*, *Next Month*, or choose a custom date using the calendar picker.
* **Number fields**: Filter options adjust to allow number-specific conditions such as *equals*, *greater than*, *less than*, and more.
* **String fields**: Users can filter records by selecting text values directly from the available list, making it easy to narrow down results based on specific text entries.
* **Formula Fields**: Filtering behavior for Formula Fields depends on the formula’s **output data type**.
  * **Number formulas:** Support number-based conditions (equals, greater than, less than, etc.).
  * **Text formulas:** Allow filtering by selecting text values from a list.
* **Lookup Fields**: Lookup filter options follow the **data type of the referenced field**.
  * **Lookup to text-based fields:** Users can filter by selecting the available text values.
  * **Lookup to number-based fields:** Number-specific filter conditions are applied.
  * **Lookup to date fields:** Date-related filter options become available.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FleIPtDxGcvlE5UZgmHNF%2FHeader%20Action.gif?alt=media&#x26;token=5cabb37c-33f3-493f-a393-78e7f92adcd9" alt=""><figcaption><p>Header Action Drop-down</p></figcaption></figure>

If a field is **Locked (Read-Only)** in Salesforce, it will also be locked in Wave. A **lock icon** appears in the column header, and the data is read-only. The **entire column will appear in grey**, indicating that it’s non-editable.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FPV2WmjVpvNBJnkvoXhiu%2FColumn%20Header%20Locked.gif?alt=media&#x26;token=fa00ea01-3a20-475a-ab58-14d8e436c103" alt=""><figcaption><p>Locked Field (Read Only) Column Header</p></figcaption></figure>

When a field is added using **Lookup**, the column header shows the number of lookup levels applied.\
Hover over the lookup number to view the full path. For example:\
`CreatedBy >> Account >> CreatedBy >> Country`

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FfWnFo8LKbafXyB2AIooN%2FLookup%20Field.gif?alt=media&#x26;token=363b6516-f73f-4caa-b5cc-ca097f3e211a" alt=""><figcaption><p>Lookup Field Column Header</p></figcaption></figure>

### Filter Features

* Only values **available in the grid** are shown.
* Typing in the filter dynamically **narrows the list**.
* Picklist values follow the **Salesforce-defined order**.
* A **blue filter icon** in the header shows which columns have active filters.
* Use **Clear All Filters** to reset your grid view.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FvEMTJmCKgWpByc8Pvie0%2FColumn%20Header%20Filter%20Features.gif?alt=media&#x26;token=8d2ad3b9-8d7c-4359-aaca-067ade7e72bb" alt=""><figcaption><p>Column Header Filter Features</p></figcaption></figure>

## Column Header More Options

Wave Grid gives you Excel-like flexibility, putting you in control of your data with ease.\
Each column header offers powerful actions like **freezing, sorting, grouping**, and helping you organize information just the way you need it. You can also **insert or remove columns** seamlessly within the familiar, spreadsheet-style interface for a highly customizable data experience.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FKmvNQMJCVb7Fxs0IikMs%2FMore%20Option%20Column%20Header.png?alt=media&#x26;token=044304b7-ae62-41ec-be59-4553f76eae7b" alt=""><figcaption><p>Column Header More Options</p></figcaption></figure>

### Freeze/Unfreeze Column

* Keep a column visible while scrolling horizontally.
* Unfreeze returns it to its original position.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FWHyoF0gjau8UwmxBBPMC%2FFreeze%20Column.gif?alt=media&#x26;token=36dda5b9-ebd5-42a9-995b-597195f14a4e" alt=""><figcaption><p>Freeze and Unfreeze Column</p></figcaption></figure>

### Group Columns

* Organize related fields by grouping columns together.
* Find out more about Column Group [here](https://docs.valorx.com/valorx-wave/wave-data-management/managing-grid-data/column-group).

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FvAmtIqCQ67phX0AuplrB%2FColumn%20Group%20Header%20Action.gif?alt=media&#x26;token=8288018c-9f56-4163-855f-a9116ee1e057" alt=""><figcaption><p>Group columns</p></figcaption></figure>

### Insert Field

{% stepper %}
{% step %}
**Open the Insert Field Panel**

Click **Insert Field** to open a pop-up showing all available columns for the selected object (e.g., *Opportunity*).

* Fields already present in the current grid will be pre-selected.
* You can **search** for fields using the search bar or **filter** by data type using the **Data Type** dropdown.
  {% endstep %}

{% step %}
**Refresh Object Fields (Optional)**

If you don't see newly added fields in Salesforce, click **Refresh** to sync the latest metadata from Salesforce.
{% endstep %}

{% step %}
**Add and Confirm**

Select the fields you want to insert and click **OK**. The selected columns will be added to your grid.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2F7VlMjKUeBE7Fuq3pd2eD%2FAdding%20Fields%20Header%20Action.gif?alt=media&#x26;token=62af66cc-b99b-429a-840b-78f0bfc60a42" alt=""><figcaption><p>Insert Fields</p></figcaption></figure>
{% endstep %}
{% endstepper %}

For **Standard Grids**, adding a new column/field **converts it to a custom grid**, with a toast notification and rename prompt. Find out more about it [here.](https://docs.valorx.com/valorx-wave/wave-experience/create-a-new-grid/manage-grid-in-wave-browser-extension#customize-standard-grid-salesforce-view)

### Hide Column

* Hide the selected field from the current grid view

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FeFHW6c1YL9hs6IMZCXn2%2FHide%20Column.gif?alt=media&#x26;token=479ea5c7-da5d-4d02-8b2f-3d7e7115d249" alt=""><figcaption><p>Hide Column</p></figcaption></figure>

### Remove Field

* Removes the selected field from the current grid view.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FiAVGONvh2FBTWlLZCAaW%2FRemove%20Field.gif?alt=media&#x26;token=ffc953ec-8228-41f2-9df1-04c876d2d09c" alt=""><figcaption><p>Remove Field</p></figcaption></figure>

### Sort

* Sort data in **ascending (A–Z / 0–9)** or **descending (Z–A / 9–0)** order.

**Notes:** When you sort using the **column header**, the sorting only happens on the records that are already loaded in the grid. No Salesforce call is made. Also, this kind of sorting is temporary and will reset if you refresh or reopen the grid.

<figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FpBM0IdOUmlwK4FsJoH4F%2FSort%20Header%20Action.gif?alt=media&#x26;token=2d03d034-36fc-4b2e-85ae-46d5fe45f78d" alt=""><figcaption></figcaption></figure>

These **Header Action** features make data handling in Wave as seamless and powerful as working in **Excel**, enhancing productivity while keeping your Salesforce data structured and accessible.

Want to understand how Header Sort compares to Toolbar Sort? See [Sorting Overview](https://docs.valorx.com/valorx-wave/wave-data-management/managing-grid-data/sort)

***

## Lookup

The Lookup feature enables you to:

* See and update the account information from the Grid columns in a single click
* Change the relationships between two entities in a single click. For example, if you wish to change the account name for a contact or vice versa, you can do it in a single click.     &#x20;

Please find the information that will help you to use the Lookup feature.&#x20;

Where it is available, the Lookup feature is denoted by its icon in the column header, as shown in the image below.&#x20;

* In **each field of such column**, you will see the icon when hovering.&#x20;
* The data matter in such a column will have a grey background.

<div align="left"><figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2FhV3lb0y8wwDwElWEQw11%2Fl%201.png?alt=media&#x26;token=a06eb6a8-ef7e-42db-8aad-b4ee3ea97b86" alt="" width="353"><figcaption><p>Lookup field icon</p></figcaption></figure></div>

> You can use Lookup to change entity relationships. For example, let's change the account name for the Dickenson Mobile Generations opportunity.&#x20;

<div align="left"><figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2Frbq0MH02nvHXJEz2jN3T%2Fl%202.png?alt=media&#x26;token=8476fbef-4714-4cc6-a6c9-0716b0196116" alt="" width="428"><figcaption><p>Lookup - Changing relationship between fields</p></figcaption></figure></div>

> 1. Hover over its respective account name field and click on the Lookup icon.  &#x20;
> 2. A pop-up will show the list of all account names. Scroll down or search for the new account name and click on it.&#x20;
> 3. The account name for the Dickenson Mobile Generations opportunity will be changed.&#x20;
> 4. It will also perform the other applicable changes.&#x20;

* The lookup feature will also enable you to view the entity details. For example, let's open the details for Account Name.&#x20;

<div align="left"><figure><img src="https://2237973035-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F65f4C4H8V5e0YV342mwp%2Fuploads%2F6QNm1qiQwKmY82HaEHr6%2Fl%203.png?alt=media&#x26;token=ae133818-d5db-4dc3-835f-ceabde336acc" alt=""><figcaption><p>Lookup - Seeing record details using lookup</p></figcaption></figure></div>

> 1. Instead of clicking on the Lookup icon, click on the account name written in a grey background.&#x20;
> 2. The account details pop-up screen will open. &#x20;
> 3. You can edit the details and save them if required.&#x20;

### Lookup Filters

Lookup fields in the grid now fully adhere to the filters applied in Salesforce, ensuring consistent data visibility and user experience in Salesforce. This configuration allows users to interact with more refined data sets, making it easier to find the necessary records.&#x20;

{% hint style="info" %}
This is only applicable for admin users. Non-admin users must have the "Grid Setup and Configuration" permission to use lookup filters.&#x20;
{% endhint %}

**Key Benefits:**

* **Enhanced Data Accuracy:** Lookup Filters ensure users are selecting from relevant data sets, reducing errors in data entry.
* **Improved Efficiency:** Lookups display only records that meet the defined filter conditions, minimizing the need to sift through extensive lists.
* **Customizable Filters:** Admins can define the filter criteria based on field values or other conditions to streamline the selection process.

This functionality is especially useful for users working with large data sets, ensuring that only the most relevant records are available in the lookup field.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.valorx.com/valorx-wave/wave-data-management/data-control-and-customization.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
