Tip: Role-driven drop-down filtering

Control what users see in drop-downs based on their role or company, ensuring each person only accesses relevant options for their responsibilities.

When multiple departments or external partners use the same app, you don’t want everyone seeing every option in your drop-downs. A marketing manager shouldn’t see engineering project codes, and contractors shouldn’t access internal employee resources. Smart drop-down filtering based on user identity solves this automatically.

In private apps, drop-down options can adapt to who’s signed in, showing only what’s relevant to their role or organization. This goes beyond filtering based on user selections (covered here) — the app knows who the user is and adjusts accordingly.

Filtering by role

User roles are typically managed through tags assigned to each person when they’re granted app access. For our project management example, let’s say users have either Employee or Contractor tags.

Consider this project resource table, stored in a hidden form screen named ProjectResources and created using our data editor:

ResourceName Category AccessRole
Customer Database Access Data Systems Employee
Internal Wiki Documentation Employee
Project Asset Library Shared Resources Contractor
Contractor Guidelines Documentation Contractor
Shared Calendar Scheduling Employee
Public Templates Shared Resources Contractor

To display only the resources available to the signed-in user, associate this formula with the Values property:

FILTER(ProjectResources!ResourceName, USERHASTAG(ProjectResources!AccessRole))FILTER(ProjectResources!ResourceName; USERHASTAG(ProjectResources!AccessRole))

The FILTER function returns a subset of the ResourceName column based on a logical test. For each row, USERHASTAG checks if the signed-in user has the tag specified in the AccessRole column. When TRUE, that resource name appears in the drop-down. When FALSE, it’s excluded.

Employees see “Customer Database Access,” “Internal Wiki” and “Shared Calendar,” while contractors see “Project Asset Library,” “Contractor Guidelines” and “Public Templates.”

Filtering by company

If you don’t use role tags, company affiliation works just as well. Many organizations identify users by their email domain, automatically determining which company they represent.

Here’s a client project table stored in a form screen named ClientProjects:

ProjectName ProjectType ClientDomain
Website Redesign Q1 Design acmecorp.com
Mobile App Development Development acmecorp.com
Brand Guidelines Update Strategy techstartup.io
E-commerce Platform Development techstartup.io
Marketing Automation Strategy globalmfg.com
Supply Chain Dashboard Analytics globalmfg.com

To show only projects relevant to the user’s company, use this formula:

FILTER(ClientProjects!ProjectName, ENDSWITH(App.UserEmailAddress, "@" & ClientProjects!ClientDomain))FILTER(ClientProjects!ProjectName; ENDSWITH(App,UserEmailAddress; "@" & ClientProjects!ClientDomain))

This works similarly to role-based filtering. The ENDSWITH function checks if the user’s email address ends with “@” plus the domain from the ClientDomain column. Users from acmecorp.com see only their website and mobile projects, while techstartup.io users see their brand and e-commerce work.

This approach eliminates the need to manually assign company tags — the system determines affiliation automatically from email addresses, reducing administrative overhead while maintaining strict access control.


Note: This technique requires named values, which are not available in our Starter plans.

« Tip: Filter drop-downs with optional criteria Tip: Dynamic drop-down sorting »