TL;DR
OpenClaw now ships first class feature flags and remote configuration so growth teams can control workflow automation at run time without redeploying code. You can target cohorts, expose new steps to small percentages, tune model parameters from a dashboard, and roll back to safety in seconds. Flags and configs are versioned, auditable, and integrated with existing rollout tooling. If you ever shipped a risky change on a Friday, this release turns that into an easy, reversible experiment.
What We Shipped
OpenClaw adds two new control planes that plug directly into your automation playbooks:
- Feature flags: boolean and multivariate toggles evaluated per execution with percentage rollouts, cohort targeting, and a global kill switch.
- Remote config: typed values that steps read at run time, including strings, numbers, and JSON objects for prompts, thresholds, and API endpoints.
Both surfaces live alongside playbooks in the same workspace, inherit role based access, and write to the same audit log. This means your operators can manage exposure, change values, and reverse course quickly while engineers keep logic clean. It also means features can be shipped dark and revealed safely to narrow audiences before a broader release.
To see where these fit within the product, skim the AI marketing automation features on what ButterGrow does and how flags complement existing controls such as progressive rollouts, dry runs, and approvals. If you are new to the product experience, you can also orient on ButterGrow's platform for a quick overview of the hosted OpenClaw assistant.
Why It Matters for Marketing Teams
Marketing programs move fast. Copy variants, model settings, and API behavior change weekly, and launches rarely line up with engineering windows. Feature flags and remote config give teams the ability to tune behavior without waiting on a deploy train or asking for emergency access.
Here are concrete outcomes we see in daily operations:
- Fewer after hours deploys because risky changes ship dark, then flip on during staffed hours.
- Lower blast radius because exposure ramps gradually and can pause instantly.
- Faster iteration because prompts, temperature settings, and thresholds change from a dashboard rather than a pull request.
- Clearer accountability because every toggle and value change is versioned with a user, timestamp, and reason.
This release pairs especially well with our write safe tooling. If you have not adopted them yet, read the walkthrough on how diff and dry run protect changes and combine those checks with targeted exposure when you ship new experiences.
How It Works in OpenClaw
Flags and config are accessed as built in context inside runner steps. You can evaluate a boolean, fetch a variant value, or read a JSON blob with a single reference. Below are common patterns.
Step 1Define your flags and config
Create entries in the workspace Flags and Config panels. For reproducibility, definitions are part of your workspace state and export with playbooks.
# flags.yaml (conceptual)
- key: content_generator.enabled
type: boolean
rules:
- if: plan_tier == "pro"
then: true
- if: country in ["US", "CA", "GB"]
then: rollout(20) # 20 percent exposure
- default: false
- key: subject_line.variant
type: multivariate
variants:
- name: A
weight: 50
- name: B
weight: 50
# config.yaml (conceptual)
- key: content.prompt
type: json
value:
system: "Write a concise email subject under 45 characters."
temperature: 0.3
max_tokens: 64
- key: api.timeout_ms
type: number
value: 4000
Step 2Use flags and config inside steps
You can reference these values in conditional branches and tool parameters. The example below shows a content generator gated behind a toggle with variant specific prompt tuning.
# playbook.yaml (excerpt)
steps:
- id: maybe_generate_subject
if: flags["content_generator.enabled"]
uses: tools.llm.generate
with:
prompt: configs["content.prompt"].system
temperature: configs["content.prompt"].temperature
max_tokens: configs["content.prompt"].max_tokens
variant: flags["subject_line.variant"]
- id: send_email
uses: tools.email.send
with:
subject: steps.maybe_generate_subject.output or inputs.fallback_subject
timeout_ms: configs["api.timeout_ms"]
Step 3Target identities and persist assignments
Flags evaluate against a run identity so targeting stays sticky for a person or account. You define the identity via a deterministic key such as contact_id, account_id, or campaign_id.
# identity.hcl (conceptual)
identity_key = inputs.contact_id or inputs.account_id
Assignments are persisted for consistency. If a contact is bucketed into variant B, they continue to see B on future runs unless you explicitly expire assignments.
Step 4Roll out gradually and monitor
You can dial exposure by percentage, cohort, or schedule. For a new generator, start at 5 percent on Pro plans, then move to 25 percent, then to 50 percent. Monitor error rate, latency, and conversion lift in the run analytics before going wider. If you want a full primer on high confidence exposure, our write up on progressive rollouts in OpenClaw covers patterns to reduce risk while you grow reach.
Step 5Tune values without redeploying
Remote config turns operational switches into a few safe values that can change frequently. You might:
- Increase a request timeout for a flaky API during a partner outage.
- Lower model temperature as a seasonal promotion starts to keep copy consistent.
- Swap a URL from staging to production when promo pages go live.
All of these edits are versioned with who changed what and why. If the effect is not as expected, you can roll back the value to the prior version in seconds.
Safety by Design
Flags and config are integrated with the same controls that keep your automations reliable:
- Kill switch per flag to return to a safe baseline instantly.
- Versioned changes with previews in the diff view prior to shipping.
- Dry run checks that simulate targeting against real identities.
- Audit logs that record who changed exposure and values.
If a change degrades performance, flip the switch to off for the affected feature and confirm stability in analytics. When you are ready to try again, ramp up exposure in small increments. Pair this with clear deployment windows and you eliminate surprise regressions that used to require rollbacks at odd hours.
Common Use Cases
We built flags and config to solve concrete problems our users hit every day:
- Gradual exposure for a new AI subject line generator with holdouts for measurement.
- Seasonal rules that switch promo copy by region and language without branching logic.
- Parameter tuning for model calls such as temperature, top p, and max tokens.
- Safe partner migrations by routing a small percentage of webhooks to a new endpoint.
- Emergency shutdown for sensitive flows such as payment retries if error rates spike.
- Controlled experiments on email cadence by plan tier or lifecycle stage.
Comparisons and Tradeoffs
Not every release control is equal. Use the table to pick the right tool for the job.
| Control | Best for | Pros | Cons |
|---|---|---|---|
| Feature flags | Gating new behavior and experiments | Real time control, targeting, kill switch | Must manage flag lifecycle and cleanup |
| Remote config | Tuning parameters and copy | No code changes for value edits, typed validation | Do not change control flow, requires discipline |
| Branching playbooks | Different logic paths | Clear separation, versioned alongside code | Harder to compare outcomes, deploy needed to change |
| Environment variables | Secrets and rare changes | Simple, visible at deploy time | Static until redeploy, no targeting |
Governance and Access
Flags and config respect workspace roles. Editors can propose changes and Owners approve. Everything is captured in the audit trail. If you need more background on how we gate automation changes across a team, review the capabilities listed in the AI marketing automation features section. That overview shows how roles, approvals, and observability combine to create safer operations.
Getting Started Today
You can add your first flag in minutes. Define a boolean toggle for a generator, gate the step in your playbook, and start at 5 percent exposure for Pro accounts. If you want a walkthrough that bundles setup, sample rules, and a few testing tricks, head to the onboarding flow and get started in minutes. For wider context and adjacent techniques, explore more from the ButterGrow blog on reliability and measurement.
To keep the glossary tight: a flag is a rule that returns a variant per identity at run time and a config is a typed value read by a step. Both are versioned artifacts alongside your playbooks.
Example: Remote Config for Prompt Tuning
Content tone often changes by season or campaign. Here is a pattern that keeps prompts flexible without code edits.
{
"content.prompt": {
"system": "Write a concise subject that highlights free shipping.",
"temperature": 0.2,
"max_tokens": 48
}
}
Reference the values inside your generator step and adjust in the panel as campaigns rotate. You can also store multiple prompt objects such as content.prompt.black_friday and switch which key is active via a single boolean flag. This is powerful when you plan a big launch and want the switch on a schedule instead of a deploy.
Measurement and Holdouts
Flags make it easy to keep a clean control. Assign 10 percent of your audience to a holdout that sees the existing experience and compare conversion lift against the exposure group. Use consistent identities so the same person remains in their cohort across multiple sends. Combine this with your standard attribution to calculate lift without bias from churn in assignments.
Operational Tips
The following tips come from early adopters running high volume programs:
- Keep flag names short and descriptive. Use
feature_area.action.enabledlikecontent_generator.enabled. - Add an expiry date to every experimental flag and schedule cleanup during sprint planning.
- Separate kill switches from experiments. A kill switch uses a clear boolean like
payments.retry.enabledwith a default of true. Experiments should have their own keys. - Record a simple reason for each change in the audit note so future readers can trace intent.
- Store remote config in small, focused keys. Do not pack unrelated values into a single JSON blob.
Ready to try this in your own automations with OpenClaw running under ButterGrow. Visit the onboarding guide to get started in minutes and ship your first controlled rollout with flags and config today. If you need a quick refresher on capabilities, browse the AI marketing automation features to see how it all fits together.
References
- Martin Fowler on feature toggles - Canonical overview of flag types and tradeoffs.
- Twelve Factor App: Config - Why configuration should live in the environment, not in code.
- Google SRE book: Release engineering - Guidance on safe releases and rollbacks at scale.
Frequently Asked Questions
How do feature flags in OpenClaw differ from environment variables for controlling automated workflows?+
Environment variables are static at deploy time, while feature flags are evaluated at run time against user, account, or campaign context. Flags can target cohorts, support percentages, and include a built in kill switch for immediate reversals. Use env vars for secrets and low frequency configuration, and use flags when you need dynamic control without redeploying.
What is remote config in OpenClaw and when should I use it instead of branching a playbook?+
Remote config stores typed values such as JSON, numbers, or strings that your steps can read at execution. It is ideal for copy variants, model parameters, or endpoint URLs that change often. Branching a playbook is better when the control flow itself must be different. Use remote config to keep logic stable while parameters move.
Can I target specific segments with a multivariate flag for an AI content generator?+
Yes. You can define rules that match traits like plan tier, geography, or campaign and then serve different variants such as A, B, or holdout. The engine evaluates the rules per run and persists assignments by key so a contact or account sees consistent behavior across sessions.
How do rollbacks work if a flagged change degrades conversion rate?+
Use the kill switch to force the flag to off or to a safe variant globally. The change applies immediately to new executions. Combine this with progressive rollout history and observability dashboards to confirm that error rates and budgets normalize before re enabling exposure.
Will feature flags add latency or increase costs for high volume automations?+
Flag and config evaluations run in memory inside OpenClaw's runner and add a few microseconds per check. Rules and values are cached with short TTLs and refreshed asynchronously. For very high volume cases you can batch reads within a step to avoid repeated lookups and you can sample evaluations for analytics to reduce write load.
How do flags and remote config interact with diff and dry run review in OpenClaw?+
Flag definitions and config values are versioned like playbooks. Changes appear in the diff before you ship, and you can run a dry run with specific identities to preview targeting results. This helps prevent accidental global toggles and confirms that rule logic matches intent before rollout.
Ready to try ButterGrow?
See how ButterGrow can supercharge your growth with a quick demo.
Book a Demo