Skip to content

Updating visuals

If you see any images containing outdated UI, please bear with us.

We are updating all content as quickly as possible to mirror our new UI.

Views

Views let you create reusable “saved lists” of records from a table, with filters, sorting, and optional parameters (dynamic inputs).

They’re useful when you want to show different parts of the same table (for example “My orders”, “Pending approvals”, “Last 30 days”) without rebuilding the logic each time.

Example use cases

  • Admin review queue: restrict by role and filter for a specific status (e.g., pending)
  • My items (per user): securely retrieve data belonging to the user signed in
  • Recent activity: get all records that were created in the last 30 days, sorted by the most recent first

Creating a view

Views are created on top of a table.

To create a view:

  1. Go to the Data & API tab, then open the Tables subtab.
  2. Select the table you want to create a view for.
  3. At the top of the table, click New view.
  4. (Optional) Rename the view by clicking its name.

WeWeb will create your new view and open it so you can start setting up Filters, Sort, and Parameters.

To rename a view, change its description, or adjust how its data behaves when users move between pages, open the view settings menu from the button on the view tab.

CREATING TABLES

Having a table is a prerequisite to creating views. If you are unsure what a table is or how to create one, you can learn more in the tables documentation→

Configuring a view

Once you have created a view, you are able to customise exactly how that view is filtered and sorted.

Filters

To configure filters, click Filter above the table to open the filter modal:

From here, you can add one or more rules:

  1. Choose the column you want to filter on.
  2. Choose the condition (for example “Is”, “Contains”, “Is after”, “Is empty”).
  3. Choose the value for the rule.
    • You can type a fixed value, or bind it to a view Parameter to make it dynamic.

DYNAMIC FILTERS

The ability to make filters dynamic is what makes them truly powerful.

To make a filter dynamic, you need to utilize Parameters

Learn more about Parameters →

You also are able to apply more advanced filters, such as

  • Combining multiple conditions with And/Or logic

    Example: status is active And createdAt is after 1 Nov 2025

  • Grouping related rules with Add condition group

    Example: Group “Text search” with name Contains search Or description Contains search, then at the root add And status is active

  • Nesting groups (e.g., an And group inside an Or group) for complex logic

    Example: (status is active And (type is Pro Or type is Enterprise))

  • Toggling a filter to only be applied if there is a valid value

    Example: Bind the value to the search parameter and set the rule to “apply only if value exists”; when search is empty the rule is skipped

Date and time filters

If your table has date or date/time columns, the filter modal includes conditions designed for dates (for example “Is before”, “Is after”, “Is between”, and relative options like “Last 7 days” when available).

Use these for “Recent activity” style views.

Filtering using relationships (linked tables)

If your table has relationship columns (linked rows), you can filter based on fields inside the linked table.

For example, in an Orders view you might filter on the linked Customer record’s email.

Typical flow:

  1. In the filter modal, choose the relationship column (for example Customer).
  2. Choose a field from the linked table (for example email).
  3. Pick a condition and value (for example “Contains” → @weweb.io).

If your filter UI shows a scope selector, you can also “enter” a relationship scope first, then add filters inside that linked table scope.

Sorting

To configure sorting, click the Sort button above the table to open the sort modal:

From here, you can define how rows should be ordered by:

  1. Selecting the column you want to sort by
  2. Choose the order with the direction control (Asc or Desc)

You can then apply however many additional sorts you like by pressing Add sort:

Parameters

Parameters allow you to pass dynamic values into your views, allowing you to then pass these values onto your filters and sorting to make them truly dynamic.

To create parameters, click the Parameters button above the table.

To add a parameter:

  1. Click Add parameter
  2. Enter the Parameter name
  3. Choose a Parameter type: Text, Number, or Boolean
  4. (Optional) Set a Default value formula
  5. Click Save

Using Parameters

To use a parameter in filters and sorting:

  1. Bind the value used for a filter or sort
  2. Set it to use the newly created parameter

Now, whenever you use the Table View: Fetch action in a workflow from the interface, you will be able to define what you wish to pass in for the values of the view's parameters.

