8.5 Filter

8.5.1 Overview and Basic Principle

Filters allow you to precisely define which PDF files should be processed by a profile. If no filter criteria are defined, all PDF files in the monitored folders will be processed.

How Filters Work

For each new PDF file, the program checks: 1. Does the file meet all defined filter criteria? 2. If yes: The file is processed 3. If no: The file is skipped (status: “No Match” if not processed by any profile due to filters)

The Filter Tabs

The filter settings are divided into the following tabs:

Tab Description
File Properties Filters by file name, path, size, date
PDF Data Filters by PDF metadata, content, attachments, and barcodes
Extracted Data Filters by the results of the extraction rules
Temp. OCR Support Temporary text recognition for files without a text layer (e.g. scans)
Results Preview Shows filter results for example files
Overlap Check Checks for conflicts with other profiles

8.5.2 Tab: File Properties

Here you filter by properties of the file itself.

Path Contains / Does Not Contain

Filters by the storage location of the file.

Example: To process only files from the “Invoices” subfolder: - Path contains: Invoices

The check always refers to the current storage location: If a file is moved by one profile during processing, subsequent profiles of the same pass already see the new folder.

File Name Contains / Does Not Contain

Filters by the name of the PDF file.

Examples: - File name contains: Invoice - Processes all files with “Invoice” in the name - File name does not contain: DRAFT - Ignores files with “DRAFT” in the name

Scope of the File Name Check

Next to the two fields, the “Scope” selection determines which name is checked when a file is renamed during processing (e.g., by the “Rename file” task):

Selection Meaning
original file name The name under which the file was picked up is always checked. Renaming by a previously applied profile does not change the filter result.
also after renaming The current name is checked. Since the filter criteria are evaluated before the start of each profile, subsequent profiles of the same pass thereby react to renaming performed by previous profiles.

Newly created profiles use “original file name”; older existing profiles use “also after renaming” for compatibility reasons, unless the selection has been changed.

Use case “renaming as a done marker”: If one of your profiles marks fully processed files with the prefix @, for example, the entry <BeginOfRegex>^@<EndOfRegex> in the “does not contain:” field with the scope “also after renaming” in the other profiles of the same folder ensures that the file is no longer processed by any further profile after renaming - even if that profile’s filter criteria would still have matched when the file was picked up.

Note: The scope selection only determines which name is checked - not how often it is checked. Whether a profile additionally re-evaluates its filter criteria before each individual task is controlled by the separate option “Revalidate filter before each task” (section 8.2.10). Be careful when combining them: If a profile itself renames the file in a way that matches its own exclusion with the scope “also after renaming”, the remaining tasks of that profile are aborted when the option is enabled. For the done-marker pattern, the option should therefore remain disabled.

Even more robust than renaming, by the way, is moving fully processed files to a folder that is not monitored: The input folder then stays small, and no exclusion filters are needed at all.

File Size

Filters by the size of the file. Available comparison operators: - Less than - Greater than - Between

Units: Bytes (B), Kilobytes (KB), Megabytes (MB)

Use Case: Route very large files (e.g., > 50 MB) to a separate profile for compression.

Creation Date / Modification Date

Filters by the file date. Available options: - Between: Specify two fixed dates - Older than: X days/weeks/months/years - Newer than: X days/weeks/months/years

Use Case: Only process files created in the last 7 days.


8.5.3 Tab: PDF Data

Here you filter by contents and properties of the PDF file itself.

PDF Metadata

PDF files can contain metadata set by the creator program.

Filter Description
Author contains / does not contain The author of the document
Title contains / does not contain The document title
Subject contains / does not contain The subject
Keywords contain / do not contain Stored keywords
Creator contains / does not contain The creation program
Producer contains / does not contain The conversion program

Tip: You can view the metadata of a PDF file in the document properties (right-click > Properties in many PDF viewers).

Use Case: A scanner stores its name as “Creator”. This allows you to process files from different scanners differently.

Document Text Contains / Does Not Contain

Searches the entire text of the PDF document.

Examples: - Document text contains: Invoice - Only PDFs with the word “Invoice” - Document text contains: Mustermann GmbH - Only PDFs from this sender

Page Range: Optionally, you can restrict the search area to specific pages: - All pages (default) - First page only - Last page only - Page range (e.g., “1-3”)

Page Count

Filters by the number of pages. Comparison operators: - Less than - Greater than - Between

Use Case: Process single-page documents differently than multi-page ones.

Character Count

Filters by the number of characters in the document.

Use Case: Route PDFs without text (character count = 0) to OCR processing.

PDF Attachments

Some PDF files contain embedded attachments.

Attachment Count: Filters by the number of embedded attachments. Comparison operators: - Less than - Greater than - Between

Attachment Name Contains / Does Not Contain: Filters by the name of embedded attachments.

Example: ZUGFeRD invoices often contain an attachment named factur-x.xml: - Attachment name contains: factur-x.xml

Use Case: Process PDFs with attachments (e.g., ZUGFeRD invoices) separately.

