pen-to-squareData 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.

Column Header

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

Rearrange Fields

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.

Add 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

  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

Formula Field

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:

Return Type
When to use
Example formula

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.

Function
Description
Example Formula
Result

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.

Function
Description
Example Formula
Sample Result

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.

Function
Description
Example Formula
Sample Result

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")

LOWER

Converts text to lowercase

LOWER(Email__c)

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.

Operator
Meaning
Example Formula
Result

+

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

Category
Function
Syntax
Returns

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.

Header Action Drop-down

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.

Locked Field (Read Only) Column Header

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

Lookup Field Column Header

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 Filter Features

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.

Column Header More Options

Freeze/Unfreeze Column

  • Keep a column visible while scrolling horizontally.

  • Unfreeze returns it to its original position.

Freeze and Unfreeze Column

Group Columns

  • Organize related fields by grouping columns together.

  • Find out more about Column Group here.

Group columns

Insert Field

1

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.

2

Refresh Object Fields (Optional)

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

3

Add and Confirm

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

Insert Fields

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

Hide Column

Remove Field

  • Removes the selected field from the current grid view.

Remove Field

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.

Lookup field icon

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

Lookup - Changing relationship between fields
  1. Hover over its respective account name field and click on the Lookup icon.

  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.

  3. The account name for the Dickenson Mobile Generations opportunity will be changed.

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

Lookup - Seeing record details using lookup
  1. Instead of clicking on the Lookup icon, click on the account name written in a grey background.

  2. The account details pop-up screen will open.

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

circle-info

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?