Flag-change notifications use a shared JSON envelope across the supported delivery channels. Choose the channels that fit your application.
Your client calls POST /flags/<name> with a Management Key whenever it needs an answer. This is a straightforward request-response integration; update frequency depends on the client's polling schedule.
Configured webhooks receive flag-change payloads. When signing is enabled, verify the HMAC-SHA256 value in X-Webhook-Signature against the raw request body. Delivery history and replay controls are available in the dashboard.
Set up a webhook →A client can open a streaming connection at /hubs/flags and subscribe to flag-change notifications. Configure reconnect and state-refresh behavior in the client. See the SignalR streaming guide for .NET connection details.
Streaming groups & tag scope
Each streaming connection is scoped by its Streaming key to one flag and environment. To follow several flags, open one connection per key, and refresh current state after reconnecting or detecting a delivery gap.
Streaming deployment and capacity depend on the configured backplane. Review your environment's configuration when planning for higher traffic.
Cache invalidation & notification matrix
Every change type below follows the same pattern: the cache clears first, then a notification goes out on whichever transports you've configured, then anything that depends on the changed flag gets re-evaluated. Use this as a reference for what to expect after a given change.
| Change scenario | Cache invalidated | Push / notify retriggered | Dependent flags re-evaluated |
|---|---|---|---|
| Flag enabled or disabled | Yes | Yes, affected environment | Yes, transitively |
| Targeting rules changed | Yes | Yes | Yes |
| Rollout percentage changed | Yes | Yes | Yes |
| Default variant changed | Yes | Yes | Yes |
| Variants added, removed, or edited | Yes, all environments | Yes, all configured environments | Yes |
| Enrollment cutoff changed | Yes | Yes | Yes |
| Environment configuration created | Yes | Yes | Yes |
| Environment configuration removed | Yes | Yes | Yes |
| Configuration promoted | Yes, target environment | Yes, target environment | Yes |
| Configuration unpromoted | Yes | Yes | Yes |
| Configuration reverted from audit history | Yes | Yes | Yes |
| Dependency list changed | Yes, all environments | Yes, all configured environments | Yes |
| Parent metadata changed | Yes | Yes, all configured environments | Yes |
| Flag archived | Yes, all environments | Yes, all configured environments | Yes |
| Flag restored / unarchived | Yes, all environments | Yes, all configured environments | Yes |
| Flag renamed | Old and new cache scopes cleared | Old and new flag notification | Yes, using updated graph |
| Flag deleted | Yes | Yes | Only after dependency safety checks pass |
| Bulk enable / disable | Yes | Yes | Yes |
| Bulk archive | Yes | Yes | Yes |
| Approved enable / disable / update | Yes | Yes, correct environment | Yes |
| Approved promotion / unpromotion | Yes | Yes, correct target environment | Yes |
| Automation enable / disable | Yes | Yes | Yes |
| Automation rollout change | Yes | Yes | Yes |
| Automation targeting change | Yes | Yes | Yes |
| Automation promotion | Yes | Yes | Yes |
| Automation expiration / archive | Yes | Yes | Yes |
| Scheduled lifecycle transitions | Yes | Yes | Yes |
| Referenced segment changed or deleted | Segment cache cleared | Yes, for every referencing flag | Yes |
| Kill switch changed | Entire organization cache cleared | Yes, every flag / environment | Yes |
| Management API mutations | Same rules as the dashboard | Yes | Yes |
- Push/notify delivery only occurs when streaming is enabled.
- Direct and transitive dependents are included — changing a parent retriggers both child and grandchild flags.
- Metadata-wide notifications publish to every configured environment group.
- Environment push/notify groups are normalized case-insensitively.
- Approved promotions publish using the actual target environment.
A manual cache purge clears selected backend caches but does not emit a configuration-change notification, since no configuration actually changed.