Barcode

Filters by barcode contents in the PDF.

Option Description
PDF must contain barcode Only PDFs with at least one barcode
PDF must not contain barcode Only PDFs without barcodes
Barcode value contains Filters by barcode content
Barcode value does not contain Excludes certain barcode values

Supported Barcode Types: - 1D Codes: Code128, Code39, EAN-13, EAN-8, UPC-A, ITF, Codabar - 2D Codes: QR Code, DataMatrix, PDF417, Aztec

Tip: Barcode detection uses machine learning for higher accuracy. You can enable or disable this option in Program Options under Processing.


8.5.4 Tab: Extracted Data

On this tab, you use the results of your extraction rules (page “Data extraction”) as filter criteria. For example, you can process only invoices from a specific supplier, route amounts above a certain limit differently, or skip files for which no invoice number was found.

A separate section with the rule name as heading is displayed for each extraction rule.

Extraction Status

Use the upper drop-down list to specify whether the extraction itself should be checked:

Option Description
Extraction: not evaluated The extraction status is not checked (default)
Extraction: must yield a value The file is only processed if the rule successfully extracts a value
Extraction: must not yield a value The file is only processed if the rule does NOT yield a value

Use case: Files for which no invoice number was recognized should not be filed automatically but remain for manual review - select “must yield a value”.

Value Comparison

In addition (or instead), you can compare the extracted value. The available comparisons depend on the data type of the rule:

Data type Comparisons
Text (including queries) contains / does not contain - with the full filter syntax including AND/OR operators, regular expressions, number ranges, and dynamic lists
Date Value is between two dates, is older than or newer than X days/weeks/months/years
Number Value is lower than, greater than, equal to, or between two numbers

Examples:

  • Rule “Supplier” (text) - contains: Mustermann GmbH<OR>Schmidt AG - only documents from these suppliers are processed
  • Rule “Invoice amount” (number) - Value: is greater than 500 - route high-value invoices to a separate approval folder
  • Rule “Invoice date” (date) - Value: is older than 30 days - handle overdue documents separately

Note: A configured value comparison automatically requires the extraction to be successful - if the extraction fails, the criterion is considered not fulfilled.

Rules with the Same Name (Fallback Values)

Rules with the same name form a group: The result of the first successful rule counts - exactly as with the placeholders. Only one section per group appears on this tab.

Important Notes

  • Scanned files without a text layer: The filter is checked BEFORE the tasks. If a rule extracts from the document text, it fails for scans without a text layer before the “Make file searchable” task can create the text. In this case, activate the Temp. OCR Support category of the profile settings (section 8.5) - or alternatively work with 2 profiles: The first profile only makes the files searchable, the second filters by the extracted data.
  • Sequential numbers: Rules with the source “Sequential number” are not available as filter criteria because every filter check would increment the counter.
  • Use the results preview: The criteria of this tab are also evaluated in the results preview - so you can see immediately which example files fulfill the filter.

8.5.5 Tab: Results Preview

The results preview shows you how your filter settings affect the example files.

Prerequisite

Add at least 5 representative PDF files on the Example Files tab that correspond to the typical documents to be processed.

Display

For each example file, the following is shown: - Yes - The file meets all filter criteria - No - The file does not meet at least one filter criterion (with indication of the unmet criterion)

How to Use the Preview Effectively

  1. Add files that should be processed (expected result: “Yes”)
  2. Add files that should NOT be processed (expected result: “No”)
  3. Check whether the results match your expectations
  4. Adjust filters as needed

Tip: The results preview is particularly important for complex filters with AND/OR combinations or regular expressions.


8.5.6 Tab: Overlap Check

This tab checks whether the current profile overlaps with other active profiles that monitor the same folder (or a parent or subfolder via subfolder monitoring).

How It Works

The check is based on the sample files of the profiles involved: The program applies the filter criteria of each profile to the sample files of the other profiles on a trial basis. Without stored sample files, no overlap can be detected.

Two kinds of results are reported:

Result Meaning
Filter criteria too loose The sample files of another profile meet the filter criteria of this profile, but the data extraction fails on them. Such files would cause errors during processing - the filter criteria should definitely be made stricter.
Duplicate processing note The sample files of another profile meet the filter criteria of this profile, and the data extraction succeeds as well. Such files would be processed by several profiles in succession, which can lead to duplicate output files. If this is an intended processing chain, you can ignore this note.

Why Is This Important?

If multiple profiles process the same files: - Output files may be created twice (e.g., copies with the suffix “(1)”) - Emails may be sent multiple times - Conflicts with file operations may occur

Recommendation: Set up the filter criteria so that only one profile is responsible for each file - for example via the barcode filter (e.g., “PDF must contain a barcode” in one profile, “PDF must not contain a barcode” in the other) or an exclusion in the file name filter. Also store typical sample files for each profile so that the check is meaningful.


8.5.7 AND/OR Logic

When entering multiple terms in a filter field, you can combine them with logical operators.

AND Combination

