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.

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

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.

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 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.

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

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:
String
Result is text or a label
CONCAT(FirstName, " ", LastName)
Number
Result is a plain numeric value (count, score, quantity)
FLOOR(DaysOpen__c / 7)
Boolean
Result is true or false — used for flags and checkbox-style columns
AND(Amount > 50000, DaysOpen__c > 90)
Currency
Result is a monetary amount that should display with currency formatting
Amount - (Amount * Discount__c / 100)
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.
AND
Returns true only if ALL conditions are true
IF(AND(Amount > 50000, DaysOpen__c > 90), "At Risk", "On Track")
"At Risk"
IF
Returns one value if a condition is true, another if false. Can be nested.
IF(Amount > 100000, "High", IF(Amount > 10000, "Mid", "Low"))
"High"
ISBLANK
True if a text field is empty or contains only spaces
IF(ISBLANK(Phone), "No phone on file", Phone)
"No phone on file"
ISNULL
True if a value is null or undefined
IF(ISNULL(OwnerId), "Unassigned", Owner.Name)
"Unassigned"
OR
Returns true if AT LEAST ONE condition is true
IF(OR(Amount < 1000, StageName = "Needs Analysis"), "Review", "Good")
"Review"
Math Functions
All math functions operate on number fields or numeric expressions.
ABS
Absolute value — removes the negative sign from a number
ABS(Amount - Forecast__c)
2000 (not −2000)
SQRT
Square root of a number
SQRT(RiskScore__c)
12 (if score = 144)
ROUND
Rounds to the nearest integer
ROUND(Amount * CommissionRate__c / 100)
763
FLOOR
Rounds down to the nearest integer
FLOOR(DaysOpen__c / 7)
3 full weeks (23 days)
CEIL
Rounds up to the nearest integer
CEIL(Quantity__c / BoxCapacity__c)
5 boxes (25 items / 6)
EXP
e raised to the power of a number
EXP(GrowthRate__c * Years__c)
1.35 (rate=0.1, years=3)
LOG
Natural logarithm of a number
LOG(Amount)
13.8 (amount=1,000,000)
SUM
Sum of two or more numbers
SUM(Amount, AddonValue__c, ServiceFee__c)
750
MAX
Largest value from a list
MAX(BasicPrice__c, StandardPrice__c, PremiumPrice__c)
1200
MIN
Smallest value from a list
MIN(QuoteA__c, QuoteB__c, QuoteC__c)
500
String Functions
String functions work on text fields. They can be nested inside IF or combined with CONCAT for powerful display logic.
BEGINSWITH
True if a string starts with a given prefix
IF(BEGINSWITH(Account.Name, "ENT-"), "Enterprise", "SMB")
"Enterprise"
CONCAT
Joins two or more strings. Use " " for a space.
CONCAT(FirstName, " ", LastName)
"John Doe"
CONTAINS
True if a string contains a given substring
IF(CONTAINS(LOWER(Description), "competitor"), "Review", "OK")
"Review needed"
ENDSWITH
True if a string ends with a given suffix
IF(ENDSWITH(LOWER(Email__c), ".gov"), "Government", "Commercial")
"Government"
LEFT
Returns the leftmost N characters
LEFT(BillingCountry, 2)
"Ma" (from "Malaysia")
LENGTH
Number of characters in a string
LENGTH(TRIM(Notes__c))
10 (for "Short note")
REPLACE
Replaces part of a string with new text
REPLACE(Phone, "+60", "0")
Strips country code
SUBSTRING
Extracts characters from position start to end (0-based)
SUBSTRING(Description, 0, 40)
First 40 characters
TEXT
Converts a number or field value to a string
TEXT(Amount)
"10000" (as text)
TRIM
Removes leading and trailing spaces
TRIM(ProductName__c)
"Widget Pro" (no spaces)
UPPER
Converts text to uppercase
UPPER(Account.Name)
"ACME CORP"
Arithmetic Operators
Operators can be used directly in any numeric expression or inside IF conditions.
+
Addition
Amount + AddonValue__c
10500 (10000 + 500)
-
Subtraction
Amount - COGS__c
6000 (10000 − 4000)
*
Multiplication
Quantity__c * UnitPrice__c
1500
/
Division
Amount / Quantity__c
500 per unit
%
Remainder (modulo)
IF(InvoiceNumber__c % 2 = 0, "Even", "Odd")
"Even" (if number = 4)
=
Equals
IF(StageName = "Closed Won", "Won", "Not Won")
"Won"
!=
Not equal
IF(Status__c != "Active", "Inactive", "Active")
"Inactive"
>
Greater than
IF(Amount > 50000, "Large Deal", "Small Deal")
"Large Deal"
<
Less than
IF(DaysOpen__c < 30, "New", "Aging")
"New"
>=
Greater than or equal
IF(Amount >= 50000, "Tier 1", "Tier 2")
"Tier 1"
<=
Less than or equal
IF(Score__c <= 40, "Low", "High")
"Low"
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
Math
ABS
ABS(number)
Number / Currency
Math
CEIL
CEIL(number)
Number / Currency
Math
EXP
EXP(number)
Number
Math
FLOOR
FLOOR(number)
Number / Currency
Math
LOG
LOG(number)
Number
Math
MAX
MAX(n1, n2, ...)
Number / Currency
Math
MIN
MIN(n1, n2, ...)
Number / Currency
Math
ROUND
ROUND(number)
Number / Currency
Math
SQRT
SQRT(number)
Number
Math
SUM
SUM(n1, n2, ...)
Number / Currency
String
BEGINSWITH
BEGINSWITH(text, prefix)
Boolean
String
CONCAT
CONCAT(s1, s2, ...)
String
String
CONTAINS
CONTAINS(text, substring)
Boolean
String
ENDSWITH
ENDSWITH(text, suffix)
Boolean
String
LEFT
LEFT(text, n)
String
String
LENGTH
LENGTH(text)
Number
String
LOWER
LOWER(text)
String
String
REPLACE
REPLACE(text, old, new)
String
String
SUBSTRING
SUBSTRING(text, start, end)
String
String
TEXT
TEXT(value)
String
String
TRIM
TRIM(text)
String
String
UPPER
UPPER(text)
String
Logical
AND
AND(cond1, cond2, ...)
Boolean
Logical
IF
IF(condition, true_val, false_val)
String / Number / Boolean / Currency
Logical
ISBLANK
ISBLANK(text)
Boolean
Logical
ISNULL
ISNULL(value)
Boolean
Logical
OR
OR(cond1, cond2, ...)
Boolean
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.

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.

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

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.

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.

