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

# Logic: Or

> Filters items where any of the filters match.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Combines several conditions into one and keeps an item when at least one of them matches. Use this when an item should pass if it meets any of a set of tests, for example "the status is paid **or** the status is shipped". An item is only filtered out when none of the conditions match. You usually combine this with the And and Not logic options to build up the exact rule you need.

This documentation describes: [Schema](/schemas/filter/or-condition)

## Fields

<FormField property="filters" label="Conditions" required diType="filter">
  The conditions to check. Add one row per condition; an item is kept as soon as any one of them matches. You need at least one condition, but you will usually add two or more, since a single condition does not need this wrapper.
</FormField>

## Sample data

This filter answers yes or no for each item, so there is no before and after. The example keeps items where the status equals `paid` **or** equals `shipped`.

| Field       | Value                     |
| ----------- | ------------------------- |
| Condition 1 | `status` equals `paid`    |
| Condition 2 | `status` equals `shipped` |

| Incoming item             | Result         |
| ------------------------- | -------------- |
| `{ "status": "paid" }`    | matches        |
| `{ "status": "shipped" }` | matches        |
| `{ "status": "pending" }` | does not match |

```json Configuration theme={null}
{
  "prototype": "or-condition",
  "parameters": {
    "filters": [
      {
        "prototype": "value-condition-v2",
        "parameters": {
          "accessor": { "prototype": "key", "parameters": { "keys": ["status"] } },
          "conditions": [ { "prototype": "equals", "parameters": { "value": "paid" } } ]
        }
      },
      {
        "prototype": "value-condition-v2",
        "parameters": {
          "accessor": { "prototype": "key", "parameters": { "keys": ["status"] } },
          "conditions": [ { "prototype": "equals", "parameters": { "value": "shipped" } } ]
        }
      }
    ]
  }
}
```
