Advanced Event Trigger

Overview

The Advanced Event Trigger (AET) API allows you to perform hierarchical inserts of multiple records into multiple tables, similar to the Sequential Event Trigger. However, AET improves upon the sequential load method by performing all inserts simultaneously. This method is faster and less error-prone than the sequential method. AET requires authentication through OAuth 2.0, and it supports the use of XML or JSON for messaging. Following the authentication step, the endpoint validates the contents of the request message.

Unlike many of the other API endpoints, Advanced Event Trigger doesn't require you to set up an API Post to define the data mapping of the input data. Instead, all of the data mapping instructions are contained within the payload of the API message.

Therefore, when defining an Event-triggered Campaign, you don't use an API Post as the triggering mechanism. Instead, you use a special trigger type called an "Advanced Event Trigger." The AET endpoint will trigger the Campaign deployment upon receipt of the API message, prior to loading the database, so all of the information needed to build the Campaign content must be contained within the message payload. The message must also include the Campaign ID for the Event-triggered Campaign.

Note: The Advanced Event Trigger endpoint is currently available for the Email, Push Notification, and SMS Text channels..

For more details on how to set up an Advanced Event Trigger API request, please see the Advanced Event Trigger Technical Guide.

The following diagram depicts the process for deploying a Campaign via the Advanced Event Trigger endpoint:

Pre-requisites

The Advanced Event Trigger endpoint requires the following:

Email Ban List

Messaging maintains a global, integrated Banned Email list that's utilized by every client in the platform. This global Banned Email list contains, for example: domains listed by the Federal Communications Commission that can't be mailed to; inactive or retired domains; and email addresses with prefixes commonly used by spammers. In addition to this global Banned Email list, the platform allows you to define your own custom Banned Email list that contains specific email addresses, user names, or domains that you want to suppress from your email Campaigns. See Email Ban for more details on creating a custom Banned Email list.

When using Advanced Event Trigger to deploy email Campaigns, you have the option of validating the email addresses in the API payload against the global and custom Banned Email lists. If you enable this validation check, the system will suppress any email addresses that are found on either the global or custom lists. If you disable this validation check, the system will automatically deploy email messages to every email address included in the API payload. See Trigger Type - Advanced Event Trigger for more details on how to configure this option.

POST Method

The Advanced Event Trigger endpoint supports the following POST operation. This endpoint allows you to load a record into your marketing database, and trigger the deployment of an Event-triggered Campaign. The request must include the following:

Click hereClick here to see a sample request message in JSON format.

{  

   "_data":{  

      "recipient":[  

         {  

            "name_first":"John",

            "name_last":"Smith",

            "email":"john.smith@example.com",

 

            "recipient_to_organization": { // An "upward" join - to a parent

                "oraganization_name": "Cheetah Digital",

                "organization_city": "Costa Mesa"

              },

            "order.order_to_recipient":[   // A "downward join - to a child

               {  

                  "order_no":"2834737",

                  "total":"129.99",

                  "email":"john.smith@example.com",

                  "order_items.order_items_to_order":[  

                     {  

                        "item_name":"Misc Clothing",

                        "price":"29.99",

                        "size":"Medium"

                     },

                     {  

                        "item_name":"Nice Shirt",

                        "price":"79.98",

                        "size":"Small"

                     }

                  ]

               }

            ],

            "order.replacement_order_to_recipient":[  

               {  

                  "order_no":"2837473",

                  "total":"0.00",

                  "trackingNumbers":"78542",

                  "order_items.order_items_to_order":[  

                     {  

                        "item_name":"Nice Shirt",

                        "price":"79.98",

                        "size":"Medium"

                     }

                  ]

               }

            ]

         }

      ]

   },

   "_campaignMetadata":{  

      "promotion_title":"Labor Day Sale Deals",

      "promotion_code":"LD2015"

   },

   "_attachments":[

      {

        "_fileName":"File1.pdf",

        "_mimeType":"application/pdf",

        "_fileContents":"VGhlIHZlcnkgZmlyc3QgbGluZSENCg=="

      },

      {

        "_fileName":"File2.pdf",

        "_mimeType":"application/pdf",

        "_fileContents":"VGhlIHZlcnkgZmlyc3QgbGluZSENCg=="

      }

      ],

"_responsePayload": "false"

"_campaignId": "12345"

"_importOptions":[  

      {  

         "_table":"recipient",

         "_doNotUpdateExisting":false,

         "_fieldOptions":[  

            {  

               "_applyToFields":[  

                  "name_first",

                  "name_last"

               ],

               "_insertNull":true

            },

            {  

               "_applyToFields":[  

                  "email"

               ],

               "_caseSensitive":false

            }

         ]

      },

      {  

         "_table":"order",

         "_joinName":"order_to_recipient",

         "_doNotUpdateExisting":true,

         "_fieldOptions":[  

            {  

               "_applyToFields":[  

                  "order_no",

                  "total"

               ],

               "_insertNull":true

            }

         ]

      },

      {  

         "_table":"order",

         "_joinName":"replacement_order_to_recipient",

         "_doNotUpdateExisting":true,

         "_fieldOptions":[  

         ]

      }

   ]

}

 

 

Back to API Category - Campaign Deployment