v1

latestOpenAPI 3.0.02026-08-0610682246.0 KB
SDK Feature Decision Engine

Process a single decision

Processes a single SDK feature decision. An SDK feature rule can be configured in the console, and allows a custom decision to be made using a range of inputs to drive the behaviour of a website or app. SDK features can output any one of several data types as configured in the console.

  • String: The output can be any string.
  • Number: The output can be any numerical value
  • Enum: The output can be one of a list of strings as configured in the developer panel for the rule. This is used for short output strings.
  • Component: The output can be one of a list of strings as configured in the developer panel for the rule. This is used for long output strings, such as HTML or JSON.
  • JSON: The output can be any JSON object. JSON schema validation can optionally be enforced when creating JSON outputs in the console.
  • Transformation: The output will be a JSON array of transformations to be applied to content on a webpage or in an app. This allows the configuration of the same types of outcomes that can be built with an HTML feature rule, such as hiding content and displaying a payment form.

SDK features permit business decisions to drive access or behaviour to be made in an app that is not using HTML content. SDK decisions are relevant for both anonymous and authenticated sessions. If no session is provided via the request then an anonymous session will not be created.

Invoking an SDK decision may cause side effects as configured in the rule, such as invoking webhooks or recording trial usages. When dryRunMode is enabled in the request, trial usages will not be recorded.

post/zephr/decision-engine

Query parameters

rawboolean required

If set to true, then the decision output will be returned in it's raw form, without metadata. <br /> If set to false, the decision output will be returned in an escaped form together with metadata about the decision.

Request body

sdkFeatureSlugstring required

Feature SDK slug as configured in the console.

sessionstring

Zephr Session ID, required for trials and for user-based decisions.

foreign_keysobject

A map where the key is a foreign system and the value is an ID used to identify the user in that system.

ipstring

Client IP address, defaults to request IP.

userAgentstring

Client user agent.

pathstring

Request path representing the content being consumed for trials.

contentIdstring

Content ID, used to perform requests to a 3rd party API for additional content information used in making a decision. The endpoint and path format for content ID requests can be configured in the console.

jwtstring

A Json Web Token, may include identity or product holding claims.

giftTokenstring

Enables a decision to be made in the rule based on whether access should be granted as the user has gift access.

dryRunModeboolean

If the decision should be run without recording trial usage.

Example request

{
  "sdkFeatureSlug": "sdk-feature-1",
  "session": "0f88f32c-b03c-49cd-b977-0ca224d1acee",
  "foreign_keys": {
    "external-system": "user-1"
  },
  "ip": "56.123.124.23",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 11)...",
  "path": "/article.html",
  "contentId": "paid-article-123",
  "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  "dryRunMode": false,
  "giftToken": "23810040-8149-4f4e-a4d1-c8268340be7f",
  "custom-input-1": "custom-value"
}

Response

OK. The output of the SDK feature rule, which may be wrapped with metadata according to the raw query parameter value.

sdkFeatureSlugstring required

The slug of the SDK feature which has been evaluated.

outputType'ENUM' | 'STRING' | 'NUMBER' | 'JSON' | 'TRANSFORMATION' | 'COMPONENT'

Feature output type. Present if there were no errors.

outputValuestring

Feature output value. Present if there were no errors.

  • For the 'JSON_COMPONENT' output type, the response will be stringified JSON.
  • For the 'TRANSFORMATION' output type, the response will contain a stringified JSON array of transformations to be applied, including ENABLE_CONTENT, CUSTOM_COMPONENT, TEMPLATE_COMPONENT and FORM.
errorstring

The error message explaining why this decision failed to resolve. Present only if there was an error.

Example response

{
  "sdkFeatureSlug": "sdk-feature-1",
  "outputValue": "YES",
  "error": "500: Internal error ..."
}