Filters in Lead Prosper: A Complete Guide

Filters are one of the core components of routing logic in a Lead Prosper campaign. They let you define rules that control which leads are accepted and which are rejected based on the data each lead contains. Filters can match against exact values, patterns, numeric ranges, dates, ages, and even real-time responses from external APIs. This article covers how filters work, where they run, every filter type available, and how to use advanced features like API Filters and Computed Fields to build more sophisticated filtering logic.


How Filters Work

Filters are layered on top of the campaign fields you have created. You define parameters for what you expect to receive in each field, and Lead Prosper evaluates incoming lead data against those parameters to Allow or Block leads that meet — or fail to meet — your criteria.

Key things to know about filters:

  • You can create one filter per field within your campaign.
  • Filters are optional. They are not required to send and receive data through Lead Prosper.
  • Filters are case-insensitive. When parsing and executing filters for incoming requests, all values are evaluated without regard to character case. For example, if your input receives M     and your filter is defined as m    , the request will be valid. When adding filter values, you may notice them displayed in the saved filters list with a different character case — this is expected and working as intended.
  • Filters added to campaigns will appear on the posting documents you send to your lead suppliers so they know how to format and filter the data on their side before submitting to you.
  • Field types play a large role in filtering because the filters available to you depend on the field type you have selected for each campaign field.

Filter Levels: Global, Supplier, and Buyer

Filters can be applied at three levels within a campaign. Each level runs at a different point in the lead evaluation process and serves a different purpose.

Global Filters

Global filters are campaign-level filters applied to a lead first. They run on ingestion when a Supplier attempts to sell a lead into the campaign. If a Global filter rejects the lead, the Supplier receives a response that the lead was Rejected due to a filter. Global filters block a lead before it is distributed to any buyers.

Supplier Filters

Supplier filters are assigned to specific Suppliers and are checked after Global filters. They also run on ingestion when a Supplier attempts to sell a lead into the campaign. If a Supplier filter rejects the lead, the Supplier receives a response that the lead was Rejected due to a filter. Like Global filters, Supplier filters block a lead before it reaches any buyers.

Buyer Filters

Buyer filters run last and are used to determine which buyers are eligible to receive a given lead. If no buyers remain available after Buyer filters and all other checks have run, the lead is considered Rejected and that status is returned to the Supplier. If one or more buyers are still available, the lead is ingested and distributed to the eligible buyers.

Execution Order

Filters are evaluated in the following order: Global first, then Supplier, then Buyer. Filters run on all three stages of a campaign — Pre-Ping Dupe Checker, PING, and POST.

Leads that are blocked due to filters will show an error status indicating the lead failed due to a filter. If a specific buyer was excluded due to a filter, that buyer's entry for that lead will show the filter error.


Allow vs. Block Action

Every filter operates in one of two modes. Allow means only leads that match the filter criteria will pass through. Block means any lead that matches the filter criteria will be rejected. You select the mode when you add the filter to a field.


Standalone Filters

In addition to field-level filters, Lead Prosper provides several standalone filters that operate independently of campaign fields.

Day & Hour Parting

Allows you to set specific time frames when leads are accepted. Leads that arrive outside the defined windows are rejected.

Block Calendar Dates

Lets you designate fixed calendar dates on which leads will be blocked.

At Least 1 Field Required

When enabled, this filter requires that at least one of the selected fields contains data and is not empty. Two common use cases:

The first is when you have third-party suppliers who send TrustedForm or Jornaya LeadiD. In that scenario, both of those fields would be marked as Optional in your Campaign Field settings. If you add a Global "At Least 1 Field Required" filter and select your trustedform_cert_url and jornaya_leadid fields, the filter will check whether at least one of them has a value. If so, the lead is allowed. If both fields are empty, the lead is rejected.

The second use case is when you have a campaign field marked as Optional but a specific buyer requires that field. You can add an "At Least 1 Field Required" filter at the Buyer level for that field. The system will then block all leads that come in with that field empty from reaching that buyer — functioning as a makeshift required-field check on the Buyer level.

Supplier Filter

