Step 1 - Create your Action Source

Before you can start creating Dynamic Actions, you must create your Action Source. This provides MXO with all the relevant information about the external actions to consider displaying to customers on your Touchpoints.

Action Source Schema

In order to co-exist with existing MXO Actions, Dynamic Action sources are expected to implement a standard schema. The following attributes represent the base data schema representing possible Action and Asset combinations.

AttributeTypeRequired?Description
action_idTEXTY

The unique identifier of the Action.

This must be identical to the value provided for the action_name attribute.

action_nameTEXTY

The readable name of the Action.

This must be identical to the value provided for the action_id attribute.

action_propositionTEXTN

The Proposition code associated with the Action.

If provided, the action_proposition value must match the code of the Proposition as it exists in your configuration.

action_priorityNUMERICNValue between -100 and +100, representing the internal marketing priority of the Action.
action_start_dateDATETIMENGMT timestamp representing the first date the Action is valid.
action_end_dateDATETIMENGMT timestamp representing the last date the Action is valid.
action_campaign_codeTEXTNThe campaign code associated with the Action.
asset_idTEXTYThe unique identifier of the Asset associated with the Action.
asset_mimetypeTEXTYThe media type of the Asset associated with the Action.
asset_viewpointTEXTN

The Viewpoint associated with the Asset.

Specify either a single viewpoint value OR multiple viewpoint values as a pipe-delimited list, for example, home banner|mobile mini|agent.

The asset_viewpoint value must be an exact, case-sensitive, match for the name of the Viewpoint as it exists in your configuration.

asset_contentLARGE_TEXTNThe full content object based on the associated media type of the Asset.
positive_response_labelTEXTNThe readable label for a positive response.
positive_response_target_typeTEXTDEP

Enumerated directive representing the navigation type when a positive response is selected. One of:

  • IN_APP
  • ONE
  • EXTERNAL_WEB
  • EXTERNAL_NON_WEB

Required if a positive label is provided.

negative_response_labelTEXTNThe readable label for a negative response.
negative_response_target_typeTEXTDEP

Enumerated directive representing the navigation type when a negative response is selected. One of:

  • IN_APP
  • ONE
  • EXTERNAL_WEB
  • EXTERNAL_NON_WEB

Required if a negative label is provided.

neutral_response_labelTEXTNThe readable label for a neutral response.
neutral_response_target_typeTEXTDEP

Enumerated directive representing the navigation type when a neutral response is selected. One of:

  • IN_APP
  • ONE
  • EXTERNAL_WEB
  • EXTERNAL_NON_WEB

Required if a neutral label is provided.

Example Datastore Configuration

{ "name": "Dynamic Actions Source", "apiName": "dynamic_actions_source", "primaryKey": "primary_key", "secondaryKey": "action_id", "definitions": [ { "name": "primary_key", "type": "TEXT" }, { "name": "action_id", "type": "TEXT" }, { "name": "action_name", "type": "TEXT" }, { "name": "action_proposition", "type": "TEXT" }, { "name": "action_priority", "type": "NUMERIC" }, { "name": "action_start_date", "type": "DATETIME" }, { "name": "action_end_date", "type": "DATETIME" }, { "name": "action_campaign_code", "type": "TEXT" }, { "name": "asset_id", "type": "TEXT" }, { "name": "asset_mimetype", "type": "TEXT" }, { "name": "asset_viewpoint", "type": "TEXT" }, { "name": "asset_content", "type": "LARGE_TEXT" }, { "name": "positive_response_label", "type": "TEXT" }, { "name": "positive_response_target_type", "type": "TEXT" }, { "name": "positive_response_target_url", "type": "TEXT" }, { "name": "negative_response_label", "type": "TEXT" }, { "name": "negative_response_target_type", "type": "TEXT" }, { "name": "negative_response_target_url", "type": "TEXT" }, { "name": "neutral_response_label", "type": "TEXT" }, { "name": "neutral_response_target_type", "type": "TEXT" }, { "name": "neutral_response_target_url", "type": "TEXT" } ] } 

Supported Datastore Definition Types

The supported datastore definition types are:

  • BOOLEAN
  • DATETIME
  • NUMERIC
  • TEXT
  • LARGE_TEXT
  • TEXT_LIST

Example Datastore Entry

{ "action_id": "UC19 - Top Game - Masters of Valhalla", "action_name": "UC19 - Top Game - Masters of Valhalla", "action_proposition": "10001", "action_priority": 0, "asset_id": "8764a599-8e34-4d26-a3ba-8a0cc4fb6cbb", "asset_content": "{\"type\":\"topgame\",\"templateID\":\"10001\"}", "asset_viewpoint": "Lobby Hero Banner", "asset_mimetype": "application/json", "primary_key": "ActionUC19" } 

Extending the Schema

Dynamic Actions provides the ability to extend the base schema with additional attributes, allowing each brand to create a unique set of information related to each Action. Extended attributes are used in both context-filtering and orchestration to drive more relevant and individualized conversations. You can view these additional Action Attributes on the Actions Attributes page, in MXO.

Example

A brand wants to drive its saturation strategy using Eligibility Rules based on data. In addition to the base schema, the following attributes are added:

AttributeTypeDescription
saturation_thresholdNUMERICThe maximum number of times an Action can be shown to a user without a response.
min_negative_monthsNUMERICThe minimum number of months since the last negative response before the Action may be considered for display again.

The brand now incorporates the new attributes into an Eligibility Rule, as follows:

Dyn A - eligibility rule example