All terms must be present.

Syntax: <AND> or <UND>

Example: Invoice<AND>Mustermann - Matches: “Invoice to Mustermann GmbH” - Does not match: “Invoice to Schmidt GmbH”

OR Combination

At least one of the terms must be present.

Syntax: <OR> or <ODER>

Example: Invoice<OR>Bill<OR>Receipt - Matches any PDF containing “Invoice”, “Bill”, or “Receipt”

Combinations

You can combine AND and OR. The rule is: AND separates expressions, OR is evaluated within segments.

Example: Invoice<AND>2024<OR>Bill<AND>2024

For clarification, think of <AND> as a line break:

Invoice
<AND>
2024<OR>Bill
<AND>
2024

This means: (Invoice) AND (2024 OR Bill) AND (2024)

Result: - Matches if: Text contains “Invoice” AND (“2024” OR “Bill”) AND “2024” - Matches “Invoice dated 15.12.2024” (contains Invoice, 2024, 2024) - Matches “Invoice Bill 2024” (contains Invoice, Bill, 2024) - Does not match “Invoice dated 15.12.2023” (does not contain “2024”)

Tip: Always test complex filters with the results preview to ensure the desired result is achieved.


8.5.8 Regular Expressions

For advanced filtering, regular expressions (Regex) are available.

Syntax

Enclose the regular expression with: <BeginOfRegex>PATTERN<EndOfRegex>

Examples

Regex Description Matches
<BeginOfRegex>INV-\d{5}<EndOfRegex> Invoice number with 5 digits INV-12345, INV-00001
<BeginOfRegex>^Invoice<EndOfRegex> Starts with “Invoice” “Invoice No. 123”
<BeginOfRegex>\d{2}\.\d{2}\.\d{4}<EndOfRegex> Date in format DD.MM.YYYY 15.12.2024
<BeginOfRegex>€\s*\d+[,\.]\d{2}<EndOfRegex> Euro amount € 123.45 or €99.00

Commonly Used Regex Elements

Element Meaning
\d A digit (0-9)
\d{5} Exactly 5 digits
\d+ One or more digits
\s A whitespace
\s* Any number of whitespaces (including none)
^ Beginning of line/text
$ End of line/text
. Any character
.* Any number of any characters
[A-Z] An uppercase letter
[a-zA-Z] A letter (upper or lowercase)

Tip: Test your regular expressions on websites like regex101.com before using them in the filter.


8.5.9 Number Ranges

With the syntax <NumberRange{MIN,MAX}> you can filter by number ranges.

Syntax

<NumberRange{Minimum,Maximum}>

Examples

Filter Description
<NumberRange{1,99}> Numbers from 1 to 99
<NumberRange{2020,2025}> Years from 2020 to 2025
<NumberRange{100,999}> Three-digit numbers

Use Case

Filter for documents with specific customer numbers: - Document text contains: Customer number: <NumberRange{5100000,5200000}>

This matches all PDFs containing a customer number between 5100000 and 5200000.


8.5.10 Dynamic Filter Lists

With dynamic lists, you can make filters flexible without having to change the profile.

How It Works

  1. Create a new list under Extras > Program Options > Dynamic Lists
  2. Add the desired entries (e.g., client names, project numbers)
  3. Use the list in the filter with the syntax: <EntryFromList{ListName}>

Syntax

<EntryFromList{Name of List}>

Example

You have a list “Important Customers” with the following entries: - Mustermann GmbH - Schmidt AG - Meyer & Co

Filter: Document text contains: <EntryFromList{Important Customers}>

The program automatically checks whether any of the list entries appears in the document.

Advantages

  • Flexibility: New entries can be added to the list at any time
  • Central Management: One list can be used in multiple profiles
  • Clarity: Long lists don’t need to be in the filter itself

Tip: Lists can also be imported from external sources such as Excel files or databases.


8.5.11 Practical Tips

Build Filters Step by Step

Start with a simple filter and expand it gradually: 1. First filter only by file name 2. Then add text filter 3. Add more complex conditions

Don’t Filter Too Restrictively

Overly strict filters can cause files to be missed: - Watch for different spellings (Invoice/INVOICE) - Consider typos in source documents - Use OR combinations for variants

Case Sensitivity

Normal text search does not distinguish between uppercase and lowercase - “Invoice”, “INVOICE”, and “invoice” are treated equally.

Note: Regular expressions by default distinguish between uppercase and lowercase. Use the flag (?i) for case-insensitive regex search:

<BeginOfRegex>(?i)invoice<EndOfRegex> finds “Invoice”, “INVOICE”, “invoice”, etc.

Multiple Profiles Instead of Complex Filters

Sometimes it’s easier to create multiple profiles with simple filters than one profile with very complex filters.

Example: Instead of a complex filter for different document types: - Profile 1: Invoices (Filter: Document text contains “Invoice”) - Profile 2: Delivery Notes (Filter: Document text contains “Delivery Note”) - Profile 3: Orders (Filter: Document text contains “Order”)