> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fibery.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration Filters

> Declare filters in a custom integration schema.

In Fibery, you can configure a set of Filters for integration with other applications. This is useful when you want to reduce the amount of data for synchronization, for example:

* Data created or modified after the certain date.
* Data from certain repositories, channels, groups.
* Deleted or archived data.
* Etc.

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/333539c9-edcc-47d5-929f-38176e813674.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=73c401d30146b6635ea72419c8eaecf4" alt="image.png" width="3392" height="2240" data-path="images/333539c9-edcc-47d5-929f-38176e813674.png" />

Filter configuration includes following common Fields across different Filter types:

| Name           | Type      | Description                                                                                |                  Required                  |
| -------------- | --------- | ------------------------------------------------------------------------------------------ | :----------------------------------------: |
| `id`           | `text`    | Unique identifier                                                                          | <input type="checkbox" checked disabled /> |
| `title`        | `text`    | Display name                                                                               | <input type="checkbox" checked disabled /> |
| `optional`     | `boolean` | Indicates that user may leave Filter unset                                                 |     <input type="checkbox" disabled />     |
| `type`         | `text`    | Filter type (a list of supported Filter types and their customizations can be found below) | <input type="checkbox" checked disabled /> |
| `secured`      | `boolean` | Secured Filter values are not available for change by non-owner                            |     <input type="checkbox" disabled />     |
| `defaultValue` | `unknown` | Filter default value                                                                       |     <input type="checkbox" disabled />     |

### Filter configuration sample

```json theme={null}
[
  {
    "id": "channels",
    "title": "Channels",
    "datalist": true,
    "optional": false,
    "secured": true,
    "type": "multidropdown"
  },
  {
    "id": "oldest",
    "title": "Oldest Message",
    "optional": false,
    "type": "datebox",
    "datalist": false
  },
  {
    "id": "excludeAppMessages",
    "title": "Filter out APP messages",
    "optional": true,
    "type": "bool",
    "defaultValue": false
  }
]
```

## Text Filter

Simple text Filter available with `type="text"` :

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/b697759b-7213-43c5-bedc-fd7507a9a464.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=9ecaac211b279191abaf827a8333530d" alt="Screenshot 2024-01-31 at 16.08.06.png" width="1278" height="160" data-path="images/b697759b-7213-43c5-bedc-fd7507a9a464.png" />

### Configuration sample

```json theme={null}
{
  "id": "text",
  "title": "Text",
  "type": "text"
}
```

## Number Filter

Simple number Filter available with `type="number"` :

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/2f003eff-b08a-4be9-9845-d4a7d1130f60.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=e1f0a136e278cc5230456065888dd99f" alt="Screenshot 2024-01-31 at 16.09.11.png" width="1310" height="168" data-path="images/2f003eff-b08a-4be9-9845-d4a7d1130f60.png" />

### Configuration sample

```json theme={null}
{
  "id": "number",
  "title": "Number",
  "type": "number"
}
```

## Single Date Filter

Simple single date Filter available with `type="datebox"`:

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/e33044fe-7537-4596-b5a7-1cfd25ccd072.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=a1940c8d489116022a1ff89436cb7988" alt="Screenshot 2024-01-31 at 15.46.05.png" width="1294" height="168" data-path="images/e33044fe-7537-4596-b5a7-1cfd25ccd072.png" />

### Configuration sample

```json theme={null}
{
  "id": "oldest",
  "title": "Oldest Message",
  "optional": false,
  "type": "datebox"
}
```

## Checkbox Filter

Simple `true`/`false` Filter available with `type="bool"`:

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/dec16e5b-ab1a-4932-8dc9-344e96ceca62.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=3d81be7bf2e5819a5b81dc5e553b3ddb" alt="Screenshot 2024-01-31 at 15.50.46.png" width="524" height="82" data-path="images/dec16e5b-ab1a-4932-8dc9-344e96ceca62.png" />

### Configuration sample

```json theme={null}
{
  "id": "excludeAppMessages",
  "title": "Filter out APP messages",
  "optional": true,
  "type": "bool"
}
```

## Single Select Filter

Filter based on predefined values which is rendered as Single Select. Connector should provide available values via [datalist endpoint](/guides/integrations/rest-endpoints#post-/api/v1/synchronizer/datalist).

Following attributes should be specified:

* `type="list"`
* `datalist=true`

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/13be4f0b-a002-4d08-8adb-451e9866d329.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=44a762e818b2d655c9ac3172e61e97de" alt="Screenshot 2024-01-31 at 16.00.19.png" width="1262" height="172" data-path="images/13be4f0b-a002-4d08-8adb-451e9866d329.png" />

### Configuration sample 1

```json theme={null}
{
  "id": "group",
  "title": "Group",
  "datalist": true,
  "type": "list"
}
```

Also, it's possible to configure this Filter as a datalist dependent from another datalist (e.g., user should first select organization and only afterwards repository). It can be achieved by specifying `datalist_requires` attribute where value is an array of ID of another `datalists` .

### Configuration sample 2

```json theme={null}
[
  {
    "id": "group",
    "title": "Group",
    "datalist": true,
    "type": "list"
  },
  {
    "id": "project",
    "title": "Project",
    "datalist": true,
    "type": "list",
    "datalist_requires": [
      "group"
    ]
  }
]
```

## Multi Select Filter

This Filter is based on predefined values which are rendered as Multi Select Field. The connector should provide available values via [datalist endpoint](/guides/integrations/rest-endpoints#post-/api/v1/synchronizer/datalist).

Following attributes should be specified:

* `type="multidropdown"`
* `datalist=true`

<img src="https://mintcdn.com/fibery/lUFkgk4SW9_Hi0iL/images/e7f7552a-ba8e-49f3-be5a-9a1c8e33801c.png?fit=max&auto=format&n=lUFkgk4SW9_Hi0iL&q=85&s=e807306806d39633a50f6d7d8d78ac84" alt="Screenshot 2024-01-31 at 16.03.54.png" width="1302" height="176" data-path="images/e7f7552a-ba8e-49f3-be5a-9a1c8e33801c.png" />

### Configuration sample 1

```json theme={null}
{
  "id": "groups",
  "title": "Groups",
  "datalist": true,
  "type": "multidropdown"
}
```

Also, it's possible to configure this Filter as a datalist dependent from another datalist (e.g., user should first select organization and only afterwards repository). It can be achieved by specifying `datalist_requires` attribute where value is an array of ID of another `datalists`

### Configuration sample 2

```json theme={null}
[
  {
    "id": "group",
    "title": "Group",
    "datalist": true,
    "type": "list"
  },
  {
    "id": "projects",
    "title": "Projects",
    "datalist": true,
    "type": "multidropdown",
    "datalist_requires": [
      "group"
    ]
  }
]
```

<Callout icon="https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f440.svg" color="#9c2baf">
  If you haven't found applicable Filter, please contact us in the support chat or in [the community](https://community.fibery.io/ "https://community.fibery.io/").
</Callout>
