Config File Structure

The Critical Moments config file is a web-hosted configuration file, with a JSON structure defining how your events, actions, conditions, and feature flags connect together.

Update Anytime

Signing and deploying a new config file can be done outside of app releases, allowing you to update your app's behaviour without waiting for app reviews, or users to update their builds! This can be very useful for new announcement, outages, bugs, or other unexpected scenarios.

Read the docs ->

Only the web-hosted/signed config file will be used in release builds. The local/unsigned config file is only for development/debug builds.

Be sure to deploy a signed+hosted config and set the URL before releasing your app to the app store.

Config File Structure

The config file has the following top level entities:

  • configVersion [string, required]: always "v1"

  • appId [string, required]: your app's bundle ID

  • actions [object, optional]: documented in the Actions Overview

  • conditions [object, optional]: documented in Named Conditions

  • triggers [object, optional]: documented in Triggers Overview

  • themes [object, optional]: documented in Themes Overview

  • notifications [object, optional]: documented in Notifications Spec

  • minAppVersion [string, optional]: the minimum app version number this config file should be used on. If an older app version fetches this file, it will be ignored and Critical Moments will not start. Example: "v1.4.2"

  • minCMVersion [string, optional]: the minimum Critical Moments SDK version number this config file should be used on. If an older SDK version fetches this file, it will be ignored and Critical Moments will not start. Example: "v0.8.1"

Here is a sample of the typical root object in a config file:

{
    "configVersion": "v1",
    "appId": "YOUR_BUNDLE_ID",
    "actions: {...},
    "conditions: {...},
    "triggers": {...},
    "notifications": {...},
    "themes": {...}
}

Last updated