A standalone filter that lets you set an Allow or Block rule for one or more Suppliers. When applied to a buyer, selecting Allow means the buyer will only receive leads from the specified Suppliers. Selecting Block means the buyer will reject all leads from the specified Suppliers.


Campaign Field Filters

The filters available on a given campaign field depend on the field type you selected when you created it. A Date & Time field unlocks age-based and date comparison filters, while a Text field is limited to exact and pattern matching. The sections below cover every filter available, organized by field type.

Text Filters

Text fields are the most flexible field type and accept any string value. Because there are no formatting restrictions, the available filters are limited to exact and pattern matching.

Filter Description Configuration
Equals one of these values Matches the field value against an exact list of values you define. The value must be an exact, case-sensitive match to one of the entries in your list. Enter one or more values to match against.
Partial match (regexp) Uses a regular expression to search for a pattern anywhere within the field value. This allows you to match substrings, patterns, or complex conditions that exact match cannot handle. Enter a valid regular expression pattern.

List of Allowed Values Filters

List of Allowed Values fields restrict input to a predefined set of values you define when configuring the field. The filters for this field type let you select directly from that predefined list rather than typing values manually.

Filter Description Configuration
Equal to one of the allowed values in the list Single value filter. Matches the incoming value against one specific value selected from your predefined list. Select one value from the allowed values list.
One of the allowed values in the list Multiple value filter. Matches the incoming value against any of several values selected from your predefined list. Select one or more values from the allowed values list.

Email Filters

Email fields enforce valid email address formatting and unlock domain-level and hash-based filtering options that go beyond basic text matching.

Filter Description Configuration
Equals one of these values Matches the email address against an exact list of email addresses you define. Useful for suppression lists or targeting specific known contacts. Enter one or more full email addresses.
md5 Matches the email address against a list of md5 hash values. The system calculates the md5 hash of the incoming email on the fly and compares it to your list. This is useful when working with hashed suppression lists where the original email addresses are not available in plain text. Enter one or more md5 hash values.
Domains list Filters email addresses based on the domain name (the part after the @ symbol). This allows you to block or allow entire groups of email addresses without listing every individual address. Common uses include blocking disposable email providers or restricting leads to specific corporate domains. Enter one or more domain names (e.g., gmail.com, yahoo.com).
Partial match (regexp) Uses a regular expression to match against the full email address value. Useful for pattern-based matching that goes beyond exact values or domain filtering. Enter a valid regular expression pattern.

Phone Filters

Phone fields enforce a specific phone number format at ingestion. The available filters let you match against known phone numbers or use patterns to target ranges of numbers.

Filter Description Configuration
Equals one of these values Matches the phone number against an exact list of phone numbers you define. The incoming value must match one of the entries exactly, in the format enforced by the field. Enter one or more phone numbers in the field's configured format.
Partial match (regexp) Uses a regular expression to match against the phone number value. Useful for filtering by area code, prefix, or any other pattern within the number. Enter a valid regular expression pattern.

State Filters

State fields provide predefined lists of state/province abbreviations for the United States, Canada, and Australia. Filtering is done by selecting values directly from the predefined list.

Filter Description Configuration
Equals one of these values Matches the state abbreviation against a list of states you select. You first choose the country (United States, Canada, or Australia), then select one or more states from that country's list. The states display as full names in the selection interface, but the filter runs against the 2-letter or 3-letter abbreviation stored in the field. Select a Country, then select one or more States from the list.

Postal Code Filters

Postal Code fields enforce specific postal/zip code formats. The available filters let you match against exact codes or use patterns to target groups of codes by region.

Filter Description Configuration
Equals one of these values Matches the postal code against an exact list of codes you define. Useful for targeting or excluding specific zip codes. Enter one or more postal/zip codes in the field's configured format.
Partial match (regexp) Uses a regular expression to match against the postal code value. Commonly used to filter by zip code prefix — for example, ^90 would match all Los Angeles-area zip codes starting with 90. Enter a valid regular expression pattern.

Date & Time Filters

Date & Time fields unlock the widest range of filters of any field type. Because the field enforces a specific date format, the system can perform age calculations, date comparisons, and range checks automatically on every incoming lead.

