# Sort and Filter Your SheetBridge Data

## Query Parameters

You can filter lists using the **Operators** below in the **Query Parameter** setup by providing the column name and value.

The example below would match rows where the "user\_id" column equals "LoggedInUser>id" from MagicText.

<div align="center"><figure><img src="/files/2yyuk0FpGtDHsscz61CV" alt="" width="333"><figcaption></figcaption></figure></div>

***

### **Operators**

Use operators for advanced filtering:

| **Operator**    | **Description**       | Query Param Name              | Query Param Value    |   |
| --------------- | --------------------- | ----------------------------- | -------------------- | - |
| **`_eq`**       | Equals                | **`filter[user_id][_eq]`**    | **`John`**           |   |
| **`_neq`**      | Not equals            | **`filter[Name][_neq]`**      | **`John`**           |   |
| **`_contains`** | Contains substring    | **`filter[Name][_contains]`** | **`John`**           |   |
| **`_in`**       | In list               | **`filter[Status][_in]`**     | **`active,pending`** |   |
| **`_null`**     | Is null               | **`filter[Email][_null]`**    | **`true`**           |   |
| **`_notnull`**  | Is not null           | **`filter[Email][_notnull]`** | **`true`**           |   |
| **`_gt`**       | Greater than          | **`filter[Age][_gt]`**        | **`18`**             |   |
| **`_gte`**      | Greater than or equal | **`filter[Age][_gte]`**       | **`18`**             |   |
| **`_lt`**       | Less than             | **`filter[Age][_lt]`**        | **`65`**             |   |
| **`_lte`**      | Less than or equal    | **`filter[Age][_lte]`**       | **`65`**             |   |

{% hint style="info" %}
&#x20;The **`_eq`** operator also supports comma-separated values (acts like **`_in`**). If a user passes &#x66;**`filter[Status][_eq]=active,pending`** , it will match either value.
{% endhint %}

***

#### **Multiple Filters**

Combine multiple filters using ***+ADD ANOTHER FILTER***.

The example below would list rows where the "user\_id" column ***equals*** "LoggedInUser>id" from MagicText **AND** “category” column ***does not equa***&#x6C; “Instruments”. If both conditions are not met, the record will not load.

<div align="center"><figure><img src="/files/oaGylrvYwOKjFME1fiLa" alt="" width="287"><figcaption></figcaption></figure></div>

## **Sorting**

Sort rows using the <mark style="color:red;">**`sort`**</mark> query parameter in the List Filters Sorting is applied after filtering and supports single or multiple columns.

#### **Single Column Sorting**

* Sort by a single column in ascending order:

<figure><img src="/files/EoQQDDcTpoj0RuJu6QG3" alt="" width="290"><figcaption></figcaption></figure>

* Sort by a single column in descending order (prefix with **`-`**):

<figure><img src="/files/CnUkSSbu6Yh7gBNQ5jjr" alt="" width="287"><figcaption></figcaption></figure>

***

#### **Multi-Column Sorting**

Sort by multiple columns by separating them with commas. Columns are sorted in order of priority:

<figure><img src="/files/1mH2qgXa2w3SOBKnp76K" alt="" width="282"><figcaption></figcaption></figure>

This sorts by:

1. **`name`** in ascending order
2. **`user_id`** in descending order (for rows with the same name)

***

#### **Column Name Resolution**

Column names are resolved using the same header mapping system as filtering:

* Normalized headers (spaces removed, lowercase)
* Canonical keys
* Case-insensitive label matching

You can use any of these formats:

* Original column label: **`?sort=Full Name`**
* Normalized header: **`?sort=fullname`**
* Canonical key: **`?sort=full_name`**

***

#### **Value Comparison**

The sorting service intelligently compares values:

* **Numeric values**: Sorted numerically (e.g., **`2`** comes before **`10`**)
* **String values**: Sorted case-insensitively (e.g., **`apple`** and **`Apple`** are treated the same)
* **Null values**: Always pushed to the end of the sorted results

***

#### **Combining with Other Parameters**

Sorting can be combined with filtering:

<figure><img src="/files/p9TzeDouhwJfMEWC3f0Y" alt="" width="286"><figcaption></figcaption></figure>

This will:

* Filter rows where **`user_id`** equals **`LoggedinUser>id`**
* Sort results by **`name`** in descending order

***

#### **Unknown Columns**

If you specify a column that doesn't exist in the sheet, it will be silently ignored. The request will still succeed, but that sort directive will have no effect.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.adalo.com/integrations/sheetbridge-for-google-sheets/sort-and-filter-your-sheetbridge-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
