« Workaround if persona… | Home | 14 FileMaker Conferen… »

Using Feature Flags in FileMaker: A Smarter Way to Manage Features

Feature flags (also known as feature toggles) are a powerful technique in modern development. They allow you to turn features on or off dynamically—without modifying scripts or deploying updates. While widely used in web and SaaS platforms, this strategy works extremely well in FileMaker, especially when building scalable, multi-user solutions or managing access to licensed features.

🔧 What Are Feature Flags?

A feature flag is a logic switch—usually backed by a database field, global variable, or privilege set—that determines whether a feature should be enabled for a particular user, context, or deployment.

Common use cases in FileMaker include:

  • Gradually rolling out new layouts or modules.
  • Restricting beta features to internal testers.
  • Enabling features based on what the client paid for.
  • Temporarily disabling a broken feature without removing it.
  • Personalizing features by user role or organization.

🗂 Where to Store Feature Flags in FileMaker

1. FeatureFlags Table

Create a table with fields like FeatureName, IsEnabled, and optionally CustomerID or UserID.

FeatureName IsEnabled CustomerID
AdvancedReports 1 123
NewDashboard 0
ExportToExcel 1 456

Query this table at runtime using ExecuteSQL or a relationship to control visibility and behavior.

2. Global Variables (set on startup)

If you load all relevant flags at login, you can store them as global variables:

Set Variable [ $$Feature_AdvancedReports ; Value: 1 ]

This makes checks fast and avoids repeated queries to the database.

3. Based on Licensing (Client Purchases)

Use feature flags to enforce license tiers. If a client hasn’t paid for a module, don’t enable it. This can be driven by:

  • A field in the Customers or Settings table
  • A join table between Customers and Features
  • Conditional scripting and layout logic based on those flags

4. Extended Privileges

FileMaker’s extended privileges can also act as secure feature flags.

  1. Create a new extended privilege like fmfeature_reports.
  2. Attach it to appropriate privilege sets.
  3. Use PatternCount to check it in a script:
If [ PatternCount ( Get ( ExtendedPrivileges ) ; "fmfeature_reports" ) > 0 ]
  Perform Script [ "Run Advanced Report" ]
Else
  Show Custom Dialog [ "Access Denied" ; "You don’t have access to this feature." ]
End If

🧪 Example: Switching Layouts with a Feature Flag

Say you're developing a new customer dashboard but want to limit access during testing.

Step 1: Add to FeatureFlags table

FeatureName IsEnabled
NewCustomerDashboard 1

Step 2: Script logic

Set Variable [ $flag ; Value: ExecuteSQL (
  "SELECT IsEnabled FROM FeatureFlags WHERE FeatureName = ?" ; "" ; "" ; "NewCustomerDashboard" ) ]

If [ $flag = 1 ]
  Go to Layout [ "Customer Dashboard v2" ]
Else
  Go to Layout [ "Customer Dashboard v1" ]
End If

📈 Benefits of Feature Flags in FileMaker

  • ✅ Gradual rollouts with limited risk
  • ✅ License enforcement for paid features
  • ✅ Security using extended privileges
  • ✅ Flexibility without re-deploying
  • ✅ Quick deactivation of buggy scripts

⚠️ Best Practices

  • Document all flags and their purposes.
  • Clean up retired flags regularly.
  • Secure flag values—don’t store them where users can easily change them.
  • Centralize checks with utility scripts or functions.

🏁 Final Thoughts

Feature flags are a simple yet powerful technique for building more agile, maintainable FileMaker solutions. Whether you're segmenting by user, role, license, or privilege set, feature flags help you release safely, iterate faster, and control access precisely.

Want help designing a feature flag system for your FileMaker app? Reach out or leave a comment—we’d love to assist!

Claris FileMaker Plugin
03 05 25 - 08:48