GuidesFeaturesSmart Lists

Smart lists

🔐

This functionality is gated behind the smartlist:read user permission. To learn more about permissions, see the permissions guide.

A smart list is a dynamic list of books generated from a set of configured filters. They are powerful in that they allow you to quickly curate and organize a collection of books based on a set of criteria without having to manually manage the list.

Filters

The core of a smart list, used for determining which books are to be included in the resulting list.

A smart lists filter configuration is made up of two parts:

  • Groups: Sub-lists of filters that are combined together using a top-level joiner (see below)
  • Top-level joiner: The method used to join groups together, i.e. AND or OR (all groups must match vs at least one group must match)

A group itself has two parts:

  • Joiner: The method used to join filters together within the group, i.e. AND, OR, NOT (all filters must match, at least one filter must match, or no filters must match)
  • Conditions: A list of filters to apply to the books

A condition in a filter group has the following structure:

  • Attribute: The attribute of the book to filter on. This also allows selecting attributes of related entities, such as a book’s metadata, series, or library. I won’t enumerate them all, but you can filter on most attributes. Any missing attributes can be requested!
  • Operator: The operator to use when comparing the attribute to the value. I won’t enumerate them all, but you have options for string and list matching, number comparison, and range operators
  • Value: The actual value to compare the attribute to. The UI presents this dynamically, based on the attribute and operator selected

Grouping

Not to be confused with the filter groups, grouping is a way of grouping matched books together by a common attribute. At the time of writing, there are 3 grouping options:

  1. BY_SERIES: Groups books together by their series
  2. BY_LIBRARY: Groups books together by their library
  3. BY_BOOKS: Does not group books together. The name is perhaps confusing, but you can think of it as “no grouping”

In the future, more grouping options may be considered

List Access

Smart lists can be shared with other users, and has 3 visibility options:

  • Private: Only the owner of the smart list can see it
  • Public: Anyone can see the smart list
  • Shared: Only users that the smart list has been shared with can see it
🚧

The shared visibility option is not yet fully implemented. It functions as private for now, but will be updated in the future

Views

While interacting with a smart list on the UI, you can manipulate the view to your liking. This includes:

  • Sorting states for the table
  • Column visibility, i.e. which columns are visible or hidden
  • Column order, i.e. the order in which columns are displayed

By default, any changes you make won’t be persisted. However, the UI will detect and allow you to save any adjustments as a view. This view will then be available to you in the future, along with any other views you create. If you have a view selected, the changes will provide you with the additional option of updating the view.

How-to Guides

Create a Smart List

The process for creating a smart list is broken up into a few steps:

Basics

The first step is for filling out the very basic information about the list, such as its name and description. You will also need to select the visibility of the list, which defaults to private.

Filters

🏗️

The look and feel of the filter configuration may change in the future to better support different languages and complex values. If you have any feedback, please let me know!

The second step is more complex, as it involves setting up the filters that will determine which books are included in the list. Let’s break it down by using an example:

I want to create a list of all books in my library that are considered “Science Fiction”. However, I don’t want to include any books from my Magazine library and I don’t want anything Star Wars related

Depending on how your libraries are set up, your mileage may vary. An example of what you might set up includes:


Example smart list filters

The group by option defaults to None, which maps to BY_BOOKS. This means that the books will not be grouped together by any attribute and will be displayed in a flat list.

Review

The final step is to review your list before saving it. You can click “Create list” to save your list, or you can navigate back to any previous step by clicking it in the header.