Skip to content
Log in

POS layout filters

On this page

POS layout filters let staff narrow a list or grid layout to the records they need. Filters appear as controls in the POS alongside the records, and are configured per layout in Salesforce.

Filters apply to List and Grid type layouts. Record and form layouts do not use them. See POS layouts for an overview of layout types.

POS layout filter types

Each filter record (Pos_Layout_Filter__c) has a Type that controls how the filter appears and how it matches records.

Select

A single-value dropdown. Staff choose one option from a predefined list to filter records.

  • Values are defined in the Select Options field as semicolon-separated value:Label pairs — for example: active:Active;inactive:Inactive
  • Matching is case-insensitive
  • An All option is added automatically to clear the selection

Multiselect

A checkbox list that allows staff to select multiple values at once.

  • Values are defined in the Select Options field using the same value:Label format as select filters
  • Use a semicolon to separate each option: lead:Lead;vip:VIP;wholesale:Wholesale
  • Matching is case-insensitive; a record is included if it matches any selected value

Number range

Two numeric inputs, Minimum and Maximum, that filter records to those within the specified range.

  • Either input can be left blank to create an open-ended range (for example, “500 and above” or “up to 100”)
  • Both values are included in the range
  • The range applies when staff move off the field or close the filter

Date range

Two date pickers, From and To, that filter records by a date field.

  • Either date can be left blank to create an open-ended range (for example, “from 1 Jan 2025 onwards”)
  • The To date is inclusive — records dated on that day are included

Hidden

A filter that applies values without displaying any filter control to staff. Hidden filters are always active, but staff cannot see or interact with them.

Use hidden filters to enforce a fixed scope on a layout, for example always showing only records with a specific status, without exposing that constraint to the user interface.

:::note Hidden filters behave differently to visible filters in several ways: - They do not appear in the filter controls area of the layout - They are not included in the no-records message (see below) - When staff clear visible filters, hidden filter values are preserved and continue to apply :::

How filters appear at POS

Visible filters appear beside the search bar. When staff tap a filter, a menu opens where they choose the values. A select filter starts with an All option, and a multiselect filter has Select all and Deselect all. Once a filter has a value, the filter shows how many values are applied.

When there are more filters than fit across the screen, they collapse into a single Filters button. Tapping it opens every filter together, and staff tap Apply filters to apply them.

On a list layout, applied filters appear below the toolbar, for example Status: Active or Total: 100 - 500. A multiselect filter shows each value separately. Staff tap × beside a value to remove it. To remove all filters, staff tap Reset filters, which appears once two or more values are applied and the filters differ from the layout’s initial values.

Grid layouts don’t list applied filters below the toolbar; the count on each filter shows what is applied. The list also doesn’t appear when the layout has only one select filter, because the filter already shows the value.

Auto-generated options

For select and multiselect filters, you can either configure options explicitly or let the POS generate them automatically from live data.

How auto-options work

When the Select Options field on a filter record is left blank, the POS queries the local dataset for all distinct values present in the filtered field, and builds the option list at runtime. Options update automatically as records sync, so no manual maintenance is needed.

When the Select Options field is set, those values are used as-is and no auto-generation occurs. Switching from explicit to blank re-enables auto-generation on the next render.

:::note Auto-options are derived from the local IndexedDB dataset, so they reflect only records that have already synced to the device. Fields must be indexed in the local schema for auto-options to work; this happens automatically when the field name is set on a layout filter. :::

Auto-option formatting rules

Raw field value Label shown in filter
All-lowercase (e.g., sales) Sentence case: Sales
Any uppercase characters (e.g., VIP, IT Support) Used as-is: VIP, IT Support
Boolean true / false True / False
Empty string (blank) — placed at the end of the list
null or undefined Not included

Auto-options vs explicit options

  Auto-options Explicit options
Select Options field Blank Set
Source Distinct values from local data Configured value:Label pairs
Updates automatically Yes — reactive to data sync No — static
Custom ordering No — alphabetical by field index Yes — defined by your configuration
Label control Sentence-case rule (see above) Full control

Use auto-options when the set of values in your data is dynamic or unknown in advance. Use explicit options when you need a fixed, ordered list or custom labels.

:::tip Auto-options apply to select and multiselect filter types only. number_range and date_range filters do not use an options list. :::

Configuring a POS layout filter

  1. Open the Pos_Layout__c record in Salesforce.
  2. In the POS Layout Filters related list, click New.
  3. Complete the filter record:
Field Notes
POS Layout The layout this filter belongs to (auto-filled from the related list)
Field Name API name of the Salesforce field to filter by. Must exist on the layout’s object or custom data mapping.
Label The display label shown to staff in the filter controls
Type Select the filter type (see above)
Position A number controlling the order in which filters appear
Select Options Required for select and multiselect types. Format: value:Label;value:Label
Initial Values The default value(s) applied when the layout first loads. Separate multiple values with a semicolon for multiselect filters.
Hidden Check this to apply the filter silently without showing it to staff
  1. Save the filter record.

:::tip The Initial Values field works for all filter types, including hidden filters. Use it to set a default that applies before staff make any selections. :::

Filter values format

Filter type Initial values format Example
Select Single value active
Multiselect Semicolon-separated values lead;vip
Number range min,max (omit either for open-ended) 100,500 or 100,
Date range from,to in ISO format (omit either for open-ended) 2025-01-01,2025-12-31
Hidden Same format as the visible equivalent complete

No-records returned messages

When a list returns no results, the POS shows a message that says why:

  • No search or filters active: No records found
  • Search active: No records found matching keyword
  • Visible filter active, with or without a search: No records found matching applied filters
  • List set to wait for a search: Search to show records, before staff have searched. See list loading.

When the device holds only some of an object’s records, the message reads No local records found, and staff can tap Search all records to search the server.

A Clear filters button appears when at least one visible filter has a value. Selecting it resets all visible filters. Hidden filter values are not affected.

:::note Hidden filters are excluded from the no-records message. If records are missing due to a hidden filter, staff will not see that filter referenced in the message. Ensure hidden filter values are intentional and the scoped data is expected by the staff using the layout. :::

After the device next syncs, the filter appears beside the search bar on the layout it is attached to. If it does not appear, confirm the filter is linked to the right layout record and that the device has synced.

Object reference

See POS Layout Filter Object Reference for the full Salesforce field listing.

Was this article helpful?

Was this article helpful?