⚠️ Notice: We use hyperlinks and collapsible sections in this article. Click them to access different parts of the article, or resources and media such as related articles, video tutorials, and web pages.
I am a collapsible section. Click me to show my information!
I am a collapsible section. Click me to show my information!
Table Of Contents
Introduction
In a company, not all employees hold the same position or need to see data based on the same criteria. Besides this being a matter of efficiency, there are also ethical and sensitivity concerns to consider. That's why we have Record Filters in Indigo.
Just like a perfectly fitted suit 👔 made to match one person’s unique needs, these filters ensure that users only see the data that’s relevant to them—nothing more, nothing less.
This keeps things clean, secure, and perfectly aligned with each role’s responsibilities, especially in larger organisations where different teams should only view their own data.
Keep reading to learn more.
⚠️ Caution
Record Filters affect ALL the Indigo platform. This includes the leave pages, the Employee Portal, and every other module and feature in Indigo.
When taking action on behalf of other people, those actions won't be visible for users who aren't assigned the proper filters.
The Record Filters Screen Explained
To access the User Record Filters:
Go to Administration > Users.
Highlight a user in the grid.
Select the Record Filters tab in the top right corner.
<<replace screenshot>>
Alternatively, click on Edit ✏️ in the User's screen and then click Save ✔️.
At the top of the User Record Filters page, you'll see several details about the specific user, such as First Name, Last Name, Email, if it's Active or Locked, and more.
Right below this section, the Company Selector dropdown shows for which companies you can apply Record Filters for that User.
In the next section is a bar where the filter condition is built, which is split in two parts:
Document Type: set to Employee by default.
Expression: the workspace in which to compose the filter's conditions by combining fields with operators.
More on operators 👇below.
The Operators
Before we dive into the fun part—assigning filters and making everyone happy—it’s worth taking a moment to get acquainted with the world of Operators. These are the tools that let you build both simple and complex condition expressions, and play a big role in shaping what you see.
There are two main types of operators:
Relational Operators
Logical Operators
Relational Operators
Relational operators (such as IsAnyOf, IsEqualTo, IsGreaterThan, etc.) define a condition based on how a field and its values relate to each other.
The system will show the relevant records when the specified condition is met—making the expression TRUE.
TRUE and FALSE expressions are the core for record retrieval, especially when building more complex conditions using logical operators (AND/OR).
You can find out more in the 👇 Logical Operators section of this article.
For example, let's say you want to view all employees who've been working with the company for at least 10 years or more.
Knowing that Mary's been working for the company for 10 years and Mark for 25, here's how you would build your expression:
Expression: Years in service IsGreaterThanOrEqualTo 10
Outcome: Mary and John's records (along with any other employees meeting the condition) will be visible as the expression is TRUE for them.
👈 Expand for the full list of available relational operators.
👈 Expand for the full list of available relational operators.
Relational Operators | Sample Expression | Visibility Outcome Examples |
IsEqualTo
IsNotEqualTo | Name IsEqualTo John
Name IsNotEqualTo John. | John Smith, John Meyer etc.
Mary Clarkson, Luke White etc. |
IsGreaterThan | Years in service IsGreaterThan 1 | All employees working for the company for MORE THAN one year. |
IsLessThan
IsLessThanOrEqualTo | Years in service IsLessThan 10
Years in service IsLessThanOrEqualTo 10 | All employees working for LESS THAN 10 years.
All employees working UP TO 10 years. |
IsBetween IsNotBetween | Code IsBetween [002,010]
Code IsNotBetween [002,010] | Mary (003), up to Brian (009).
John (001), Katy (011), Celine (012), and the other codes above 010. |
Contains
DoesNotContain | Occupation Contains Warehouse
Occupation DoesNotContain Warehouse | Mary (Warehouse associate), Will (Warehouse manager), etc.
Carl (Head of Department) etc. |
BeginsWith
EndsWith | Occupation BeginsWith Account
Occupation EndsWith Director | Neil (Account Manager), Claire (Account Director), etc.
James (Chief Director) etc. |
IsLike
| Default cost centre code IsLike COST
Default cost centre code IsNotLike COST | John (COST 2), Karen (MAINCOST) etc.
Seth (SALE 1), Ally (ADMIN 2), etc. |
IsBlank
IsNotBlank | Request Overtime IsBlank
Can apply for leave IsNotBlank | All the employees having the Request Overtime checkbox unticked.
All the employees having the Can apply for leave checkbox ticked. |
IsAnyOf
| Academic Level IsAnyOf Diploma Level,Graduate
Academic Level NoneOf Doctorate Level,Never attended School | Alan (Diploma Level), Damian (Graduate), etc.
Pam (Diploma Level), Sue (Graduate), etc. |
Logical Operators
Logical operators help you combine multiple conditions into a single expression. Depending on the operator—like AND or OR—records will appear if all conditions are met, or if just one is enough.
When one ore more conditions are met (depending on the logical operator) they are considered ✅ TRUE.
AND: requires that both connected conditions are TRUE to show records.
TRUE + TRUE = TRUE ✅
TRUE + FALSE = FALSE ❌
OR: requires that at least one OR both the connected conditions are TRUE to show records.
TRUE + TRUE = TRUE ✅
TRUE + FALSE = FALSE ✅
FALSE + TRUE = TRUE ✅
FALSE + FALSE = FALSE ❌
Whether the conditions are joined by AND or OR, the system evaluates each one to determine if it is TRUE or FALSE. It then combines the results based on the specified logical operator and displays the data accordingly.
👈 Expand to better understand how logical operators behave in Indigo.
👈 Expand to better understand how logical operators behave in Indigo.
Let's see a couple of examples in the the table below, where ✅ = TRUE and ❌ = FALSE.
Logical Operators | Sample Expression | Examples | Scanning Process | Outcome |
AND | Department IsAnyOf [Department 1,Department 2] AND Age IsGreaterThan 45 |
|
|
|
OR | Department IsEqualTo Department 1 OR Location IsAnyOf [New York,Rome] |
|
|
|
Assigning Record Filters
Now that you know the basics, you're ready to create and assign Record Filters.
To do that, you need to build the expression that will reflect your 🎯goal.
Select one of the companies the user is assigned to from the Company Selector dropdown. (Choose 'All Companies' if the filter has to apply to all of them.)
Start typing or click once in the Expression field to see a list of selectable fields.
At this stage, hit the space bar key on your keyboard to display the list of relational operators.
Type the Location's values in the squared brackets, divided by a comma.
Hit the space bar again. Two logical operators (AND, OR) are available for selection. Let's pick 'AND' to proceed with this sample expression.
Select another value (e.g. Department) and an operator (e.g. IsEqualTo) to build a more complex expression (if needed).
Pick a value to pair with the operator. (e.g. SALES)
Click on the Save Filter ✔️ button on the far right of the Expression field.
Result
😃 Congratulations! You successfully created a Record Filter for the selected company and Users.
The filter you've just created will show records where the Location AND the Department are respectively New York (or Rio) and SALES.
🗒️ Note
It is possible to create dedicated Record Filters for each company assigned to the same user. Once you save the expression for the selected company, just choose another one from the Company Selector dropdown. Now, simply repeat the above process according to your needs.
Related Articles














