Skip to main content
Record Filters for Users and How to Manage Visibility

Use Record Filters to further refine what users can see in Indigo

Serena Santamaria avatar
Written by Serena Santamaria
Updated over a month ago

⚠️ 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 hidden information. πŸ™ˆ Good job for finding me! 😁

Table Of Content


Introduction

In a company, not all employees hold the same position or need to see data based on the same criteria. Think of yourself as a stylist, crafting a tailored outfit πŸ‘—πŸ‘” for each occasion.

Record Filters are exactly what you need for achieving this, and being more accurate in terms of visibility for each user.

You can access the Record Filters navigating to Administration > Users > highlight a User > click on the Record Filters tab in the top right corner.
​


The Record Filters tab is also available from the User's screen, once you click on the Edit icon ✏️ and then Save βœ”οΈ.
​

⚠️ Caution

Record Filters affect ALL Indigo platform, and not just payroll info. This also includes the leave pages, the Employee Portal, etc.
Besides, if actions need to be taken on behalf of other specific people, these ones won't be visible for users who aren't assigned the proper filters.


Record Filters Screen's Overview

On the top of the page you will be able to consult some User's details such as First Name, Last Name, Email, if it's Active or Locked etc.
​

Right below this section, the Company Selector dropdown allows you to decide to which Company you want to apply the Record Filters for that User.
​

Moving a bit down, you will see Document Type whose value is Employee. Right next to it, you will find the Expression column where you will be able to input the Record Filters conditions.


Assigning Record Filters

To assign Record Filters to a User, you need to formulate an expression, which will be able to reflect your goal 🎯. Currently you can filter based on the fields you can find in the Employee Profiles (Department, Occupation, Code, etc.).

  • First of all, select one of the companies the User is assigned to from the Company Selector dropdown. You can leave 'All Companies' if the filter has to apply to all of them.

  • Single click in the expression field. A dropdown menu will pop up. This will show you a list of fields from the Employee profile, you can build your filter from. You can also start typing it to speed up the search.
    ​

  • Let's say you select 'Location', and hit the space bar key on your keyboard.
    ​

  • Different relational operators will be displayed. Suppose you select IsAnyOf.
    ​

🧠 Pro-Tip

Relational operators (such as IsAnyOf, IsEqualTo, IsGreaterThan, etc.) are used to build the Record Filters' Expressions.
They define a condition based on how a field and its values relate to each other. Essentially, the system will show the relevant records if the specified condition is met, which makes the expression TRUE.
​
​TRUE and FALSE expressions are the core for records retrieval, especially when building more complex conditions using logical operators (AND/OR).
More on them πŸ‘‰ here.
​
Click on the below collapsible πŸ‘‡ to find out more about all the available relational operators.

Relational Operators

IsEqualTo

It's used to determine whether a field meets the equality condition, and shows records if it does.
E.g.

  • Expression: Name IsEqualTo John.

    • John Smith's record will be visible as the expression is TRUE in this case.

IsNotEqualTo

It's used to show all those records for which a field doesn't meet the equality condition.
E.g.

  • Expression: Name IsNotEqualTo John.

    • All employees but those named 'John' will be visible, as the expression is TRUE for them.

IsGreaterThan

Use it to show all those records where a field's value is greater than the one you will insert in the expression.
E.g.

  • Expression: Years in service IsGreaterThan 1

    • John's been working for the company for 5 years.

      • John's record (along with others meeting the condition) will be visible as the expression is TRUE for his case.

IsGreaterThanOrEqualTo

Use it to show all those records where a field's value is greater than or equal to the one you will insert in the expression.
E.g.

  • Expression: Years in service IsGreaterThanOrEqualTo 10

    • Mary's been working for the company for 10 years.

    • Mark's been working for the company for 25 years.

      • Mary and John's records (along with others meeting the condition) will be visible as the expression is TRUE for their case.

IsLessThan

Use it to show all those records where a field's value is lower than the one you will insert in the expression.
E.g.

  • Expression: Years in service IsLessThan 10

    • Mary's been working for the company for 10 years.

    • Sophie's been working for the company for 5 years.

      • Sophie's record (along with others meeting the condition) will be visible as the expression is TRUE for her case.

      • Mary's record won't be visible (expression is FALSE for her)

IsLessThanOrEqualTo