When setting up a campaign field that accepts date data, you can configure it as either a Date field type or an Age field type. Both accept the same date formats, but the filtering options differ significantly between the two.

Date Filters

Date filters compare the date value in the field directly against the date or date range you configure. Use the Date field type when you have a specific date and want to filter leads based strictly on that date.

Filter Description Configuration
Date greater than Passes if the field date is after the date you enter. Enter a date value.
Date less than Passes if the field date is before the date you enter. Enter a date value.
Date equal to Passes if the field date is exactly equal to the date you enter. Enter a date value.
Date not equal to Passes if the field date is anything other than the date you enter. Enter a date value.
Date greater than or equal to Passes if the field date is on or after the date you enter. Enter a date value.
Date less than or equal to Passes if the field date is on or before the date you enter. Enter a date value.
Date between Passes if the field date falls within the range defined by two dates (inclusive). Enter a start date and an end date.

Age Filters

Age filters calculate the age in years from the date value in the field (relative to today's date) and compare it against the value you enter. Use the Age field type when you have a date and want to filter leads based on a time frame derived from that date. These are commonly used for age-gating in verticals like insurance, finance, and education.

For example, if you are collecting date_of_birth, you can block leads where the age based on that field is less than 18 years, allow leads where the age is under 65 years, or allow leads where the age is between 22 and 65 years old.

Filter Description Configuration
Age greater than Passes if the calculated age is strictly greater than the value you enter. Enter a numeric age value.
Age less than Passes if the calculated age is strictly less than the value you enter. Enter a numeric age value.
Age equal to Passes if the calculated age is exactly equal to the value you enter. Enter a numeric age value.
Age not equal to Passes if the calculated age is anything other than the value you enter. Enter a numeric age value.
Age greater than or equal to Passes if the calculated age is greater than or equal to the value you enter. Enter a numeric age value.
Age less than or equal to Passes if the calculated age is less than or equal to the value you enter. Enter a numeric age value.
Age between Passes if the calculated age falls within the range defined by two values (inclusive). Enter a minimum age and a maximum age.

Numeric Filters

Numeric fields accept only valid numbers (integers, decimals, positive, or negative). The available filters perform true numeric comparisons — not string comparisons — which means 9 is correctly evaluated as less than 10, unlike a text field where string sorting would place 9 after 10.

Numeric filters are also useful for filtering leads based on a number that represents a time range, such as the number of days since an incident. For example, in a personal injury campaign where you collect a field like days_since_accident, you could set up a filter to Allow leads where that value is less than 60 to only accept leads within 60 days of the incident.

Filter Description Configuration
Greater than Passes if the numeric value is strictly greater than the filter value. Enter a numeric value.
Less than Passes if the numeric value is strictly less than the filter value. Enter a numeric value.
Equal to Passes if the numeric value is exactly equal to the filter value. Enter a numeric value.
Not equal to Passes if the numeric value is anything other than the filter value. Enter a numeric value.
Greater than or equal to Passes if the numeric value is greater than or equal to the filter value. Enter a numeric value.
Less than or equal to Passes if the numeric value is less than or equal to the filter value. Enter a numeric value.
Between Passes if the numeric value falls within the range defined by two values (inclusive). Enter a minimum value and a maximum value.
One of Passes if the numeric value matches any one of multiple values you enter. Similar to "equals one of these values" but designed for numeric lists. Enter one or more numeric values.

IP Address Filters

IP Address fields validate that the incoming value is a properly formatted IPv4 or IPv6 address. The available filters let you match against known IPs or use patterns to target ranges and subnets.

Filter Description Configuration
Equals one of these values Matches the IP address against an exact list of known addresses. Useful for blocking or allowing specific IPs associated with known bots, test traffic, or trusted sources. Enter one or more IP addresses.
Partial match (regexp) Uses a regular expression to match against the IP address value. Commonly used to filter entire IP ranges or subnets — for example, ^192\.168\. would match all addresses in the 192.168.x.x range. Enter a valid regular expression pattern.

URL Filters

URL fields validate that the incoming value is a properly formatted URL (with or without protocol, depending on the field configuration). The available filters let you match against exact URLs or use patterns to target groups of URLs.

Filter Description Configuration
Equals one of these values Matches the URL against an exact list of URLs you define. The incoming value must be an exact match, including protocol and path if present. Enter one or more URLs.
Partial match (regexp) Uses a regular expression to match against the URL value. Useful for matching URLs by domain, path, or query string pattern — for example, example\.com would match any URL containing that domain. Enter a valid regular expression pattern.

Using Regular Expressions with Partial Match (regexp)

The Partial match (regexp) filter is an advanced feature available on the following field types: Email, Postal Code, Phone, URL, IP Address, and Text. It uses regular expression pattern matching to evaluate field values, allowing you to match by prefix (^123), suffix (333$), substring, word boundary (\btest\b), or any other pattern that exact match cannot handle.

Lead Prosper uses the PCRE2 regular expression flavor. Special characters like . ^ $ * + - ? ( ) [ ] { } \ | / must be escaped with a backslash if they appear literally in your filter. Before using any regular expression filters, test your rules at https://regex101.com/ — select the PCRE2 flavor, set the flags to global, multi line, and insensitive, and validate against sample input data.

For detailed examples and pattern recipes, see Partial Match (regexp) Field Filter.


API Filters

API Filters let you allow or block leads based on real-time responses from any external API endpoint. Instead of comparing against a static value or list, the filter sends a request to an external service and makes its decision based on what comes back. You configure them the same way you set up any other filter — at the Global, Supplier, or Buyer level.

Setting up an API Filter involves three steps: choosing when the filter runs (Pre-Ping, Ping, or Post), configuring the outbound API request with your endpoint URL, method, headers, and payload, and then mapping the response to define your allow/block conditions. Response mapping supports a range of condition types including exact match, contains, greater/less than, between, full response body searches, and HTTP status code checks. You can also define a custom error message that gets returned to the Supplier when a lead is blocked.

All newly created API Filters are set to Paused by default. Lead Prosper provides a built-in testing tool so you can validate your setup before going live. Because API Filters can block leads at multiple levels, an incorrect setup could result in all leads being rejected — always test thoroughly before activating.

Common use cases include integrating lead scoring providers, fraud detection tools, compliance databases, and AI services like OpenAI's ChatGPT. Because you can hit any endpoint, you are not limited to traditional data lookups — users have connected OpenAI to dynamically detect profanity in lead names, determine whether a zip code falls within a geographic radius, and score leads based on contextual AI analysis.

For a full setup walkthrough, see API Filters Overview. For examples using OpenAI, see Using OpenAI with API Filters and Dynamic Profanity Filtering with OpenAI.


Filtering with Computed Fields

Computed Fields let you create virtual fields whose values are dynamically generated from the lead data you already collect. Using a no-code configurator, you can combine multiple fields, apply transformers, and reformat data — all without touching your source integrations. For example, you might merge a first and last name into a single full_name field, normalize a phone number into a specific format, convert a date from YYYY-MM-DD to MM/DD/YYYY, or translate a numeric credit score into a text rating like "Excellent" or "Average."

Once a Computed Field is saved, it becomes available anywhere you map or reference fields within that campaign — including in your filters. This means you can filter leads based on transformed or derived values rather than just the raw data a Supplier sends in. A common use case is combining multiple fields into a single value (like project type + material type for home services leads) and then filtering on that combined result. Computed Fields are defined at the campaign level, so any field you create can be reused across all buyers in that campaign.

Transformers can be daisy-chained together, and the order they run in matters — the output of one becomes the input for the next. You can preview results with the built-in Test Output tool before saving.

For a full walkthrough with step-by-step examples, see Computed Fields.


Filters give you precise control over which leads enter your campaigns and which buyers receive them. Whether you're working with basic field-level rules, pattern matching through regular expressions, real-time API integrations, or derived data through Computed Fields, the filtering system is designed to scale with your needs. Start with the fundamentals — set your field types, define your Allow and Block criteria, and test as you go. As your campaigns grow and your requirements become more complex, the tools covered in this guide will be there to match. If you have questions or need help configuring a specific filter, reach out to our team at support@leadprosper.io.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.