Runtime properties
Provide additional context for realtime targeting and analytics.
- Last reviewed
Provide additional context for realtime targeting and analytics through the web SDK:
const client = createClient({apiKey: "YOUR_API_KEY",properties: {flags: { newCheckout: true, searchVariant: "treatment" },capabilities: { fileUpload: true, reportExport: false },organizationId: "org_123",},});flags describes the experience currently shown. capabilities describes features available in this app version. organizationId identifies the organization the user is currently working in. These are your property names; they have no special SDK behavior.
In flow delivery settings, add a runtime property condition such as flags.newCheckout equals true. Nested paths are supported. All property conditions and any page condition must match. Objects compare by their contents; array order matters. A missing property differs from an explicit null.
Update context
await client.configure({properties: { organizationId: "org_456", flags: { newCheckout: false } },});An update replaces the complete context. Use {} to clear it. reset() also clears context.
Calling createClient() again with the same API key returns the shared client. Supplied properties update its context; omitting them leaves context alone. React provider clientOptions.properties follows the same behavior when the provider renders. If you clear context imperatively, also update any provider props that would otherwise supply it again.
For manual loading, supply initial properties before client.load(). Call configure() after loading.
Analytics and consent
The current properties accompany analytics events, including flow events. Properties explicitly supplied on an event take precedence. Runtime properties use the existing analytics consent setting; without analytics permission they are omitted from targeting requests and analytics transmission. See Privacy & consent.
Runtime properties are available in the JavaScript SDK, React web and React Native providers, and the browser snippet. In React Native, set clientOptions.properties on GetUserFeedbackProvider or call client.configure({ properties }). Supplied provider values are reapplied when the provider renders; omit them to manage context only through the client. Configure replaces the context and reset clears it. Validated property updates handed to the runtime are retained for replacement Core sessions, even if delivery or later command effects fail. Invalid or superseded updates do not replace context.