It is similar to 'IsLessThan', but it shows all those records where a field's value is lower than or equal to the one you will insert in the expression.
E.g.

  • Expression: Years in service IsLessThanOrEqualTo 10

    • Mary's been working for the company for 10 years.

    • Sophie's been working for the company for 5 years.

      • Both Mary and Sophie's records (along with others meeting the condition) will be visible as the expression is TRUE for their case.

IsBetween

It shows records if the field's value falls between a specified range.
E.g.

  • Expression: Code IsBetween [002,010]

  • The company practice for Employee Codes is to assign sequential numbers.

  • Assign this Record Filter to Mary.

    • Mary will be able to see only those employees whose code is between 002 and 010.

IsNotBetween

It shows records if the field's value falls between a specified range.

E.g.

  • Expression: Code IsNotBetween [002,010]

  • The company practice for Employee Codes is to assign sequential numbers.

  • Assign this Record Filter to Mary.

    • Mary will be able to see all the employees but those whose code is between 002 and 010.

Contains

Use it to show records whose specified fields contain a certain text, letters or number of your choice.
E.g.

  • Expression: Occupation Contains Warehouse

  • The company has the following occupations:

    • Warehouse associate (John)

    • Warehouse manager (Mark)

    • Head of Department (Lucy)

  • Assign this Record Filter to Mary.

    • Mary will be able to see John and Mark's related records.
      ​

DoesNotContain

It will show all the records not containing a certain text, letters or number in the chosen field.
​

BeginsWith

It will show records whose selected field starts with the defined word.
​

E.g.

  • Expression: Occupation BeginsWith Account

  • The company has the following occupations:

    • Account Manager (Neil)

    • Account Director (Claire)

    • Chief Director (James)

  • Assign this Record Filter to Mary.

    • Mary will be able to see Neil and Claire's related records.
      ​

EndsWith

It will show records whose selected field ends with the defined word.

E.g.

  • Expression: Occupation EndsWith Director

  • The company has the following occupations:

    • Account Manager (Neil)

    • Account Director (Claire)

    • Chief Director (James)

  • Assign this Record Filter to Mary.

    • Mary will be able to see Claire and James' related records.

IsLike

Use it to retrieve records that are similar based on a specific field’s value.
E.g.

  • Expression: Default cost centre code IsLike COST.

  • In the company you have this codes for cost centres:

    • COST 1, COST 2, COST 3 etc.

    • SALE 1, SALE 2, SALE 3 etc.

    • John's Cost Centre is COST 3

    • Mary's Cost Centre is SALE 1

      • Only the records whose Cost Centre is similar to COST will be visible. Thus John's related records will be visible.

IsNotLike

Use it to retrieve records that aren't similar based on a specific field’s value
E.g.

  • Expression: Default cost centre code IsNotLike COST.

  • In the company you have this codes for Cost Centres:

    • COST 1, COST 2, COST 3, MAINCOST etc.

    • SALE 1, SALE 2, SALE 3 etc.

    • ADMIN 1, ADMIN 2 etc.

    • Mary's Cost Centre is SALE 1

    • Carl's Cost Centre is ADMIN 2

    • John's Cost Centre is COST 3

      • Only the records whose Cost Centre isn't similar to COST will be visible. Thus Mary and Carl's related records will be visible.

IsBlank

It shows all those records where the specified field is blank.

E.g.

  • Expression: Request Overtime IsBlank

    • Note: Request Overtime is a checkbox field.

  • Assign the filter to Phil.

    • He will be able to see all those employees who cannot apply for Overtime by themselves.

IsNotBlank

It shows all those records where the specified field has a value, no matter which one.

E.g.

  • Expression: Can apply for leave IsNotBlank

    • Note: Request Overtime is a checkbox field.

  • Assign the filter to Ryan.

    • He will be able to see all those employees who can apply for Overtime by themselves.

IsAnyOf

It accepts any of the values specified for the chosen field to show records accordingly.

E.g.

  • Expression: Academic Level IsAnyOf Diploma Level,Graduate

  • To conduct and internal study, Cecilia needs to see only people whose academic level is either Diploma or Graduate.

    • John's level is Diploma

    • Sue's level is Graduate

    • Connor's level is Doctorate

      • Cecilia will be able to see John and Sue's related records.

IsNoneOf

