Dev guideAPI Reference
Dev guideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Decision notification listener

Describes the Decision notification listener, which sends a stream of all feature flag decisions for OptimizelyFeature Experimentation.


The DECISION notification listener is triggered by the Decide methods. It is most commonly used to send decisions to an analytics provider or to an internal data warehouse to join it with other data that you have about your users.



If you only want decisions that resulted in impressions in the Optimizely app, you can filter on the dispatched decision event field of the returned OptimizelyDecision object in your code.

To track flag usage:

  1. Sign up for an analytics provider of your choice (for example, Segment).
  2. Set up a DECISION notification listener.
  3. Follow your analytics provider's documentation and send events from within the decision listener callback.

Steps 1 and 3 are not covered in this documentation. However, the DECISION notification listener is covered below.


The following tables show the information provided to the listener when it is triggered:

typestringDecision type varies depending on which method triggers the listener.

The Decide methods set the type to flag. For older types, see the Full Stack (Legacy) notification listener documentation.
decision infomapKey-value map that consists of data corresponding to the decision. See decision-info parameter.
user IDstringThe user ID.
attributesmapA map of custom key-value string pairs specifying attributes for the user that are used for audience targeting.

Non-string values are only supported in the 3.0 SDK and above (released after March 2019).

decision info parameter

The following table shows the decision info parameter of the DECISION notification listener:

Decision info parameterDescription
flag keyThe flag key.
enabledBoolean value for whether the flag is enabled or not.
variablesThe same object as returned by my_decision.variables.
variation keyThe key of the flag variation.
rule keyThe key of the flag rule.
decision event dispatchedA Boolean value indicating if the decision dispatched a decision event to

In the Optimizely app, an impression on the Results page corresponds to a dispatched decision event.


For code examples, see the notification listener topic in your SDK language: