Hi everyone,
I’m trying to design a classification system on the Contact table in Dynamics 365, and I’d like opinions on the best architecture before I build it.
What I need
I want to create two fields on Contact:
-
Classification — a list of tags (ideally multi-select)
-
Sub-Classification — a second field that only shows values depending on what is selected in Classification
So Sub-Classification should basically be a filtered subset based on Classification.
Option 1 – Two independent choice fields
Use:
-
Classification: multi-select choice
-
Sub-Classification: multi-select choice
Pros:
-
Simple to configure
-
Easy for admins to maintain
Cons / worries:
-
No real relationship between the two fields
-
No built-in filtering (user can pick any Sub-Classification regardless of Classification)
-
Users may not understand which Sub-Classification values “belong” to which Classification
-
When building segments, users might get confused because the system doesn’t enforce the hierarchy, and they may create odd combinations
I’m worried this will lead to inconsistent data and confusing segment definitions.
Option 2 – Lookup tables with hierarchy
Use two custom tables:
-
Classification table
-
SubClassification table with a lookup to Classification (parent/child)
On Contact:
-
Classification = lookup to Classification table
-
Sub-Classification = lookup to SubClassification table
This gives me a proper relational model where each Sub-Classification row is tied to one Classification.
Pros:
-
Clean relational design
-
Can in theory filter Sub-Classification by selected Classification
-
Easier to report on and extend later
-
Potentially better for security/visibility
Cons / worries:
-
More complex for non-technical users
-
Users building segments now have to understand that these are lookups and how they relate
-
Might require training/explanations
Specific concern with Option 2 – How to filter the second lookup?
With the lookup approach, I’m not sure what the best technical pattern is to show only the related Sub-Classification values after the user picks a Classification.
Questions:
-
Should I use a filtered lookup based on a specific view that filters Sub-Classification where
Classification = selected Classification? -
Does this typically require custom JavaScript on the form to dynamically filter the Sub-Classification lookup when Classification changes?
-
Is there a recommended way to do this in the modern app / Power Apps form designer without custom code?
-
Any best practices (or PCF controls) people use for this kind of hierarchical tagging?
Overall worries
-
If I choose two flat choice fields (Option 1), I get simpler UX but risk bad data and confusing segments.
-
If I choose relational lookup tables (Option 2), I get a cleaner model but:
-
I’m not sure of the best way to implement the filtered child lookup (view vs JS vs other)
-
I’m not sure if end users will understand how to use these fields when building segments
-
Looking for advice
-
Which approach have you found more successful in real projects?
-
For Option 2, what’s the recommended way to:
-
Filter the Sub-Classification lookup
-
Keep the UX simple for users who build segments
-
Any concrete examples or screenshots would be highly appreciated.
Thanks in advance for your insights!


Report
All responses (
Answers (