Practical examples:

  • Text search: create parameter search (Text), then filter: name Contains search or description Contains search
  • Price filter: set parameter minPrice (Number), then filter: price greater than minPrice

Securing your views

When you are creating a view, it is crucial that you ensure your users are only able to retrieve data that they are allowed to retrieve.

For example, an admin should be able to see all records, and a user should only be able to see records that belong to them.

There are multiple ways to secure your views depending on your requirements:

Securing based on authentication

If you wish to restrict access to a view simply depending on whether or not somone is signed in, then you can use the Access select.

Here you can easily restrict access to a view to only authenticated users (AKA users who are signed in)

Securing based on a specific role

Restricting a view to signed in users is often not enough. An admin dashboard, for example, should only return its records to the people who actually hold the admin role, not to every user who happens to be signed in.

To do this, open the Access select, keep it on Authenticated, then add the roles that are allowed to retrieve the data. The Match any control decides how those roles are combined, so a user needs to hold at least one of the roles you listed.

The Access popover set to Authenticated, with a Match any condition restricting the view to the admin role

Once roles are in place, the label at the top of the popover changes to Authenticated with role restrictions, so you can confirm at a glance that the view is not left open to every signed in user.

Learn more about managing roles →

Securing with middleware

Some rules cannot be expressed with roles alone. Whether a user owns the record they are asking for, belongs to the right team, or is on a plan that gives them access to this data are all questions a role cannot answer on its own.

For those cases, click Add middleware for more control in the same Access popover and pick the middleware you want to run. The middleware runs before the view returns anything, so the records only reach the user once your own logic has approved the request.

Middleware is reusable, so a rule you write once (for example checking that the current user belongs to the workspace they are asking about) can protect several views, API Endpoints, and event triggers at the same time.

Learn more about middleware →

Securing data to a specific user

To make it so that a user is only able to retrieve data that belongs to them, you need to:

  1. Create a column of type User
  2. Link the appropriate records to their given user
  3. Set up a filter to only get the records linked to the current user

This ensures the view only returns records that are linked to the user retrieving the data.

Relationships (linked rows)

Relationship columns let a view “reach into” linked tables. This is useful for:

  • Filtering by fields on a linked record.
  • Showing extra fields from the linked record (not just its ID).

Next to an enabled relationship, you’ll also see a gear icon. This opens the relationship Settings, where you can:

  • Set a Display name (alias) to rename the relationship in this view.
  • Choose a Join type:
    • Left: Keeps rows even when the linked record is empty.
    • Inner: Removes rows where the linked record is empty.

Showing fields from a linked record (Columns panel)

In the view columns panel, relationship sections are typically grouped as:

  • References (Links from your table to another table)
  • Referenced by (Tables that link back to your table)

To include data from a linked record, open the Columns panel and turn on the relationship using the toggle next to its name. Once it's enabled, the relationship expands and shows a Columns section where you can pick which fields from the linked table should be included in the view results (or select all).

Nested relationships

You can configure relationships multiple levels deep (for example Order → Customer → Company) and apply filters to fields at each level.

Formula columns

Formula columns calculate values from other columns in the same row. In a view, you can show, hide, filter, and sort them just like regular columns.

You can create a formula column from the view itself or from the table's root Data tab. Either way it belongs to the table, so every view of that table can then show it from its Columns panel.

Legacy Formula V1 columns must be upgraded before filtering or sorting by their values. For missing fields or failed calculations, see Formula errors. Publish the project after changing a formula to update views used by the published app.

Learn how to create and use formula columns →

Using a view in the interface

The flow of using a view in the interface is as follows:

  1. In a workflow, use a Table View: Fetch action to get the data of your desired view. If you have any parameters set up, you will be able to define what should be passed to those parameters.
  2. When the Table View: Fetch action has run, you will then be able to access the data of the view from the binding menu.
  3. With the data of the view now available, you can use it in the interface. Meaning, you could bind it to a repeating list of items to display the data.

Continue learning

Once you have your tables created and are using views to appropriately display the data, the next core step will likely be setting up secure logic using backend workflows.

Learn more about backend workflows (API Endpoints) →