List views and saved views

The list toolbar, the four renderers, grouping, mass edit and CSV import, and the difference between shared list views and personal saved views.

Every collection list in the app (/app/o/<collection>) is driven by a view: columns, filters, sort, and a renderer. Views come in two kinds:

Shared list viewPersonal saved view
Stored aslist-views row (visibility PUBLIC, GROUP or PRIVATE)the user’s user-ui-preferences
Authored byadmins in Setup → Data model → List views, CLI, MCPthe user from the list toolbar
Followseveryone who can see itthe user across browsers and devices
Rendererpublished viewType + typeConfigthe user’s own choice

A user can switch the renderer of a shared view for themselves; that override is stored as a preference and never changes the shared row. ?view=<id> deep-links a view; the default view applies on a clean URL.

The toolbar#

  • Filter bar / builder — any field, any operator from the filter grammar.
  • Multi-sort — shift-click column headers; the URL carries sort=a,-b.
  • Column chooser — visibility and order (at least one column).
  • Density and sticky first column.
  • Group by — client-side grouping over the current page with collapsible headers, counts and sums for number, currency and percent columns.
  • View selector — shared and personal views; save the current state as a new personal view.
  • Renderer switch — table, kanban, calendar, gallery.

Renderers#

RendererConfigNotes
Tablecolumnsvirtualised, inline editing where the layout allows
KanbanlaneField (a picklist field), cardFieldsone lane per picklist value plus Unassigned; drag between lanes issues a PATCH with If-Match, so a concurrent edit is detected and reverted with a toast
Calendara date or datetime fieldmonth grid; the visible month is merged into the query as gte/lte
Galleryan image URL field plus up to four body fieldsresponsive cards with an initial-letter fallback

Selection actions#

Select rows to mass-edit one field across them (runs as a bulk job, needs edit permission and MANAGE_DATA; progress under Setup → Platform → Bulk jobs) or import a CSV into the collection.

Publishing a shared view#

Setup → Data model → List views → New: name, columns, filters, sort, row limit, visibility, and — optionally — a renderer with its configuration. Or:

kelta list-views apply invoices --name "By status" \
  --columns number,customer,amount,due_date \
  --filter status.neq=PAID --sort -due_date \
  --view-type KANBAN --lane-field status --card-fields number,amount \
  --visibility PUBLIC

MCP: apply_listview (create-or-update keyed on collection + name). Filter grammar, row-limit values and the deep-link contract are in the authoring reference.

Related lists on a record page are configured on the page layout and use the same table renderer with their own columns, sort and row limit.

Edit this page on GitHub