The Native Flow Data Table Will Wow Your Salesforce Users
Salesforce finally brings a native data table to screen flows in the Winter ’23 release.
“No data table?!” For years, that was the lament of Salesforce admins when building screen-based flows.
Here’s how it went: you’d toil away, honing your automation chops on a tricky flow problem, basking in the admiration of your fellow nerds. At some point, you would reach into the Flow Builder palette for a data table element, and … nothing.
No data table. Just text collections or picklists or radio choice selections. Nothing to display an actionable, multi-column list of records. And the only remedies were either to integrate a third-party data table component or build one yourself using LWC or Aura.
That changes with the introduction of a native data table element (Beta) in the Salesforce Winter ’23 Release.
Flow Data Table Features
The new flow data table presents extensive features to enhance your flows.
- Column configuration options
- Selecting table data
- Rich text field capability
- Display uncommitted records
Let’s go into each of these areas in more detail.
1. Column Configuration Options
Adding and Reordering Columns
Admins can add a new column by clicking the Add Column button and can select fields from the associated object. To reorder columns, drag and drop them into the desired position.
Renaming Columns
You can rename any column by checking the Custom Column Label box and providing a custom name in the Label field. In the example below, we’re changing “BillingCity” to “City”.
For text overflow in table cells, choose to wrap or clip text.
2. Selecting Table Data
The table has three selection modes: single, multiple, or view only. Single selection displays a radio button, whereas Multiple presents checkboxes. View only eliminates the checkbox column.
With Multiple data selection enabled, you can set a minimum and maximum to validate user input.
Validating Record Selections
If a user attempts to navigate to the next screen without selecting the minimum number of records, a validation message displays and prevents the user from proceeding. Once the maximum number of records is selected, the remaining records lock down, disabling additional selections.
Record selection is convenient, with options to select all records by clicking the column header checkbox or select a subset by shift-clicking the top and bottom checkboxes in a range.
Navigating Through the Record Set
Clickable pagination isn’t available; instead, users locate individual records in the table using infinite scrolling.
Enhancement Ideas for the Next Release
Salesforce has made a solid start on the data table selection and navigation capabilities. For the next release, we would love to see the following:
- Clickable pagination links with next, previous, and individual page options.
- Filter functionality to add an associated text filter field to narrow the records returned by the data table element.
- Sortable columns. Currently, the Get Records element that populates the data table is the only way to set a sort direction. It would be helpful for the end user to change the sort field and order on the fly.
3. Rich Text Field Capability
If an object tied to a data table has a rich text field, you can add the field as a column in your table display, and it will output the rich text field with formatting intact. This output is ideal for small photos, icons, or shorter blocks of text.
Data Table Rich Text Drawbacks
With the data table element, there isn’t a way to set the maximum height on an individual row or allow scrolling within that row. With long text blocks or large images (common in rich text fields), the row height expands until it fills the total table height, making it difficult to view other records. Here’s an example:
Areas for Rich Text Display Improvement
Salesforce could improve the rich text display in a couple of ways:
- By adding a vertical scrolling option to an individual table row.
- By providing an expand/collapse capability for rich text fields.
4. Display Uncommitted Records
Data table compatible records aren’t limited to those in the database. The data table can also present uncommitted records. This capability is beneficial for confirmation screens that require user input before committing to the database.
An example is collecting user input through a flow screen, adding this input to an object collection, and confirming the submitted information before committing to the database on a subsequent screen.
Step-by-Step Guide
There you have it: the data table features. Let’s jump into how to make it work in your screen flows. In this step-by-step guide, we’ll look at a simple use case of retrieving Account records and displaying these records in a data table.
Getting Started
- Navigate to Setup and search for “Flows” in the quick search box.
- Select the Flows link under the Process Automation heading in the search results.
- Select the New Flow button in the top right corner of the Flows screen.
- Choose Screen Flow and then click Create.
Adding the Record Collection
From the Auto-Layout Flow Screen, click on the plus icon. In the resulting Add Element screen, start typing “Records” and choose the Get Records element from the results list.
Give the Get Records element a Label, API Name, and Description. Select Account as the object, and create a filter condition to reduce the total number of records. Setting a filter condition is a good practice to prevent too large of a record set from being returned. We chose a simple filter where we query Account records that start with the letter “B”.
Set the sort order to Ascending by Name, store all records, and automatically store all fields.
When finished, click the Done button. Now you have a Get Records element ready to populate your future data table.
Populating and Configuring the Data Table
After configuring the Get Records element, add a new screen with a data table. To do this, click the plus icon under the Get Accounts element and search for “Screen”.
Click the Screen option, and in the resulting dialog box, search for the data table element under the Components tab on the left side of the screen.
Drag the data table onto the screen designer and add an API name and label. Under Source Collection, choose the Get Accounts source configured in the previous step. Choose Multiple as the row selection mode.
Configuring the Columns
Next, select the Configure Columns header and search for “Name” as the source field. Go with the default options and click the Done button.
After adding the Name column, click the Add Column button and repeat the above steps to add both BillingCity and BillingState. For BillingCity, check the Custom Label box and call it “City”. Relabel BillingState as “State”.
After configuring the columns, select the Done button and save your flow by clicking the Save button at the top right of the screen. Name your flow and Save.
Test Your Screen Flow
After saving the flow, select the Run button at the top right of the screen. A new tab will open, and you should see the following display. In our case, we’re using a developer trial org with a limited number of Account records, so only a single record starting with the letter “B” displays.
Conclusion
There you have it: a list of the Winter ’23 flow data table features and a simple example of how to set it up. As always, you have more configuration options and different scenarios for using the data table in your flows. Play around with it in a developer trial org with Winter ’23 and see what you think.
This is a great beta release; though not as full-featured as third-party data tables (like the one from UnofficialSF), this native data table has the benefit of being just that, native to Salesforce. You won’t have to download a managed package or write LWC code to make it work. And as this is just the beta, we’re sure improvements will come in the next release.
Here’s our list of the new data table’s pros and cons in its current incarnation.
Pros
- Works out-of-the-box.
- Built by Salesforce, so it will automatically receive upgrades as they become available.
- An extensive set of declarative configuration options, like column renaming and re-ordering, single or multi-select record options, and validation based on minimum and maximum settings.
Cons
- Still in Beta release, so it won’t be generally available with Winter ’23 (use at your own risk).
- Navigation is a little clunky, with infinite scrolling as the only option.
- No column sorting or record filtering is available.
Let us know your thoughts after looking at the new data table yourself.