It accepts any of the values specified for the chosen field to show records accordingly.

E.g.

  • Expression: Academic Level NoneOf Doctorate Level,Never attended School

  • Neil needs to see only people whose academic level is not Doctorate and Never attended School

    • John's level is Diploma

    • Sue's level is Graduate

    • Connor's level is Doctorate

    • Pam's level is Never attended School

      • Neil will be able to see John and Sue's related records.

  • Type the Location values in the squared brackets, divided by a comma. Make sure to spell them exactly as they are recorded in Indigo.

    πŸ—’οΈ Note
    ​
    Depending on the field type you previously selected:
    ​

    • You can manually enter the value the operator has to refer to, as we did above.
      ​

    • A list of available values will show.
      ​

    • For checkboxes the value can only be true (ticked) or false (unticked).
      ​

Hit the space bar again. Two logical operators (AND, OR) are available for selection. Let's pick 'AND' to proceed with this sample expression building.
​

🧠 Pro-Tip

The logical operators are used to connect two or more expressions.
Depending on which operator you pick, records will show or not in the system for the User who has that Record Filter assigned.
​
Both the above logical operators will retrieve records whose conditions are TRUE.
​

Keep reading to learn more πŸ˜‰
​

AND

It requires that both the expressions it connects are TRUE to show records accordingly.

  • TRUE + TRUE = TRUE βœ…

  • TRUE + FALSE = FALSE ❌

E.g.

  • Expression:
    ​
    Department IsAnyOf [Department 1,Department 2] AND Age IsGreaterThan 45
    ​

  • Some Employees' details:
    ​

    • John works in 'Department 1' and is 45 years old.

    • Mary works in 'Department 2' and is 60 years old.
      ​

  • What the system checks:
    ​

    • JOHN ❌
      ​

      • Does John work for any of [Department 1,Department 2]? Yes, he does.
        'Department IsAnyOf [Department 1,Department 2]' expression is TRUE.

      • Is John's Age greater than 45? No, it isn't.
        'Age IsGreaterThan 45' expression is FALSE.
        ​
        Since we used AND, we need both expressions to be TRUE. This means that John's record WON'T show ❌ for the User who has this Record Filter assigned.
        ​

    • MARY βœ…
      ​

      • Does Mary work for any of [Department 1,Department 2]? Yes, she does.
        'Department IsAnyOf [Department 1,Department 2]' expression is TRUE.

      • Is Mary's Age greater than 45? Yes, it is.
        'Age IsGreaterThan 45' expression is TRUE.
        ​
        ​Mary's record WILL show βœ… for the User who has this Record Filter assigned as both expressions are TRUE .

OR

It requires that at least one or both the expressions it connects are TRUE.

  • TRUE + TRUE = TRUE βœ…

  • TRUE + FALSE = TRUE βœ…

  • FALSE + FALSE = FALSE ❌

E.g.

  • Expression:
    ​
    Department IsEqualTo Department 1 OR Location IsAnyOf [New York,Rio de Janeiro]
    ​

  • Some Employees' details:
    ​

    • John works in 'Department 1' in New York.

    • Mary works in 'Department 1' in Berlin.

    • Sophie works in 'Department 2' in Berlin.
      ​

  • What the system checks:
    ​

    • JOHN βœ…
      ​

      • Is John's Department equal to 'Department 1'? Yes, it is.
        'Department IsEqualTo Department 1' expression is TRUE.

      • Is John's Location any of [New York, Rio de Janeiro]? Yes, it is.
        'Location IsAnyOf [New York,Rio de Janeiro]' expression is TRUE.
        ​
        Since we used OR, we need at least one or both the expressions to be TRUE. This means that John's record WILL show βœ… for the User who has this Record Filter assigned.
        ​

    • MARY βœ…
      ​

      • Is Mary's Department equal to 'Department 1'? Yes, it is.
        'Department IsEqualTo Department 1' expression is TRUE.

      • Is Mary's Location any of [New York, Rio de Janeiro]? No, it isn't.
        'Location IsAnyOf [New York,Rio de Janeiro]' expression is FALSE.
        ​
        Since we need at least one or both the expressions to be TRUE. This means that Mary's record WILL show βœ… for the User who has this Record Filter assigned.
        ​

    • SOPHIE ❌
      ​

      • Is Sophie's Department equal to 'Department 1'? No, it isn't.
        'Department IsEqualTo Department 1' expression is FALSE.

      • Is Sophie's Location any of [New York, Rio de Janeiro]? No, it isn't.
        'Location IsAnyOf [New York,Rio de Janeiro]' expression is FALSE.
        ​
        ​Sophie's record WON'T show ❌ for the User who has this Record Filter assigned.
        ​

  • Select another value (e.g. Department) along with 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.
    ​

