Skip to main content

Feature Flag Variations: Structured Values for Multivariate and JSON Workflows

· 4 min read
Csilla Kisfaludi
Tech support by day, movie addict by night, crazy cat lady 24/7.

If you’ve ever wished your feature flag values worked more like enums, this update is for you.

Over the past years, we kept hearing the same request in different forms:

  • “Can we have enum-like values for feature flags?”
  • “Can we avoid people mistyping values?”
  • “Can we define JSON values once and just select it?”
  • “Can we separate flag definitions from rollouts?”

This usually came up when teams started using multivariate feature flags or working with more complex JSON feature flags.

Free-form values are flexible. But when feature flags become operational tools, toggled by Customer Success, Sustainment teams, or junior teammates, flexibility without guardrails becomes a risk.

So we built Predefined variations.

ConfigCat Predefined Variations cover image

What Are Feature Flag Variations?

Predefined variations let you define your possible feature flag values upfront. Instead of typing the value manually every time you create a targeting rule, you select it from a dropdown.

Each variation includes:

  • Served value – the actual value returned to your application (including full JSON)
  • Display name – a human-readable label
  • Hint (optional) – guidance for when to use it

In other words: define once, reuse safely.

If you’ve been looking for a way to implement a feature flag enum directly in the dashboard, this is it.

ConfigCat Create Predifined Variations

Managing JSON Feature Flags Without Copy-Paste Drift

Predefined variations are particularly useful for JSON feature flags.

Instead of embedding the full JSON object in every targeting rule, you define it once as a variation. That variation can then be reused consistently across environments and segments.

For example:

{
"display_name": "Red Banner - Planned Outage",
"hint": "Use during confirmed production incidents",
"served_value": {
"background_color": "red",
"label": "Planned outage"
}
}

Targeting rules then reference the variation by intent, not by repeating raw configuration.

This approach:

  • Reduces duplication
  • Improves clarity in overview screens
  • Prevents small inconsistencies between environments
  • Makes flags safer for operational teams

Definitions remain structured. Rollouts remain clean.

Supporting Multivariate Feature Flags and Enum Workflows

Many teams use multivariate feature flags where values correspond to specific states in their application code. Often, these are mapped to enums on the backend.

With Predefined variations, the dashboard now mirrors that structure. Instead of typing arbitrary text or number values, you define the allowed options once and reuse them safely.

This reduces the chance of mismatched values and ensures consistency between the control plane and application logic.

Converting Existing Feature Flags

Predefined Variations can be enabled on existing flags. When converting from free-form values to variations, the system automatically collects currently used values and suggests them as predefined options. You can then refine display names and hints.

You can also convert back to free-form values if needed. These conversions do not affect deployed applications.

When to Use Predefined Variations

Predefined variations are a good fit when:

  • You manage multivariate feature flags
  • You reuse complex JSON configurations
  • Non-engineers toggle production flags
  • You want enum-like control in the ConfigCat Dashboard
  • Consistency across environments matters

Free-form values remain available for simple use cases. Variations add structure where structure reduces risk.

Available in All Plans

Predefined variations are available across all ConfigCat plans. They extend feature flag value management without adding complexity to rollout workflows.

Feature flags are meant to reduce deployment risk and improve operational control. As teams scale their usage, adding structure to feature flag values becomes a natural next step.

If you have feedback, we listen. Many of the improvements in this release came directly from customer conversations.

You can also stay up-to-date with us on X, GitHub, LinkedIn, and Facebook.