Designing Table Views

A view is a designed table: a chosen set of columns over a chosen source, with a filter and a sort order saved alongside it. Everybody who opens the view sees the same design. This is different from a saved view on an ordinary list, which is your own arrangement of an existing table — see Working with Lists for those.

A view is also the usual data source for widgets: a Table, List, Metric, Chart or Calendar on a dashboard reads its rows from a view you design here. See Widgets: the full guide.

Where to find it

ScreenWhere it livesWhat you need
Views — /admin/viewsSettings → Data model → ViewsPermission to read views; adding and editing need the write permission, and deleting needs the delete permission and your password

Who can do this

To do thisYou need
Open the designer and preview a viewcrm.virtual_tables.read
Add a view, or edit onecrm.virtual_tables.write
Delete a viewcrm.virtual_tables.delete — and the app asks for your password first, unless you gave it a short while ago

Without the read permission the page says "You do not have permission to view the view designer." The + Add view, Edit and Delete buttons appear only for people who may use them.

The catalogue

Every view in the space is listed with its Name, its Source and the number of Columns it has. Badges beside the name tell you what kind of row you are looking at — System (shipped by the application), Locked (read-only in the designer), Disabled (switched off, so it cannot be opened).

Press + Add view to create one. Each row has Preview, and Edit to change it.

Name and Enabled

Give the view a Name. Enabled (the view can be opened) switches it on or off without deleting it.

A view is not a menu item. To show it in the sidebar, add a menu row for it under Menus and pick the view there by its name — its icon, order and placement are set there, which is why this designer has no icon field.

Source table

Pick what the view reads. Today that is Contacts; the picker shows that one option and says "Views over other tables arrive with the registry-driven source picker."

Columns

A view needs at least one column — a new view starts with Name — and the columns are shown in the order you arrange them. The picker groups what is available:

GroupWhat it offers
Contact columnsthe record itself — Name, Type, Enabled, Phones, Emails, Addresses, Groups, Roles, Created, Modified
Linked (person / entity)the name parts of the person or organization behind the contact — Name prefix, First name, Middle name, Last name, Name suffix, Nickname, Description
Custom fieldsthis space's custom fields. A calculated or rollup field carries a Computed — read-only badge
Extension tablescolumns from the extension tables attached to the record, each with its table's name beside it
Linked contactsthe contacts on the other end of a link type

Use Move up / Move down (the ↑ and ↓ arrows) to arrange them, and Remove (×) to take one out.

Some columns are read-only by their nature, and the designer marks them Read-only rather than letting you discover it on save. Roles are one: a role column displays roles, but roles are granted and removed on the contact's page, never by saving a view. A column that holds protected data is badged Sensitive.

Linked-contact columns

A Linked contacts column shows the contacts reached through one link type — "Employee of", "Member of", and so on. For each enabled link type the picker offers two entries, one per direction, labelled with that type's own words:

  • outbound — this record links out;
  • inbound — other records link in;
  • either direction — offered as a single entry when the link type reads the same both ways.

These columns are read-only and cannot be sorted (they hold many values). They filter on the linked contact's name, and — when the link type carries its own fields, such as a status or a start date — on those fields too. See Filtering & Searching.

Warning
An inbound link column can be large: the cell lists every contact that links in, and a single hub record — an agency, a practice — can hold dozens of names. The designer says so above the link columns: "Inbound link columns can be large — the cell lists every contact that links in."

If a link column names a link type that is not enabled in this space, it is badged Unknown or disabled link type and the server refuses to save the view until the type is re-enabled or the column removed.

Filter

A view can carry a filter: an AND/OR tree built with the same filter builder as the lists (see Filtering & Searching for how to read and write one). It is saved with the view and applied to everyone who opens it — it is part of the design, not a personal narrowing.

The filter can use the view's columns, and also a few fields that are there only to filter on: a contact's group, a role it holds, and — for each extension table with many rows per contact — "has a row where" and "has no row where". Date fields can be set relative to today, and a person or group is picked by name. Check filter tests what you have built, and Clear filter empties it.

Incomplete conditions are ignored rather than saved half-finished, and the designer tells you when it has dropped one: "Incomplete filter conditions were ignored."

Sort

Press + Add sort to add a sort column, each Ascending or Descending. Columns that hold many values cannot be sorted.

Preview

Preview on a row runs the view as it is saved and shows its first ten rows, so preview after you save a change. If it comes back with "No rows.", the view is valid and nothing matched — which is usually a filter you want to re-read.

System views

A view the application ships behaves differently: its Name and Enabled are yours to change, but its columns, filter and sort are managed by the application and shown read-only. It cannot be deleted — the designer says "System views cannot be deleted — disable instead."

Deleting a view

Deleting is a soft delete, and the confirmation says the one thing that is easy to forget: menu rows pointing at the view are not removed. Retire those under Menus, or they will point at a view nobody can open.

Important
A view is not a menu item. Its icon, its position in the sidebar, and whether it appears there at all are set in Menus — which is why this designer has no icon field and no position column. Design the view here; decide where it shows there.

Views and widgets

When a widget reads a view, the widget's own filter narrows the view's rows further. If someone building a widget wants to filter on a field the view does not carry, the widget builder offers to add it to the view as a hidden column — a column the view can filter on but does not show. That needs the same write permission as this designer. See Widgets: the full guide.

Note
The server checks every view on save and refuses with the reason for the specific column that is wrong. If a save is refused, the message names the column — you never have to guess which one.