β οΈ 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!
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
Relational Operators
IsEqualTo
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
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
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
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
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
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
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
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
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
DoesNotContain
It will show all the records not containing a certain text, letters or number in the chosen field.
β
BeginsWith
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
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
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
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
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
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
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
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:
β
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
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
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.
Setup Record Filters for each Head Of Departments or Manager Users. To do so:
βGo to Administration > Users.
Highlight the user of the Manager.
Click Record Filters on the top right.
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.
Input the following formula: Department IsAnyOf [X,Y]. 'X' and 'Y' are just reference values, thus enter your own values.
You can change Department to any other field if needed such as DefaultCostCentre
Assign the Scheduler Permission to the Users. To do so:
βGo to Administration > Users.
Highlight the user of the Manager.
Click the Edit button.
Tick Scheduler in the third column at the bottom under permissions.
Save.
β
ποΈ Notes
If users need a full view for the Scheduler, Step 1 can be skipped.
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).