# Contains

### Overview

The **Contains Filter Component** checks whether a given input data contains a specified value. If the condition is met, the message is passed through; otherwise, it is filtered out.

### Usage

This component is used to validate if a text, number, or date exists within another dataset, making it useful for conditional processing in workflows.

#### Properties

| Property     | Type     | Description                                                                 |
| ------------ | -------- | --------------------------------------------------------------------------- |
| `sourceData` | `string` | The data to be checked. Can be a string, number, or date.                   |
| `value`      | `string` | The value to check within `sourceData`. The comparison is case-insensitive. |

#### Input Ports

| Port | Description                                        |
| ---- | -------------------------------------------------- |
| `in` | Accepts input data and the value to check against. |

#### Output Ports

| Port          | Description                                                                   |
| ------------- | ----------------------------------------------------------------------------- |
| `contains`    | Emits the message if the `sourceData` contains the specified `value`.         |
| `notContains` | Emits the message if the `sourceData` does not contain the specified `value`. |

#### Processing Logic

1. **Receives Input Data**:
   * Accepts a dataset (`sourceData`) and a search term (`value`).
2. **Checks for Containment**:
   * Converts both `sourceData` and `value` to lowercase for case-insensitive comparison.
   * Checks if `sourceData` contains `value`.
3. **Routes the Message**:
   * If the value is found, the message is passed to the `contains` port.
   * If not, it is passed to the `notContains` port.

#### Output Data Schema

| Property     | Type      | Description                                                     |
| ------------ | --------- | --------------------------------------------------------------- |
| `sourceData` | `string`  | The original data that was checked.                             |
| `value`      | `string`  | The value searched for in `sourceData`.                         |
| `result`     | `boolean` | `true` if `value` was found in `sourceData`, otherwise `false`. |

### Notes

* **Case-Insensitive Matching**: Ensures flexible filtering by ignoring letter case.
* **Supports Various Data Types**: Works with text, numbers, and dates.
* **Ideal for Conditional Filtering**: Useful in workflows requiring selective message passing based on content.

This component is essential for workflows that need to validate whether an input contains specific information before further processing.


---

# 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/connector-configuration/utils/filters/contains.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.
