Use dynamic filters when one Multiple Classes block contains classes whose available choices depend on earlier answers. Instead of creating separate blocks and conditional branches, you can keep the choices in one block and disable filter options that do not lead to a matching class.
For example, after a client selects a location, programs that are not offered at that location remain visible but cannot be selected.
Add the classes to a Multiple Classes block and configure the filter options that should show each class. Dynamic availability depends on these class mappings, so every usable option must be linked to at least one class.
You need permission to edit the form.
The Selection type menu is available whether or not dynamic filtering is enabled. It controls only how many answers the client can select in that filter.
When dynamic filtering is enabled, each filter is limited by the selections made in the filters above it. A later filter never limits an earlier filter.
Suppose Location appears before Program:
Put the filter that should control the others first. Use Reorder if the dependency works in the wrong direction.
When a filter allows multiple selections, options selected in that filter are combined. For example, selecting two locations keeps classes from either location.
Selections in different filters must describe the same class. For example, a class must match both the selected location and the selected program to remain available.
Unavailable options stay visible and appear disabled. This lets clients see that the option exists but is not available with their earlier selections. The list of matching classes is refreshed as the client changes a filter.
An option that is not mapped to any class is always unavailable.
Dynamically disable unavailable filter options is off by default. Existing forms keep their previous filter behavior unless you enable it in that block.
Changing a filter's Selection type can still change how that existing form accepts answers, even while dynamic filtering is off. Leave it set to Use block setting to preserve the block's current checkbox or single-selection behavior.
If an option is disabled unexpectedly:
If a selected answer disappears after another filter changes, no class matches that combination. Update the class mappings if the combination should be available.