Dynamic Yield's triggered emails enable you to run a 1-to-1 email personalization program. For example, you can prompt users to recover an abandoned cai rt, submit an application, or alert them to a price drop on a product they expressed interest in.
Before you create your first campaign...
Make sure you completed all the steps that are listed in the Getting Started with Triggered Emails guidelines.
Create a triggered email campaign
- Go to Email › Triggered Email › Add New and select the type of triggered email.
- Name the campaign. You can also add notes and labels to better manage your various campaigns.
-
Each campaign type is relevant to a different use case, and includes different settings. Trigger types include:
Cart AbandonmentSend emails to users who added items to their cart, but did not complete a purchase.
- Trigger: The email is triggered when a user adds a product to the cart. You can limit it to trigger only for products with a specific property.
- Delay Send: The email is sent to the user after this defined amount of time passes.
- Cancel Send: Set an action that causes the email not to be sent. By default, cart abandonment emails are canceled if the user makes a purchase or visits the site again.
- Frequency Capping: Limit how many emails to send in a given timeframe.
Application Abandonment (financial institutions)Send emails to users who started an application, but did not complete it.
- Trigger: The email is triggered when a user starts an application. You can limit it to trigger only for products with a specific property.
- Delay Send: The email is sent to the user after this defined amount of time passes.
- Cancel Send: Set an action that causes the email to not be sent. By default, application abandonment emails are canceled if the user makes a submission or visits the site again.
- Frequency Capping: Limit how many emails to send in a given timeframe.
Application Submitted (financial institutions)Send emails to users who submitted an application.
- Trigger: The email is triggered when a user submits an application. You can set it to trigger only products with a specific property.
- Delay Send: The email is sent to the user after this defined amount of time passes.
- Cancel Send: Set an action that causes the email not to be sent.
- Frequency Capping: Limit how many emails to send in a given timeframe.
Product View Abandonment (e-commerce)Send emails to users who viewed at least one product page, but didn't add any items to the cart or make a purchase.
- Trigger: The email is triggered when a user views a product page. You can set it to trigger only products with a specific property.
- Delay Send: The email is sent to the user after this defined amount of time passes.
- Cancel Send: Set an action that causes the email not to be sent. By default, product view abandonment emails are canceled if the user makes a purchase (any product, not necessarily the products they initially viewed) or adds an item to the cart (any product).
- Frequency Capping: Limit how many emails to send in a given timeframe.
Category View Abandonment (e-commerce)Send emails to users who viewed a category page, but did not view a product, add one to the cart, purchase a product, or return to the site.
- Trigger: This email is triggered when a user is adding a product to the cart. You can limit it to only be triggered if products with a specific property are added to the cart.
- Delay Send: The email is sent to the user after this defined amount of time passes.
- Cancel Send: Set an action that causes the email not to be sent. By default, category view abandonment emails are canceled if the user views a product, adds a product to the cart, makes a purchase, or visits the site again.
- Frequency Capping: Limit how many emails to send in a given timeframe.
Price Drop (e-commerce)Send emails to users to let them know that a product they viewed or added is now priced lower.
- Trigger: By default, this email is sent when any product price drops by 10%, to all users who viewed it in the past 30 days. You can limit it to products with a specific property, or send it only to users who added the product to the cart. You can change the 10% to any other percentage or any other monetary value (say, $100 lower).
- Schedule: The email is sent at the time closest to the trigger within this time window.
- Frequency Capping: Limit how many emails to send in a given timeframe.
CustomSend emails to users who performed a specific behavior, like viewing a product, making a purchase, or any other event.
- Trigger: The action that a user needs to do for the email to be sent to them. It can be a single event, or it can be a list of multiple events (for example, user signup or login).
- Delay Send: The email is sent to the user after this defined amount of time passes.
- Cancel Send: Set an action that causes the email not to be sent. It can be a single event, or it can be a list of multiple events.
- Frequency Capping: Limit how many emails to send in a given timeframe.
- Click Next to continue to Targeting. You can target this campaign to all users, or you can target it only to users who belong to a specific audience or a shared audience.
- Create one or more variations. Each variation includes the email's header and body content.
Creating variations and templates varies, based on your ESP integration:EmarsysWith this integration, at the moment the email should be sent, Dynamic Yield sends an API call to Emarsys – with all the email information in the JSON format (e.g. the user, the recommended items). This information is later populated inside the email template you develop in Emarsys. For the integration to work, you will need to use the same properties in the JSON format (in the Dynamic Yield variation or template) and the template you develop in your Emarsys account.
Oracle ResponsysWith this integration, at the moment the email should be sent, Dynamic Yield sends an API call to Oracle Responsys – with all the email information in the JSON format (e.g. the user, the recommended items). This information is later populated inside the email template you develop in Oracle Responsys. For the integration to work, you will need to use the same properties in the JSON format (in the Dynamic Yield variation or template) and the template you develop in your Oracle Responsys account.
Mandatory template parameters:
"name": "urlWrapping", "value": "${dyTrackingPixel}"
Used for tracking clicks on any link within the email. Use this parameter to wrap all the links in the email. The variable (dyRedirectStringLink) will be generated in the API call."name": "hiddenPixel", "value": "${dyRedirectStringLink}"
Used for tracking impressions on the email. Use it as the src of a 1×1 transparent image inside your email template."email": "${identifier}"
Used for delivering personalized content and recommendations. The value should be a variable that Dynamic Yield populates the user's plain text or hashed email. Use Dynamic Yield variable syntax as value – ${identifier}, click the variable in the code, and in the panel, choose "Plain Text Email" or "Hashed Email". This will replace the variable with the user true email / hashed email.Presenting relevant products:
The JSON can also include a list of relevant products:
- Products that the user has in the cart – for cart abandonment emails.
- Products that the user viewed recently – for product view abandonment emails.
- Products that the user has engaged with recently, and their price has dropped – for product drop emails.
- Product recommendations – as an additional recommendation widget that can be added to any email (e.g. most popular products, personalized recommendations by affinity).
To request a list of products:
- Add to the JSON a parameter with a value of that describe the list of products, and the product attribute you need to be sent to Oracle Responsys. For example: "name": "productsInCart", "value": "${#Products in Cart(sku)}".
- Go to the Variable Tab, and find the variable with the same name that you just used.
- Choose the type of product list.
If you want to display product recommendations, you need to first create a recommendation widget for email. Once created, it will appear in the dropdown.
Custom ESP IntegrationWith this integration, at the moment the email should be sent, Dynamic Yield sends an API call to your ESP – with all the email information in the JSON format (e.g. the user, the recommended items). This information is later populated inside the email template you develop in your ESP. For the integration to work, you will need to use the same properties in the JSON format (in the Dynamic Yield variation or template) and the template you develop in your ESP account.Other (for example, Listrak, SendGrid)With this type of integration, the variation includes the HTML of the email. - Set the allocation and primary metric. If you created multiple variations, configure how much traffic to allocate to each variation.
- Configure the end of the attribution window in the advanced experience settings. The beginning of the attribution window for triggered emails is defined as the time of the user's last click on the email.
- Click Save Experience and create additional targeted experiences as needed by clicking the plus icon
.
- To send a preview email, click the preview icon
and enter your email address. Make sure that the email address is opted-in with the ESP vendor (not relevant if you are using the Dynamic Yield integration with Sendgrid; relevant for Emarsys, Responsys, and others).
- To verify the trigger functionality, click Simulation.
- Save & Publish if you are ready to fully publish the experience, or Save as Draft if you want to verify the functionality before publishing.
Creating triggered email variations and templates
If you are using a custom ESP, use the procedure for creating JSON triggered email variations instead of this procedure.
- Variations are created as part of the triggered email campaign creation process, or on their own from Assets › Variations. Select one of the Dynamic Yield templates for triggered emails that are already configured for common use cases.
- Configure the email variation header attributes: Subject, Sender Name, and Sender Email.
- Click the HTML tab to code the email body. Here you can dynamically add products to the email that were added to the cart, recently viewed, recommended, or dropped in price (e-commerce), or use products in cart (financial institutions) to include a product that a user started an application for.
- In the HTML, create a variable by adding opening and closing variable tags as follows: ${#Name}...${/Name}. For example: ${#Cart}...${/Cart}.
- Click the tags to open the Variable Settings panel. Select the variable type that corresponds to your trigger. You can also create an additional variable to include an email recommendation widget.
- Define the minimum and maximum number of items to include, and specify a tooltip if needed.
- Between the Cart variable opening and closing tags, code the HTML markup for each cart item.
You can dynamically insert properties from your product feed by adding variables of type Feed Property to the code.
For Price Drop variations, you can add variables of type Price Drop Property to dynamically include information about the difference in price.
At send time, this markup is multiplied by the number of items included. Every Feed property variable is taken from the Product feed for the products included in the email.
- Go to the Variables tab and specify values for all the variables you defined. For recommendations, make sure the strategy you select matches the type of triggered email you are using.
- Save the variation.
Creating JSON triggered email variations
If you are using Responsys or a custom ESP, use the JSON template to create triggered email variations as follows:
- Configure the information to send to your ESP from Dynamic Yield using JSON code. Make sure the following variables exist in the payload and then incorporate them into your ESP templates to compose the full email:
- dyTrackingPixel: Enables Dynamic Yield to track the email, for example, whether the email was opened or not.
- dyRedirectStringLink: Include in EVERY item that is clickable in your ESP email template (for example, a product image) to allow Dynamic Yield to collect information. For Responsys, you can use Responsys RPL to concatenate the redirect link with every additional URL.
- Add the email variable. Add a standard special character for any variable, such as ${email} or ${external}. Click the variable to open the Variable Settings panel, and change the variable type to either Hashed email, Plain Text email, or External ID, depending on your identifier type.
- Add products in cart, recommendations, recently viewed, or price drop products.
- Add the variable special characters ${#}, for example: ${#cart}. Click the Variable Settings panel and select Recently viewed products, Email recommendation widget, Price drop products, or Products in cart (for financial institutions, use Products in cart to trigger emails based on an application started).
- Configure the minimum and maximum value of items you want to include. You can show the number of items in the variable tab settings as well.
- Between the cart variable opening and closing tags, code the HTML markup for each cart item.
You can dynamically insert properties from your product feed by adding variables of type Feed Property to the code.
For Price Drop variations, you can add variables of type Price Drop Property to dynamically include information about the difference in price.
At send time, this markup is multiplied by the maximum amount set in step 2. Every Feed Property variable is taken from the Product feed: Either items in cart, recently viewed, or any recommended items. - The variable ${#Cart Products(sku)} provides a comma-separated list of products within the string. Use it in Responsys and any other ESP that requires this structure. If you want a different feed property, state so within the variable as follows: ${#Cart Products(url)}. See examples.
- Define your variables.
In the Variables tab, select values for the variables you defined in the code. For recommendations, make sure the strategy you select matches the type of triggered email you are using. - Preview the JSON variation payload structure.
Examples
{
"content": {
"templateId": "1",
"region": "US"
},
"recipients": [
{
"hashedemail": "${Email}",
"profile": {
"userAttrs": [
{
"content": {
"itemsInCart": {
"${#cart}": "${skuInCart}"
},
"recommendations": {
"${#recommendation}": "${sku}"
},
"hiddenPixel": [
"${dyTrackingPixel}"
],
"urlForWrapping": [
"${dyRedirectStringLink}"
]
}
}
]
}
}
]
}
{
"content": {
"templateId": "1",
"region": "US"
},
"recipients": [
{
"hashedemail": "fcc1c1ecbc0b14e7d83d3dca4ece1fcbec85d0a413b3f518eb916c21bd38d25a",
"profile": {
"userAttrs": [
{
"content": {
"itemsInCart": [
"1002300-410",
"1004800-469",
"1002600-001"
],
"recommendations": [
"1005111-290",
"1005900-001",
"1005666-210"
],
"hiddenPixel": [
"<img src=\"http://trem.dynamicyield.com/tremop/?cuid=0&cuidType=ihe&sec=8772173&expId=0&expVer=0&expVisitId=&mech=0&smech=&va=\" alt width=\"1\" border=\"0\" height=\"1\" style=\"height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important\">"
],
"urlForWrapping": [
"http://trem.dynamicyield.com/tremclk/?cuid=0&cuidType=ihe&sec=8771748&expId=0&expVer=0&expVisitId=&mech=0&smech=&va=&targetUrl="
]
}
}
]
}
}
]
}
{
"recipientData": [
{
"recipient": {
"plainemail": "${Email}"
},
"optionalData": [
{
"name": "PRODUCTS_TO_SHOW",
"value": "${#Cart Products(sku)}"
},
{
"name": "Rcom_TO_SHOW",
"value": "${#recommendations(sku)}"
},
{
"name": "hiddenPixel",
"value": "${dyTrackingPixel}"
},
{
"name": "urlForWrapping",
"value": "${dyRedirectStringLink}"
}
]
}
]
}
{
"recipientData": [
{
"recipient": {
"plainemail": "test@dynamicyield.com"
},
"optionalData": [
{
"name": "PRODUCTS_TO_SHOW",
"value": "sku1,sku2,sku3"
},
{
"name": "Rcom_TO_SHOW",
"value": "sku1,sku2,sku3"
},
{
"name": "hiddenPixel",
"value": "<img src=\"http://trem.dynamicyield.com/tremop/?cuid=0&cuidType=ihe&sec=8772173&expId=0&expVer=0&expVisitId=&mech=0&smech=&va=\" alt width=\"1\" border=\"0\" height=\"1\" style=\"height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important\">"
},
{
"name": "urlForWrapping",
"Value": "http://trem.dynamicyield.com/tremclk/?cuid=0&cuidType=ihe&sec=8771748&expId=0&expVer=0&expVisitId=&mech=0&smech=&va=&targetUrl="
}
]
}
]
}
{
"content": {
"templateId": "1",
"region": "US"
},
"recipients": [
{
"hashedemail": "${Email}",
"profile": {
"userAttrs": [
{
"content": {
"itemsInCart": {
"${#cart}": {"sku":"${skuInCart}",
"image":"${cart_image}",
"name":"${cart_name}",
"price":"${cart_price}"
}
},
"recommendations": {
"${#recommendation}":{ "sku":"${sku}",
"image":"${recs_image}",
"name":"${recs_name}",
"price":"${recs_price}"
}
},
"hiddenPixel": [
"${dyTrackingPixel}"
],
"urlForWrapping": [
"${dyRedirectLink}"
]
}
}
]
}
}
]
}
{
"content": {
"templateId": "1",
"region": "US"
},
"recipients": [
{
"hashedemail": "test",
"profile": {
"userAttrs": [
{
"content": {
"itemsInCart": [
{
"sku": "skuInCart1",
"image": "cart_image1",
"name": "cart_name1",
"price": "cart_price1"
},
{
"sku": "skuInCart2",
"image": "cart_image2",
"name": "cart_name2",
"price": "cart_price2"
},
{
"sku": "skuInCart3",
"image": "cart_image3",
"name": "cart_name3",
"price": "cart_price3"
}
],
"recommendations": [
{
"sku": "sku1",
"image": "recs_image1",
"name": "recs_name1",
"price": "recs_price1"
},
{
"sku": "sku2",
"image": "recs_image2",
"name": "recs_name2",
"price": "recs_price2"
},
{
"sku": "sku3",
"image": "recs_image3",
"name": "recs_name3",
"price": "recs_price3"
}
],
"hiddenPixel": [
""
],
"urlForWrapping": [
""
]
}
}
]
}
}
]
}
In this example, the variable ${#cart} is configured to show price drop products. It includes the viewed price, from the unified customer profile.
The variable ${#recommendation} is configured to display product recommendations based on the strategy you selected.
{
"email": "${email}",
"campaign" : "${Campaign}",
"profile": {
"userAttrs": [
{
"content": {
"itemsInCart": {
"${#cart}": { // Specify the variable type as Price Drop Products in the JSON editor
"sku": "${sku}",
"SeenPrice": "${SeenPrice}", // Specify the variable type as User Profile Property in the JSON editor, and specify the value as Seen Price.
"Price Drop Percentage": "${Price Drop Percentage}" // Specify the variable type as User Profile Property in the JSON editor, and specify the value as Price Drop (%).
}},
"recommendations": {
"${#recommendation}": {"sku": "${sku}"}
},
"hiddenPixel": [
"${dyTrackingPixel}"
],
"urlForWrapping": [
"${dyRedirectStringLink}"
]
}
}
]
}
}
{
"email": "jajiv49023@94jo.com",
"campaign": "price_drop_DY",
"profile": {
"userAttrs": [
{
"content": {
"itemsInCart": [
{
"sku": "81467",
"SeenPrice": "15.99",
"Price Drop Percentage" :"12.2"
}
],
"recommendations": [
{
"sku": "85979",
},
{
"sku": "82404",
},
{
"sku": "82679",
}
],
"hiddenPixel": [
"<img src=\"https://trem.dynamicyield.com/tremop/?cuid=jajiv49023%4094jo.com&cuidType=ihe&sec=8772046&expId=0&expVer=0&expVisitId=&mech=0&smech=&va=\" alt width=\"1\" border=\"0\" height=\"1\" style=\"height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important\">"
],
"urlForWrapping": [
"https://trem.dynamicyield.com/tremclk/?cuid=jajiv49023%4094jo.com&cuidType=ihe&sec=8772046&expId=0&expVer=0&expVisitId=&mech=0&smech=&va=&targetUrl="
]
}
}
]
}
}
Creating triggered emails in multiple languages
To create a single triggered email campaign that delivers content in multiple languages, follow this procedure:
- Before you begin, verify that your product feed has multiple entries for multiple languages.
- Create audiences for each of the languages that are going to use that are defined by the user's location. For example, for french you might create an audience that includes users from France and any other french speaking countries you are targeting.
- Create a new triggered email campaign.
- Create one experience for each language you want to include.
- Each experience should have the same variations, with content that is translated to one of the languages.
- The variations should reference the translated entries in the product feed (e.g. “lang:FR_fr:name”).
- Use the targeting settings of each experience to target one of the audiences you created above.
- Create one experience for each language you want to include.
When a triggered email is served, users will receive an experience based on their location that is fully localized.