Skip to main content
Version: 2.4

Widget: Accounts Bookmark

Purpose

The Accounts Bookmark widget displays a simple list of customer Accounts directly on the detail of another entity — typically a customer, a contact person, or within a custom configuration. It gives the user a quick overview of "what belongs to this record", lets them navigate to a specific account's detail with a single click and, when needed, create a new account or assign an existing one right away.

The widget is designed to look unobtrusive — just a table with a few columns and a "+" button. It does not overwhelm the user with a filter panel, a view switcher, or profile controls, even though under the hood it uses the standard listing infrastructure (which is why it supports sorting, pagination, and optional export).

Where it is used

Typical scenarios:

  • Customer detail — the widget shows accounts belonging to the given customer.
  • Person detail — the widget shows accounts in which the given person has been assigned a role (e.g. responsible person, billing contact).
  • Custom detail page in the form configurator — the widget is inserted into a layout and configured to show a specific set of accounts.
  • Preview mode — instead of the table, a compact overview (count and keys) is displayed, suitable as a "link" to a full list page.

What the user sees in the application

Default mode

Table with the following columns:

ColumnDescription
AccountAccount key, clickable link to the detail
TitleAccount title
Payment behaviourPayment behaviour (optionally displayed)
StateAccount state (Active, Preparing, Suspended, Ceased)
RoleThe person's role in relation to the account — only in person mode. Inactive roles are struck through.
Valid fromValid from
Valid toValid to

In the top-right corner there is a "+" button for adding an account (visible depending on permissions and configuration).

Interactions

  • Double-click on a row or click on the account key → opens the account detail.
  • Click on "+" (customer / custom context) → opens a dialog for creating a new account with values pre-filled from the context.
  • Click on "+" (person mode) → opens a dialog for selecting existing accounts and assigning them to the given person with selected roles.
  • Sorting by clicking a column header (default sort can be configured).
  • Pagination at the bottom of the table (rows per page are configurable).
  • Column resizing by dragging (optional).

Preview mode

If the widget is switched to preview mode, only the list of account keys (or just their count) is displayed as a compact element — typically as part of a summary overview, where the detail is opened elsewhere on the screen.

Read-only mode

In read-only mode the table is available unchanged, but the "+" button is hidden. The user can therefore browse records and navigate to details, but cannot add anything.

Designer settings

In the widget's configuration dialog (in the fluent-forms designer) the settings are split into tabs:

Basic information

Name, identifier, description, visibility — standard fields like in other widgets.

Widget Specific Settings

FieldDescriptionDefault
Display modeWidget context: Customer / Person / Custom. Affects the visibility of the "Role" column and the behaviour of the "+" button (see Interactions above).Custom
Account typeRestriction to a specific account type (selection from a list of types).
Show new account buttonShow the "+" button.enabled
Preview modeSwitches the widget to the compact preview.disabled
Display only preview countIn preview, show only the count, without listing keys.disabled
New record configDefault values for the new account dialog (object).

Filter

The widget uses the standard filter builder — the same interface you know from other listing widgets. Instead of writing a JSON object, you add individual filter rules by clicking "+ Add filter"; each rule has three components:

ComponentExamples
Fieldcustomer.id, personRoles.person.id, status, accountType.id, accountStartDate, ...
Operatorequals, in, contains, like, between, is null, ...
ValueA specific value or an expression referencing the page context (e.g. ${entity.id})

Each filter can be set as:

  • Hidden from the user (readonly, invisible) — always applied and the end user does not know about it; suitable for "contextual" filters such as "customer = current record".
  • Visible in the table header — the user can modify it and thus influence what they see.
  • Disabled — temporarily turned off without having to delete it.

There can be any number of rules. They are combined with a logical "AND" — the widget shows only those accounts that satisfy all active rules.

Table

Section that influences the appearance of the table:

FieldDescriptionDefault
Visible columnsWhich columns to displayall
Default sortDefault sortingValid from, descending
Page sizeRows per page10
Show headerShow the table header (sorting icons)enabled
Allow column resizeAllow the user to change column widthsenabled
Allow exportAllow exporting data using a button in the headerdisabled

Validation

Standard validation and required-field settings.

Permissions

  • Displaying the widget — no special right (controlled by the visibility of the page on which the widget is placed).
  • Adding an account ("+" button) — the Crm.Account.Add permission. Without this permission the button is not shown.
  • Opening an account detail (click-through) — controlled by the permissions of the account detail page.

Behaviour and limitations

  • On first display the widget always loads fresh data from the backend; no manual refresh is needed.
  • After an account is created or assigned through the "+" dialog, the list is refreshed automatically.
  • If no filter is configured, the widget displays all accounts in the system (limited by the user's permissions). In the designer it is therefore usually appropriate to set at least one filter bound to the page context.
  • The widget respects global user interface settings (dark mode, compact display).

Migration from the previous version

An earlier version of the widget used three separate text fields: Customer filter, Person filter and Account filter, into which a JSON object was inserted. You will not find these fields in the new designer — they have been replaced by the unified filter builder described above.

Saved widget configurations from the previous version are automatically converted to the new format on deployment. The conversion runs once over the database of form schemas and maps the original fields as follows:

Old fieldNew equivalent
customerFilter: { id: X }Rule customer.id equals X + Display mode = Customer
personFilter: { id: X, roles: [...] }Rule personRoles.person.id equals X (+ optionally a roles filter) + Display mode = Person
accountFilter: { status: 'ACTIVE', ... }A separate rule for each key/value pair
accountTypeIdRule accountType.id equals <ID>

After migration it is recommended to review the configuration once in the form designer — especially for more complex filters where the original JSON contained nested structures.