# Filters

[Didn't we already mention you can implement logic in your flows?](/kb/appmixer-studio-features/implementing-logic.md) Some clever person once said that repetition is the key to mastery. Let's, therefore, once again uncover the strength of another Utility module. This time, we'll talk about Filters.

{% embed url="<https://youtu.be/CAiRW6g1xQk>" %}
Utility modules – Filters
{% endembed %}

As outlined above, Filters represent an effective way to implement logic into your flows. Just drag & drop the Filters utility module to see all the options that are there for you to discover.

![Implementing logic by using the "Filters" modul](/files/-MgAO-9IMFqrO_UrAXE8)

As you can see, there are multiple components that help you incorporate some decision-making processes into your flows. Let's explain all of them.

{% tabs %}
{% tab title="Logic" %}
**Contains**\
A message passes through this filter if a value in the "Data" field contains the value in the "Contains" field. Note that typically, you would select your "Data" field to be a variable representing some data from a previous component back in the chain and "Contains" field to be either a hardcoded value or another variable. Values can be text, numbers or dates.

**Equal**\
A message passes through this filter if a value in the "Data" field equals the value in the "Equals" field. Note that typically, you would select your "Data" field to be a variable representing some data from a previous component back in the chain and "Equals" field to be either a hardcoded value or another variable. Values can be text, numbers or dates.

**Greater than**\
A message passes through this filter if a value in the "Data" field is greater than the value in the "Greater than" field. Note that typically, you would select your "Data" field to be a variable representing some data from a previous component back in the chain and "Greater than" field to be either a hardcoded value or another variable. Values can be text, numbers or dates.

**IsNotEmpty**\
A message passes through this filter if the data in the "Field" field is not empty. This is especially useful when checking if a variable contains data or if it is empty.

**LessThan**\
A message passes through this filter if a value in the "Data" field is less than the value in the "Less than" field. Note that typically, you would select your "Data" field to be a variable representing some data from a previous component back in the chain and "Less than" field to be either a hardcoded value or another variable. Values can be text, numbers or dates.

**Modulo**\
A message passes through the filter if the remainder after division of the value in the "Data" field by the value in the "Divisor" field is zero.

**NotEqual**\
A message passes through this filter if a value in the "Data" field does not equal the value in the "Does not equal" field. Note that typically, you would select your "Data" field to be a variable representing some data from a previous component back in the chain and "Does not equal" field to be either a hardcoded value or another variable. Values can be both text, numbers or dates.

**Range**\
A message passes through this filter if a value in the "Data" field falls into the range specified in the "Minimum value" and "Maximum value" fields. Values can be numbers or dates.
{% endtab %}
{% endtabs %}

To fully understand Filters, we recommend looking at an example that we presented in one of the previous sections.

{% content-ref url="/pages/-Mf2x56CEL0GQvPGTBlC" %}
[Implementing logic](/kb/appmixer-studio-features/implementing-logic.md)
{% endcontent-ref %}

[Next, we'll look at another Utility module, Scheduling](/kb/appmixer-studio-features/utility-modules/scheduling.md).


---

# 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://docs.appmixer.com/kb/appmixer-studio-features/utility-modules/filters.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.
