Data Source Filtering
Data Source and Filters - Complete Guide
This comprehensive guide covers everything you need to know about data source filtering in Tadabase. Learn how to filter data by any field type, understand complex filter logic, and master advanced filtering techniques.
What You'll Learn
- How to choose and configure data sources
- Every filter operator for every field type
- Visual examples of date filtering with calendar representations
- Filter logic (AND/OR) and nested filter groups
- Special filters for logged-in users, connections, and roles
- Real-world filtering examples and best practices
Table of Contents
- Understanding Data Sources
- Filter Basics
- Text Field Filters
- Number Field Filters
- Date Field Filters
- Date Filter Calendar Examples
- Checkbox Filters
- Select Field Filters
- Connection Field Filters
- File Field Filters
- Filter Logic and Groups
- Special Filters
- Practical Examples
- Best Practices
- Troubleshooting
1. Understanding Data Sources
What is a Data Source?
When you add a data component (Table, List, Details, etc.) to a page, you must first choose a data source. The data source is the table from which your component will display records. Once selected, the data source cannot be changed without recreating the component.
Important
The data source determines which records are available. Filters then refine which of those records are displayed. Think of the data source as the warehouse and filters as your search criteria.
Choosing a Data Source
When creating a component:
- Select Component Type: Table, List, Details, Chart, etc.
- Choose Data Source: Pick the table containing your data
- Configure Filters: Optionally refine which records display (covered in this guide)
- Set Display Fields: Choose which fields to show
Example: If you have tables for Companies, Contacts, Jobs, and Users, and you want to display a list of companies, select the Companies table as your data source. You can then filter to show only certain companies based on specific criteria.
2. Filter Basics
What Are Filters?
Filters allow you to control which records from your data source are displayed. Unlike the data source (which cannot be changed), filters can be modified at any time. Filters work by applying conditions to field values.
Anatomy of a Filter
Every filter consists of three parts:
| Component | Description | Example |
|---|---|---|
| Field | The field you want to filter by | "Company Name", "Status", "Created Date" |
| Operator | How to compare the field value | "is", "contains", "greater than", "is this week" |
| Value | What to compare against | "Tesla", "Active", "100", Today's date |
Example Filter:
Field: Status
Operator: is
Value: Active
Result: Only shows records where Status is "Active"
Adding Filters to Components
- Open your component settings
- Navigate to the Filters section
- Click Add Filter or Add Filter Group
- Select the field, operator, and value
- Save your component
3. Text Field Filters
Text field filters apply to: Text, Long Text, Name, Email, Rich Text, Address, and Phone fields.
Text Filter Operators
| Operator | Description | Example | Result |
|---|---|---|---|
is |
Exact match (case-insensitive) | Company Name is "Tesla" | Only shows records where Company Name is exactly "Tesla" |
is not |
Not equal to | Status is not "Inactive" | Shows all records except those with Status "Inactive" |
contains |
Field includes the value anywhere | Company Name contains "Tech" | Shows "TechCorp", "FinTech Solutions", "Technology Inc" |
does not contain |
Field does not include the value | Email does not contain "gmail" | Excludes all Gmail addresses |
starts with |
Field begins with the value | Company Name starts with "A" | Shows "Apple", "Amazon", "Adobe" |
ends with |
Field ends with the value | Email ends with ".edu" | Shows only .edu email addresses |
is blank |
Field is empty | Phone is blank | Shows records with no phone number |
is not blank |
Field has a value | Email is not blank | Shows only records with email addresses |
character length is greater than |
Text length exceeds value | Description character length is greater than 100 | Shows records with descriptions longer than 100 characters |
character length is less than |
Text length is below value | Notes character length is less than 50 | Shows records with short notes (under 50 characters) |
Text Filter Examples
Example 1: Find All Gmail Users
Field: Email
Operator: contains
Value: @gmail.com
Result: Shows only users with Gmail addresses like "john@gmail.com", "sarah@gmail.com"
Example 2: Companies Starting with A-M
Filter Group 1: Company Name starts with "A" OR
Filter Group 2: Company Name starts with "B" OR
... (continue for each letter A-M)
Result: Shows companies in the first half of the alphabet
Example 3: Find Incomplete Records
Field: Description
Operator: is blank
Logic: OR
Field: Phone
Operator: is blank
Result: Shows records missing either a description or phone number
4. Number Field Filters
Number field filters apply to: Number, Currency, Rating, Slider, Auto Increment, and Equation fields.
Number Filter Operators
| Operator | Description | Example | Result |
|---|---|---|---|
is |
Exact match | Price is 100 | Shows records where Price is exactly 100 |
is not |
Not equal to | Quantity is not 0 | Shows all records except where Quantity is 0 |
higher than |
Greater than (>) | Revenue higher than 10000 | Shows records where Revenue > 10,000 |
lower than |
Less than (<) | Age lower than 18 | Shows records where Age < 18 |
higher than or equal to |
Greater than or equal (>=) | Score higher than or equal to 90 | Shows records where Score >= 90 |
lower than or equal to |
Less than or equal (<=) | Stock lower than or equal to 10 | Shows records where Stock <= 10 (low stock alert) |
is blank |
Field is empty (NULL) | Discount is blank | Shows records with no discount applied |
is not blank |
Field has a value | Price is not blank | Shows only records with a price set |
Number Filter Examples
Example 1: High-Value Deals
Field: Deal Value
Operator: higher than
Value: 50000
Result: Shows only deals worth more than $50,000
Example 2: Low Stock Alert
Field: Stock Quantity
Operator: lower than or equal to
Value: 5
AND
Field: Stock Quantity
Operator: is not blank
Result: Shows products with 5 or fewer items in stock (excluding items not yet tracked)
Example 3: Premium Customers (Multiple Ranges)
Group 1: Total Purchases higher than 10000
OR
Group 2: Rating is 5 AND Order Count higher than 20
Result: Shows customers who either spent over $10,000 OR have perfect rating with 20+ orders
Range Filtering (Between Two Values)
To filter for values between two numbers, use two conditions with AND logic:
Example: Products Priced $100-$500
Condition 1: Price higher than or equal to 100
AND
Condition 2: Price lower than or equal to 500
Result: Shows products with prices from $100 to $500 inclusive
5. Date Field Filters
Date filtering is one of the most powerful filtering capabilities in Tadabase. Date filters apply to: Date, Date/Time, Time, and Calendar fields.
Date Filter Categories
Date filters are organized into four categories:
| Category | Description | Example Operators |
|---|---|---|
| Today Filters | Relative to current date | is today, is before today, is today or after |
| Current Period | This week/month/quarter/year | is this week, is this month, is this quarter |
| Past/Future Periods | Last or next time periods | is last week, is next month, is last year |
| Custom Ranges | Dynamic date calculations | is during the previous 30 days, is after the next 2 weeks |
| Specific Dates | Compare to exact date | is before [date], is on or after [date] |
Complete Date Filter Operators
| Operator | Description | Dynamic? |
|---|---|---|
| TODAY FILTERS | ||
is today |
Date equals today | Yes |
is not today |
Date is not today | Yes |
is before today |
Date is in the past | Yes |
is after today |
Date is in the future | Yes |
is today or before |
Date is today or earlier | Yes |
is today or after |
Date is today or later | Yes |
| CURRENT PERIOD FILTERS | ||
is this week |
Date falls in current week (Sun-Sat) | Yes |
is not this week |
Date is not in current week | Yes |
is this month |
Date is in current calendar month | Yes |
is not this month |
Date is not in current month | Yes |
is this quarter |
Date is in current quarter (Q1-Q4) | Yes |
is not this quarter |
Date is not in current quarter | Yes |
is this year |
Date is in current calendar year | Yes |
is not this year |
Date is not in current year | Yes |
| PAST PERIOD FILTERS | ||
is last week |
Date was in the previous week | Yes |
is not last week |
Date was not in previous week | Yes |
is last month |
Date was in the previous calendar month | Yes |
is not last month |
Date was not in previous month | Yes |
is last quarter |
Date was in the previous quarter | Yes |
is not last quarter |
Date was not in previous quarter | Yes |
is last year |
Date was in the previous calendar year | Yes |
is not last year |
Date was not in previous year | Yes |
| FUTURE PERIOD FILTERS | ||
is next week |
Date will be in the upcoming week | Yes |
is not next week |
Date will not be in upcoming week | Yes |
is next month |
Date will be in the upcoming month | Yes |
is not next month |
Date will not be in upcoming month | Yes |
is next quarter |
Date will be in the upcoming quarter | Yes |
is not next quarter |
Date will not be in upcoming quarter | Yes |
is next year |
Date will be in the upcoming year | Yes |
is not next year |
Date will not be in upcoming year | Yes |
| CUSTOM RANGE FILTERS | ||
is during the current |
Choose: week, month, quarter, or year | Yes |
is during the previous |
Last N days/weeks/months/years | Yes |
is during the next |
Next N days/weeks/months/years | Yes |
is before the previous |
Before N days/weeks/months/years ago | Yes |
is after the next |
After N days/weeks/months/years from now | Yes |
| SPECIFIC DATE FILTERS | ||
is |
Exact date match | No |
is not |
Not this specific date | No |
is before |
Before specific date | No |
is after |
After specific date | No |
is on or before |
On or before specific date | No |
is on or after |
On or after specific date | No |
| BLANK FILTERS | ||
is blank |
No date entered | N/A |
is not blank |
Date is entered | N/A |
Dynamic Filters
Filters marked "Yes" for Dynamic automatically update each day. For example, "is this week" always shows the current week's records, even as weeks change. This means you set the filter once and it stays relevant forever.
Time-Specific Operators (Date/Time and Time Fields)
| Operator | Description | Example Use Case |
|---|---|---|
is before current time |
Time is earlier than right now | Show past appointments for today |
is after current time |
Time is later than right now | Show upcoming appointments for today |
6. Date Filter Calendar Examples
Understanding date filters is easier with visual examples. Below are calendar representations showing which dates would be included (✓) or excluded (✗) for various filter operators.
Reference Date
For all examples below, assume today is Tuesday, January 14, 2026.
"Is Today" Filter
Operator: is today
What it means: Only show records where the date field equals today's date.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 ✗ |
2 ✗ |
3 ✗ |
||||
| 4 ✗ |
5 ✗ |
6 ✗ |
7 ✗ |
8 ✗ |
9 ✗ |
10 ✗ |
| 11 ✗ |
12 ✗ |
13 ✗ |
14 ✓ TODAY |
15 ✗ |
16 ✗ |
17 ✗ |
| 18 ✗ |
19 ✗ |
20 ✗ |
21 ✗ |
22 ✗ |
23 ✗ |
24 ✗ |
| 25 ✗ |
26 ✗ |
27 ✗ |
28 ✗ |
29 ✗ |
30 ✗ |
31 ✗ |
Result: Only records dated January 14, 2026 will display. Tomorrow, it automatically updates to show January 15, 2026.
"Is Before Today" Filter
Operator: is before today
What it means: Show all records with dates in the past (excludes today).
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 ✓ |
2 ✓ |
3 ✓ |
||||
| 4 ✓ |
5 ✓ |
6 ✓ |
7 ✓ |
8 ✓ |
9 ✓ |
10 ✓ |
| 11 ✓ |
12 ✓ |
13 ✓ |
14 ✗ TODAY |
15 ✗ |
16 ✗ |
17 ✗ |
| 18 ✗ |
19 ✗ |
20 ✗ |
21 ✗ |
22 ✗ |
23 ✗ |
24 ✗ |
| 25 ✗ |
26 ✗ |
27 ✗ |
28 ✗ |
29 ✗ |
30 ✗ |
31 ✗ |
Result: Shows records dated January 1-13, 2026 (all past dates). Perfect for viewing historical data or overdue items.
"Is This Week" Filter
Operator: is this week
What it means: Show records where the date falls within the current week (Sunday to Saturday).
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 ✗ |
2 ✗ |
3 ✗ |
||||
| 4 ✗ |
5 ✗ |
6 ✗ |
7 ✗ |
8 ✗ |
9 ✗ |
10 ✗ |
| 11 ✓ Sun |
12 ✓ |
13 ✓ |
14 ✓ TODAY |
15 ✓ |
16 ✓ |
17 ✓ Sat |
| 18 ✗ |
19 ✗ |
20 ✗ |
21 ✗ |
22 ✗ |
23 ✗ |
24 ✗ |
| 25 ✗ |
26 ✗ |
27 ✗ |
28 ✗ |
29 ✗ |
30 ✗ |
31 ✗ |
Result: Shows records from January 11-17, 2026 (Sunday through Saturday of current week). Next week, it automatically updates to January 18-24.
"Is This Month" Filter
Operator: is this month
What it means: Show records where the date falls within the current calendar month.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 ✓ |
2 ✓ |
3 ✓ |
||||
| 4 ✓ |
5 ✓ |
6 ✓ |
7 ✓ |
8 ✓ |
9 ✓ |
10 ✓ |
| 11 ✓ |
12 ✓ |
13 ✓ |
14 ✓ TODAY |
15 ✓ |
16 ✓ |
17 ✓ |
| 18 ✓ |
19 ✓ |
20 ✓ |
21 ✓ |
22 ✓ |
23 ✓ |
24 ✓ |
| 25 ✓ |
26 ✓ |
27 ✓ |
28 ✓ |
29 ✓ |
30 ✓ |
31 ✓ |
Result: Shows all records from January 1-31, 2026. On February 1, it automatically switches to February 1-28.
"Is During the Previous 30 Days" Filter
Operator: is during the previous 30 days
What it means: Show records from the last 30 days including today.
Analogy: Think of this as a "rolling 30-day window" that moves forward each day.
| December 2025 | ||||||
|---|---|---|---|---|---|---|
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 1 ✗ |
2 ✗ |
3 ✗ |
4 ✗ |
5 ✗ |
6 ✗ |
|
| 7 ✗ |
8 ✗ |
9 ✗ |
10 ✗ |
11 ✗ |
12 ✗ |
13 ✗ |
| 14 ✗ |
15 ✓ Start |
16 ✓ |
17 ✓ |
18 ✓ |
19 ✓ |
20 ✓ |
| 21 ✓ |
22 ✓ |
23 ✓ |
24 ✓ |
25 ✓ |
26 ✓ |
27 ✓ |
| 28 ✓ |
29 ✓ |
30 ✓ |
31 ✓ |
|||
| January 2026 | ||||||
|---|---|---|---|---|---|---|
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 1 ✓ |
2 ✓ |
3 ✓ |
||||
| 4 ✓ |
5 ✓ |
6 ✓ |
7 ✓ |
8 ✓ |
9 ✓ |
10 ✓ |
| 11 ✓ |
12 ✓ |
13 ✓ |
14 ✓ TODAY |
15 ✗ |
16 ✗ |
17 ✗ |
Result: Shows records from December 15, 2025 through January 14, 2026 (30 days total including today). Tomorrow, it automatically shifts to December 16, 2025 through January 15, 2026.
"Is Before the Previous 7 Days" Filter
Operator: is before the previous 7 days
What it means: Show records dated BEFORE the last 7 days started (not including the last 7 days).
Analogy: Imagine a 7-day window starting 7 days ago. This filter shows everything BEFORE that window began.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 ✓ Old |
2 ✓ Old |
3 ✓ Old |
||||
| 4 ✓ Old |
5 ✓ Old |
6 ✓ Old |
7 ✗ 7 days ago |
8 ✗ |
9 ✗ |
10 ✗ |
| 11 ✗ |
12 ✗ |
13 ✗ |
14 ✗ TODAY |
15 ✗ |
16 ✗ |
17 ✗ |
Result: Shows records from January 1-6, 2026 (everything before the 7-day window of Jan 7-14). This is useful for finding "older" records that aren't recent.
"Is After the Next 14 Days" Filter
Operator: is after the next 14 days
What it means: Show records dated AFTER the next 14 days ends (far future dates).
Analogy: Think of a 14-day window starting tomorrow. This filter shows everything AFTER that window ends.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 1 ✗ |
2 ✗ |
3 ✗ |
||||
| 4 ✗ |
5 ✗ |
6 ✗ |
7 ✗ |
8 ✗ |
9 ✗ |
10 ✗ |
| 11 ✗ |
12 ✗ |
13 ✗ |
14 ✗ TODAY |
15 ✗ Next 14 |
16 ✗ Next 14 |
17 ✗ Next 14 |
| 18 ✗ Next 14 |
19 ✗ Next 14 |
20 ✗ Next 14 |
21 ✗ Next 14 |
22 ✗ Next 14 |
23 ✗ Next 14 |
24 ✗ Next 14 |
| 25 ✗ Next 14 |
26 ✗ Next 14 |
27 ✗ Next 14 |
28 ✗ Next 14 |
29 ✓ Far Future |
30 ✓ Far Future |
31 ✓ Far Future |
Result: Shows records from January 29, 2026 onward (everything after the 14-day window of Jan 15-28). This is useful for finding "long-term" future dates beyond your immediate planning horizon.
Pro Tip: Dynamic vs Static Date Filters
Dynamic filters (like "is this week", "is during the previous 30 days") update automatically each day. They're perfect for dashboards and recurring reports because you set them once and they stay relevant forever.
Static filters (like "is before January 1, 2026") never change. They're useful for fixed date ranges like "Q4 2025 Sales" or "Pre-Launch Records".
7. Checkbox Filters
Checkbox field filters apply to: Checkbox and Decision Box fields (Yes/No values).
Checkbox Filter Operators
| Operator | Description | Example |
|---|---|---|
is checked |
Checkbox is checked (Yes) | Active is checked → Shows active records |
is unchecked |
Checkbox is not checked (No) | Verified is unchecked → Shows unverified records |
is not checked |
Same as "is unchecked" | Archived is not checked → Shows non-archived |
is not unchecked |
Same as "is checked" | Approved is not unchecked → Shows approved |
is blank |
No value set (NULL) | Optional Setting is blank → Never set by user |
is not blank |
Has value (checked or unchecked) | Preference is not blank → User made a choice |
is only checked |
Explicitly checked (not blank) | Consent is only checked → Active consent given |
is all except checked |
Unchecked or blank | Premium is all except checked → Not premium users |
Checkbox Filter Examples
Example 1: Active and Verified Users
Condition 1: Active is checked
AND
Condition 2: Email Verified is checked
Result: Shows only users who are both active AND have verified email addresses
Example 2: Needs Attention (Either Unverified or Incomplete)
Condition 1: Email Verified is unchecked
OR
Condition 2: Profile Complete is unchecked
Result: Shows users who either haven't verified email OR haven't completed their profile
8. Select Field Filters
Select field filters apply to: Select, Multi-Select, Radio, and Checkbox (Options) fields.
Select Filter Operators
| Operator | Description | Best For |
|---|---|---|
is |
Exact match (or contains for Multi-Select) | Single Select, Radio |
is not |
Does not equal (or not contains for Multi-Select) | Excluding specific values |
contains |
Multi-Select includes this value | Multi-Select, Checkbox (Options) |
does not contain |
Multi-Select does not include this value | Multi-Select exclusions |
is blank |
No option selected | Finding incomplete records |
is not blank |
Has at least one option selected | Finding completed records |
Single Select vs Multi-Select Filtering
Single Select Example
Field: Status (Options: Active, Pending, Inactive, Archived)
Filter: Status is "Active"
Result: Shows only records where Status = "Active"
Filter: Status is not "Inactive"
Result: Shows records with "Active", "Pending", or "Archived" status
Multi-Select Example
Field: Industries (Options: Technology, Healthcare, Finance, Retail, Manufacturing)
Filter: Industries contains "Technology"
Result: Shows companies that selected Technology (even if they also selected other industries)
Example Records Shown:
- Company A: "Technology" only ✓
- Company B: "Technology, Healthcare" ✓
- Company C: "Technology, Finance, Retail" ✓
- Company D: "Healthcare, Finance" ✗ (no Technology)
Filtering for Multiple Options
Example: Companies in Tech OR Healthcare
Condition 1: Industries contains "Technology"
OR
Condition 2: Industries contains "Healthcare"
Result: Shows companies in either industry (or both)
Example: Companies in BOTH Tech AND Healthcare
Condition 1: Industries contains "Technology"
AND
Condition 2: Industries contains "Healthcare"
Result: Shows only companies that selected both industries
9. Connection Field Filters
Connection fields (also called Join fields) link records between tables. Connection filtering is the most powerful filtering capability in Tadabase, enabling user-specific views, role-based access, and complex data relationships.
Connection Filter Operators
| Operator | Description | Use Case |
|---|---|---|
| BASIC CONNECTION OPERATORS | ||
is |
Connected to specific record(s) | Show orders for specific customer |
is not |
Not connected to specific record(s) | Exclude orders from certain customers |
is exact |
Connected to ALL selected records (no more, no less) | Projects with exactly these team members |
is not exact |
Not exactly these connections | Projects with different team composition |
is blank |
No connections exist | Orders not assigned to any salesperson |
is not blank |
Has at least one connection | Orders that are assigned |
| SEARCH WITHIN CONNECTED RECORDS | ||
contains |
Connected record contains value | Orders where customer name contains "Tech" |
does not contain |
Connected record does not contain value | Orders where customer name doesn't contain "Inc" |
contains exact |
Connected record exactly matches value | Orders from customer named exactly "Apple" |
| USER-SPECIFIC FILTERS | ||
is logged in user |
Connected to currently authenticated user | Show MY orders, MY tasks, MY companies |
is not logged in user |
Not connected to current user | Show OTHER people's tasks |
is connected to any logged in user's roles |
Connected through user role system | Show tasks for MY team (Sales, Support, etc.) |
is connected to logged in user |
Indirect connection through user field | Companies where I'm the account manager |
| PAGE CONTEXT FILTERS | ||
is connected with current record |
Connected to record shown on detail page | On Company page, show related Contacts |
is connected with current record's field |
Cross-field connection from detail page | On Order page, show Products from same Category |
is this page |
Record ID matches current page ID | Highlight current item in navigation |
Logged In User Filters (Most Common)
The most powerful connection filter is is logged in user. This dynamically shows each user only THEIR records.
Example: Show My Companies
Scenario: You have a Companies table with a connection field "Assigned To" linking to the Users table.
Filter Setup:
Field: Assigned To
Operator: is logged in user
Result:
- When John logs in, he sees only companies assigned to him
- When Sarah logs in, she sees only companies assigned to her
- Each user automatically sees their own data without any code!
Role-Based Filtering
Use is connected to any logged in user's roles to show data for the entire team.
Example: Show Team's Companies
Scenario: Users have roles (Sales Team, Support Team, Management). You want each team member to see their entire team's companies.
Filter Setup:
Field: Assigned To
Operator: is connected to any logged in user's roles
Result:
- When John (Sales Team) logs in, he sees all companies assigned to anyone on the Sales Team
- When Sarah (Support Team) logs in, she sees all companies assigned to anyone on the Support Team
- Managers see companies across all teams if they have multiple roles
Current Record Filtering (Detail Pages)
When you're on a detail page showing a specific record, you can filter related data using is connected with current record.
Example: Company Detail Page with Related Contacts
Scenario: You have a Company detail page and want to show all contacts working at this company.
Page Structure:
- Page Type: Details page showing one Company record
- Component: Table showing Contacts
Filter Setup:
Field: Company (connection field in Contacts table)
Operator: is connected with current record
Result: When viewing Tesla's company page, only contacts working at Tesla are shown. When viewing Apple's page, only Apple contacts appear.
Searching Within Connected Records
You can filter based on values INSIDE connected records using contains or contains exact.
Example: Find Orders from Tech Companies
Scenario: Orders table has a "Company" connection field linking to Companies table.
Filter Setup:
Field: Company
Operator: contains
Value: Tech
Result: Shows orders from companies with "Tech" in their name: "TechCorp", "FinTech Solutions", "Technology Inc"
Complex Connection Filter Examples
Example 1: My Open Orders from Premium Companies
Condition 1: Assigned To is logged in user
AND
Condition 2: Status is "Open"
AND
Condition 3: Company → Premium is checked
Result: Shows only the logged-in user's open orders from premium companies
Example 2: Team Tasks Due This Week
Condition 1: Assigned To is connected to any logged in user's roles
AND
Condition 2: Due Date is this week
AND
Condition 3: Status is not "Completed"
Result: Shows all team members' incomplete tasks due this week
10. File Field Filters
File field filters apply to: Files, Image, and Signature fields.
File Filter Operators
| Operator | Description | Example |
|---|---|---|
is blank |
No file uploaded | Resume is blank → Find incomplete applications |
is not blank |
File is uploaded | Contract is not blank → Find signed contracts |
size is less than |
File size smaller than value (KB) | Attachment size is less than 100 → Files under 100KB |
size is greater than |
File size larger than value (KB) | Video size is greater than 10000 → Files over 10MB |
file type is |
File extension matches (comma-separated) | Document file type is pdf,doc,docx → Word/PDF only |
file type is not |
File extension doesn't match | Image file type is not gif → Exclude GIFs |
File Filter Examples
Example 1: Find Large Attachments
Field: Attachment
Operator: size is greater than
Value: 5000 (5MB)
Result: Shows records with attachments larger than 5MB, useful for finding files to archive or compress.
Example 2: PDF Documents Only
Field: Contract
Operator: file type is
Value: pdf
Result: Shows only records with PDF contract files.
Example 3: Missing Required Documents
Condition 1: Resume is blank
OR
Condition 2: Cover Letter is blank
Result: Shows applications missing either a resume or cover letter.
11. Filter Logic and Groups
Understanding how filters combine is crucial for creating powerful data views. Tadabase uses filter groups with AND/OR logic to create simple or complex filter conditions.
Match All (AND) vs Match Any (OR)
Every filter group has a logic setting:
| Logic | Behavior | Use When |
|---|---|---|
| Match All (AND) | Record must meet ALL conditions in the group | You want to narrow results (more restrictive) |
| Match Any (OR) | Record must meet AT LEAST ONE condition | You want to expand results (more inclusive) |
AND Logic Example
Premium Customers in California
Filter Group: Match All (AND)
Condition 1: State is "California"
Condition 2: Customer Type is "Premium"
Records Shown:
- Company A: California, Premium ✓
- Company B: California, Standard ✗ (not Premium)
- Company C: New York, Premium ✗ (not California)
- Company D: California, Premium ✓
Result: Only companies that are BOTH in California AND premium customers. This narrows results.
OR Logic Example
Customers in California OR New York
Filter Group: Match Any (OR)
Condition 1: State is "California"
Condition 2: State is "New York"
Records Shown:
- Company A: California ✓
- Company B: New York ✓
- Company C: Texas ✗
- Company D: California ✓
Result: Companies in either state. This expands results.
Nested Filter Groups (Child Filters)
The real power comes from nesting filter groups. You can create parent filter groups that contain child filter groups, enabling complex logic like "(A AND B) OR (C AND D)".
Filter Group Structure
Parent Filter Group (Match Any / OR)
├── Child Group 1 (Match All / AND)
│ ├── Condition: State is "California"
│ └── Condition: Customer Type is "Premium"
│
└── Child Group 2 (Match All / AND)
├── Condition: State is "New York"
└── Condition: Orders > 100
What this means: Show companies that are either (California AND Premium) OR (New York AND have >100 orders).
Complex Filter Example
Prioritized Outreach List
Business Goal: Create a list of companies to call. Priority should be:
- Companies in automotive or conglomerate industries
- Companies that are EITHER high-value deals (>$100K) OR have pending status (regardless of value)
- Must be assigned to the logged-in user
Filter Setup:
PARENT GROUP (Match All / AND):
- Condition: Assigned To is logged in user
- CHILD GROUP 1 (Match Any / OR):
- Condition: Industry is "Automotive"
- Condition: Industry is "Conglomerate"
- CHILD GROUP 2 (Match Any / OR):
- Condition: Deal Value higher than 100000
- Condition: Status is "Pending"
Logic Breakdown:
A record is shown IF:
(Assigned to me) AND
(Automotive OR Conglomerate) AND
(Value > $100K OR Status is Pending)
Example Results:
- Tesla, Automotive, $150K, Open, Assigned to Me ✓ (All criteria met)
- Ford, Automotive, $50K, Pending, Assigned to Me ✓ (Pending overrides low value)
- IBM, Technology, $200K, Open, Assigned to Me ✗ (Wrong industry)
- GM, Automotive, $80K, Open, Assigned to Sarah ✗ (Not assigned to me)
- Tesla, Automotive, $30K, Open, Assigned to Me ✗ (Low value and not pending)
Filter Group Best Practices
Tips for Effective Filtering
- Start Simple: Begin with single conditions, then add complexity as needed
- Test Each Group: Build filter groups one at a time and preview results
- Use Descriptive Names: If your component allows naming filter groups, use clear labels
- AND Narrows, OR Expands: Remember this rule when deciding between Match All and Match Any
- Parent vs Child: Use parent groups for broad requirements, child groups for alternatives
- Logged-in User First: When filtering by user, put that condition at the parent level for performance
12. Special Filters
Blank vs Zero/Empty Values
Understanding the difference between blank and zero is important:
| Value | Description | Example |
|---|---|---|
| Blank (NULL) | Field has never been set | Optional field never filled in |
| Zero (0) | Field explicitly set to 0 | Discount field set to 0% |
| Empty String ("") | Text field set but contains nothing | Notes field saved empty |
Example: Finding Records That Need Pricing
Wrong way: Price is blank
Problem: This also shows items priced at $0 if the field was set
Right way: Price is blank OR Price is 0
Result: Shows both unpriced items and zero-priced items
Filtering by Record ID
Every record has a unique ID. You can filter by ID to show specific records.
Example: Featured Products
Scenario: You want to feature specific products (IDs: 123, 456, 789) on your homepage.
Filter Setup:
Field: Record ID
Operator: is
Value: 123,456,789 (comma-separated)
Result: Shows only those three products
Auto-Increment Field Filtering
Auto-increment fields (like Invoice #, Order #) use numeric operators.
Example: Orders from Last System Migration
Scenario: After migrating to Tadabase, new orders start at Order #10000.
Filter Setup:
Field: Order Number
Operator: higher than or equal to
Value: 10000
Result: Shows only orders created in the new system
Equation and Formula Field Filtering
Equation fields (calculated fields) can be filtered just like their output type:
- Numeric equation (e.g., Quantity × Price) → Use number operators
- Text formula (e.g., First Name + " " + Last Name) → Use text operators
- Date calculation (e.g., Due Date + 30 days) → Use date operators
Example: High-Margin Products
Scenario: You have an equation field "Profit Margin" that calculates (Price - Cost) / Price
Filter Setup:
Field: Profit Margin
Operator: higher than
Value: 0.5 (50%)
Result: Shows products with >50% profit margin
13. Practical Examples
Here are complete, real-world filtering scenarios you can adapt to your applications.
Example 1: CRM Dashboard - My Active Opportunities
Goal: Sales rep sees only their active opportunities sorted by value.
Data Source: Opportunities Table
Filters:
- Condition 1: Owner is logged in user
- Condition 2: Stage is not "Closed Won"
- Condition 3: Stage is not "Closed Lost"
Sorting: Deal Value (Descending)
Result: Each rep sees their open deals ranked by value. Perfect for prioritizing daily work.
Example 2: Support Dashboard - Urgent Tickets
Goal: Show high-priority unresolved tickets for the support team.
Data Source: Tickets Table
Filters (Match All / AND):
- Condition 1: Assigned To is connected to any logged in user's roles (filters to team)
- Condition 2: Status is not "Closed"
- Child Group (Match Any / OR):
- Priority is "High"
- Priority is "Critical"
Sorting: Created Date (Oldest First)
Result: Team sees all high/critical open tickets sorted by how long they've been waiting.
Example 3: Project Management - Overdue Tasks
Goal: Show all overdue incomplete tasks.
Data Source: Tasks Table
Filters (Match All / AND):
- Condition 1: Due Date is before today
- Condition 2: Status is not "Completed"
- Condition 3: Assigned To is not blank
Sorting: Due Date (Oldest First)
Result: All overdue tasks that haven't been completed, sorted by how overdue they are.
Example 4: Inventory Management - Reorder Alert
Goal: Products that need reordering (low stock).
Data Source: Products Table
Filters (Match All / AND):
- Condition 1: Stock Quantity is not blank
- Condition 2: Stock Quantity lower than or equal to Reorder Point
- Condition 3: Active is checked
Sorting: Stock Quantity (Ascending)
Result: Shows active products below reorder threshold, sorted by most urgent (lowest stock first).
Example 5: Event Management - Upcoming Events This Month
Goal: Show events happening this month that aren't cancelled.
Data Source: Events Table
Filters (Match All / AND):
- Condition 1: Event Date is this month
- Condition 2: Status is not "Cancelled"
- Condition 3: Event Date is today or after (exclude past events)
Sorting: Event Date (Ascending)
Result: Chronological list of upcoming events this month. Automatically updates each month.
Example 6: HR Dashboard - Employee Anniversaries This Week
Goal: Celebrate employee work anniversaries this week.
Data Source: Employees Table
Filters (Match All / AND):
- Condition 1: Hire Date is this week
- Condition 2: Status is "Active"
Note: This uses the "is this week" operator which compares month and day only (ignoring year), perfect for anniversaries.
Result: Shows active employees whose work anniversary is this week, regardless of which year they were hired.
Example 7: Sales Pipeline - Stale Opportunities
Goal: Find opportunities that haven't been updated in 30+ days (need attention).
Data Source: Opportunities Table
Filters (Match All / AND):
- Condition 1: Last Modified Date is before the previous 30 days
- Condition 2: Stage is not "Closed Won"
- Condition 3: Stage is not "Closed Lost"
- Condition 4: Owner is logged in user
Sorting: Last Modified Date (Oldest First)
Result: Shows the sales rep's open opportunities that haven't been touched in over a month, sorted by staleness.
14. Best Practices
Performance Optimization
- Filter Early: Apply user/role filters at the parent level before other conditions
- Use Indexes: Fields frequently used in filters should be indexed (especially connection fields)
- Limit Records: Use record limits for dashboards (display top 10, 25, 50)
- Avoid Over-Filtering: Don't add unnecessary conditions that already match most data
- Use "is blank" Carefully: These queries can be slower on large tables
User Experience Best Practices
- Default to User Data: Most users want to see THEIR data first. Use "is logged in user" by default.
- Provide Filters: Let users refine results with search components and filter dropdowns
- Show Counts: Display record counts so users know if filters are too restrictive
- Explain Empty Results: Use conditional messages when filters produce no results
- Save Filter Presets: Create multiple views (My Items, Team Items, All Items)
Filter Maintenance
- Document Complex Filters: Add comments explaining business logic for complex filter groups
- Test with Real Data: Always preview filters with production-like data volumes
- Review Regularly: As business rules change, audit filters to ensure they're still relevant
- Use Dynamic Dates: Prefer "is this week" over specific dates for ongoing reports
- Test User Roles: Login as different users to verify role-based filters work correctly
Common Mistakes to Avoid
| Mistake | Why It's Wrong | Correct Approach |
|---|---|---|
| Using "is" for Multi-Select | Exact match rarely works with multiple selections | Use "contains" for Multi-Select fields |
| Forgetting "is not blank" | Filters show records with NULL values | Add "is not blank" when filtering numeric/date fields |
| Too many OR conditions | Can cause performance issues | Use "contains" with comma-separated values when possible |
| Hard-coding dates | Filters become outdated quickly | Use dynamic date operators like "is this month" |
| Not testing with logged-out users | "is logged in user" fails for public pages | Test both authenticated and public access |
| Ignoring NULL values | Blank fields behave differently than zero | Explicitly handle blank cases when needed |
15. Troubleshooting
Problem: No Records Showing
Possible Causes and Solutions
1. Filters are too restrictive (most common)
- Solution: Temporarily remove filters one at a time to find which one is excluding all records
- Check: Are you using "Match All" (AND) when you should use "Match Any" (OR)?
2. "Is logged in user" filter with no matching records
- Solution: Verify the logged-in user actually has records assigned to them
- Check: Look at the raw data to confirm the connection field links to the user
3. Date filters excluding current data
- Solution: Verify date field actually contains dates (not blank)
- Check: Use "is not blank" on date field to see if dates exist
4. Connection field pointing to wrong table
- Solution: Verify the connection field links to the correct related table
- Check: Review connection field settings in table builder
Problem: Wrong Records Showing
Possible Causes and Solutions
1. OR logic instead of AND logic
- Solution: Check if your filter group uses "Match Any" when it should use "Match All"
- Example: (State is CA) OR (Premium is checked) shows all CA companies regardless of premium status
2. Missing a condition
- Solution: Review your business requirements and add missing filter conditions
- Example: Forgot to add "Status is not Inactive" to exclude inactive records
3. Text matching is case-sensitive
- Solution: Tadabase text operators are case-insensitive, but check for extra spaces
- Example: "Tesla" vs "Tesla " (trailing space) won't match
Problem: Filter Not Updating Dynamically
Possible Causes and Solutions
1. Using static date instead of dynamic operator
- Problem: Filter uses "is before January 1, 2026" which never changes
- Solution: Use dynamic operators like "is before today" or "is this month"
2. Browser caching
- Solution: Clear browser cache or try incognito/private window
- Check: Use browser's hard refresh (Ctrl+Shift+R or Cmd+Shift+R)
3. Component not refreshing after record update
- Solution: Add page rules to reload component after form submissions
- Check: Verify component has "Auto-refresh" enabled if available
Problem: Slow Page Load / Filter Performance
Possible Causes and Solutions
1. Too many nested filter groups
- Solution: Simplify filter logic where possible
- Best Practice: Aim for 2-3 levels of nesting maximum
2. Filtering on unindexed connection fields
- Solution: Contact Tadabase support to add database indexes
- Impact: Connection field filters on large tables need indexes
3. "Is blank" on large tables
- Solution: Reverse logic to "is not blank" if showing fewer records
- Alternative: Use a checkbox field to mark "incomplete" records for faster filtering
4. Displaying too many records
- Solution: Add pagination or record limits (show 25-100 records per page)
- Best Practice: Use search components to let users narrow results
Problem: "Is Logged In User" Not Working
Possible Causes and Solutions
1. User not logged in
- Solution: Verify user is authenticated. Check for login form on the page.
- Note: This filter doesn't work on public pages
2. Connection field points to wrong table
- Solution: Verify connection field links to your Users table
- Check: Connection field must target the table with authenticated users
3. Using "is" instead of "is logged in user"
- Solution: Don't use "is" operator with user connection fields
- Correct: Use the special "is logged in user" operator
Conclusion
Data source filtering is one of the most powerful features in Tadabase. By mastering the filter operators, understanding AND/OR logic, and leveraging special filters like "is logged in user", you can create sophisticated, user-specific data views without writing any code.
Key Takeaways
- Data Source: Determines which table provides your records (cannot be changed)
- Filters: Refine which records display (can be modified anytime)
- Field Types: Each field type has specific operators (text, number, date, connection, etc.)
- Date Filters: Use dynamic operators (is this week, is during the previous 30 days) for ongoing reports
- Connection Filters: Enable user-specific and role-based data access
- Filter Logic: Match All (AND) narrows results, Match Any (OR) expands results
- Nested Groups: Create complex logic with parent and child filter groups
- Performance: Filter by user/role first, use indexes, limit displayed records
- Testing: Always preview filters with real data and different user accounts
Next Steps
Now that you understand filtering, explore these related features:
- Search Components: Let users dynamically filter data
- Display Rules: Show/hide components based on conditions
- Conditional Formatting: Style records based on field values
- Sorting and Grouping: Organize filtered results
- Record Rules: Automate actions when filter conditions are met
If you have questions or need help with complex filtering scenarios, contact Tadabase support or visit the community forum.
We'd love to hear your feedback.