πŸ˜ƒ Congratulations! You successfully created a Record Filter for the selected company and Users.
​


The filter you have 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.


Other Methods to Manage Visibility and Accessibility in Indigo

There are currently many tools you can use in Indigo to control what a User can see and do within the system:
​​

  • Permission Sets: Key functions in Indigo are linked to a specific permission, which determines if Users can access that function and to what extent.
    ​

  • User Roles
    ​
    User Roles can give you access to specific tools, but they can also give you accessibility to the full list of Employees (which can be narrowed down using Record Filters).
    ​

    • Administrator - Gives Access to Administration Tools

    • HR Administration - Gives Access to HR Tools

    • Payroll User - Gives Access to full Employee viewership, does not give access to salaries and payroll (unless permissions are given)

    • Portal User - Gives access to the Employee Portal/Dashboard
      ​

  • System Filters: they are used to decide what to show in the current page. They usually affect what is displayed in the grid views.
    ​

πŸ’­ Keep In Mind

Permissions have the most significant impact on what you can see and especially do within a module. If correct permissions are not assigned, you might not even be able to see a module displayed in the platform regardless of the Role you have.
It happens that they need to be crossed assigned to provide a wider spectrum of accessibility and action, but they might also need to be paired with a specific Role.
​
Let's take the example of full permissions for the Skills&Training feature.

  • HR_Skills

  • FoundationTenant_HRMenu

  • HR_DM_AllEmployees

  • HR_Employee

  • HR_ESTSetup

  • HR_Training
    ​

    [+ Payroll User role]

The FoundationTenant_HRMenu permission is mandatory, since it shows the HR module on the left side menu. Without it, you won't be able to see it, nor obviously access its features such as Skills&Training.
The HR_ESTSetup permission will make the Setup section appear in the feature otherwise you won't be able to see it nor access it.

The Payroll User role is required to access the Skills&Training feature. While the feature will show up in the HR module if you assign the above permissions; if you don't assign the Payroll User role too, you will get an error message when clicking on the feature πŸ‘‡.
​
​

Now we know that the Payroll User role also provides a full view of Employees. However, if this is not what you are aiming forβ€”but at the same time the Payroll User role is required to the Skills&Training featureβ€”then Record Filters will be your best friends to narrow that list down πŸ˜„.


Useful Examples

Below a scenario you might find useful to better understand how Record Filters cooperate with the methods we saw above, and how they influence Indigo.

Filtering Scheduler View for Managers

Clients will often ask to filter their Head Of Departments Scheduler by Department or any other filter. To achieve this both Record Filters and proper Permissions have to be assigned to the corresponding Users.

  1. Setup Record Filters for each Head Of Departments or Manager Users. To do so:
    ​

    1. Go to Administration > Users.

    2. Highlight the user of the Manager.

    3. Click Record Filters on the top right.

    4. Select the company from the drop down in which you wish to filter, select all companies if you want this filter to work across all companies.

    5. Input the following formula: Department IsAnyOf [X,Y]. 'X' and 'Y' are just reference values, thus enter your own values.

    6. You can change Department to any other field if needed such as DefaultCostCentre

  2. Assign the Scheduler Permission to the Users. To do so:
    ​

    1. Go to Administration > Users.

    2. Highlight the user of the Manager.

    3. Click the Edit button.

    4. Tick Scheduler in the third column at the bottom under permissions.

    5. Save.
      ​

πŸ—’οΈ Notes

  1. If users need a full view for the Scheduler, Step 1 can be skipped.

  2. If Step 1 is done, users won't be able to see other employees which are not included in the filter, including themselves. Hence, they won't be able to apply for others' leave nor their own. This can be rectified by changing the formula as follow:
    ​Department IsAnyOf [X,Y] or Code IsAnyOf [Z] (where 'Z' is their own employee code).

Did this answer your question?