Freeze/Unfreeze Column
Keep a column visible while scrolling horizontally.
Unfreeze returns it to its original position.

Group Columns
Organize related fields by grouping columns together.
Find out more about Column Group here.

Insert Field
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.
Refresh Object Fields (Optional)
If you don't see newly added fields in Salesforce, click Refresh to sync the latest metadata from Salesforce.
Add and Confirm
Select the fields you want to insert and click OK. The selected columns will be added to your grid.

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.
Hide Column
Hide the selected field from the current grid view

Remove Field
Removes the selected field from the current grid view.

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.

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
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.
Please find the information that will help you to use the Lookup feature.
Where it is available, the Lookup feature is denoted by its icon in the column header, as shown in the image below.
In each field of such column, you will see the icon when hovering.
The data matter in such a column will have a grey background.

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

Hover over its respective account name field and click on the Lookup icon.
A pop-up will show the list of all account names. Scroll down or search for the new account name and click on it.
The account name for the Dickenson Mobile Generations opportunity will be changed.
It will also perform the other applicable changes.
The lookup feature will also enable you to view the entity details. For example, let's open the details for Account Name.

Instead of clicking on the Lookup icon, click on the account name written in a grey background.
The account details pop-up screen will open.
You can edit the details and save them if required.
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.
This is only applicable for admin users. Non-admin users must have the "Grid Setup and Configuration" permission to use lookup filters.
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.
Last updated
Was this helpful?