Reconnect enables you to run a 1-to-1 messaging personalization program across channels. For example, you can prompt users to recover an abandoned cart, 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've completed all the steps listed in Getting Started with Reconnect.
Create a Reconnect campaign
Step 1: Configure campaign settings
- In the Campaigns tab, click Create Campaign, and then select the campaign type: A triggered campaign or a scheduled push notification.
- Click Settings and set the following:
- Primary metric: Defines the metric to use to measure performance and indicate the winning variation in an A/B test.
- Attribution window: The time frame during which purchases made by a user who clicked on a campaign message is attributed to the campaign.
- Frequency capping: Define the maximum number of messages that can be sent to a user on each channel.
In addition to the configurable frequency capping for each campaign, Reconnect includes other logics aimed to prevent users from being over-messaged:
- Global frequency capping: Limits the number of messages users receive to 5 messages a day per channel, for all campaigns combined. Global frequency capping enforces a limit of up to 5 messages per user, per channel, within a 24-hour period.
- Channel priority: For cases where a variation contains more than one channel messages, you can define a priority to determine through which channel the user will receive a message.
- Campaign priority: Reconnect prioritizes different campaign types, so that if a user is eligible for more than one campaign at a time, only the one with the highest priority is sent.
- Delivery relevancy: Triggering the same campaign multiple times for the same user might result in delivering only a single message. This is mainly due to the internal cancelation logic that overrides previous triggers, to ensure we always send the most relevant message with aggregated data from all triggering events.
- On the campaign canvas, click the Edit icon to edit the main campaign trigger settings:
The settings panel is displayed.In this panel, you can configure the following:
-
- Trigger when: Set the exact conditions that will trigger the message. For event-based campaigns (Cart Abandonment, Product View, Price Drop, and Custom Trigger), the condition is based on the products in the triggering event, while in a "Change in User Attribute" campaign, the trigger condition is a change in a user's attribute value, from one user data feed sync to the next (for example, a user's "Loyalty status" value changes from "Bronze" to "Silver" in the next feed sync).
- Wait Time: Set the delay between the time of the triggering event and the time of message delivery. This can be anywhere between 5 minutes and 90 days. This field is not available for Price Drop.
- Schedule: ("Price Drop" and "Change in User Attribute" campaigns only). Set the time and day to send the message after the product price drops.
- Send to: Select an audience to target, or target All users.
- Don't send if: (Optional). Set conditions that cancel sending the message after the campaign is triggered.
Trigger information differs for each campaign type:
Select when you want the campaign to be sent to all users in the campaign’s target audience. You can select to send the message immediately upon publication or schedule it for a future time.
Select to send your message when the price of a product drops. Set the following:
- The product that triggers the campaign: All products, a product with or without a specific attribute, or a specific SKU.
- The minimal price drop to activate the campaign (price % or actual drop in price).
- The Reconnect trigger engine tracks the prices of products from specific events. Define an event (Add to Cart or Product View) to activate the price tracking.
Select to send your campaign to users who view a product. The triggering event is set to Product View for any product, but you can define the trigger for specific product attributes or a specific SKU.
Select to send to users who exit with products still in their cart. The triggering event is set to Add to Cart, but you can define the trigger for specific product attributes or a specific SKU.
Send emails to users who perform a specific behavior, like joining the VIP club, making a purchase, or any other event. Custom Trigger campaigns can support both DYID-based events and the following CUID-based events: Offline Purchase, Inform Affinity, and Custom events.
Send emails to users for whom an attribute value has changed in a user data feed, from one user data feed sync to the next. NOTE: This campaign can be triggered only from user-data feeds that use your section's primary CUID as their identifier.
If a user qualifies for multiple triggered campaigns simultaneously, Reconnect applies a campaign type priority to ensure that the most important messages are delivered first.
The priority order is as follows:
- Cart Abandonment
- Price Drop
- Product View
- Custom Triggers (can get highest priority via configuration in the campaign)
“Scheduled” and “Change in User Attribute” are outside of the priority scope and will be delivered regardless of other qualified campaigns.
- Next, set a channel prioritization strategy for when there are 2 or more channel integrations available in your section. The prioritization strategy enables you to avoid overcommunicating with your users: A user eligible for the campaign receives a message only through the highest priority channel they opted in to.
The order of your channels changes according to the prioritization strategy you set.
Each strategy highlights a different characteristic of the messaging channels so that you can optimize the delivery strategy to suit your use cases and needs.
-
- Hype: Prioritizes channels with the ability to contain rich content, for when the use case requires a multi-product display, information, and additional recommendations.
- Ping: Prioritizes channels with immediate rich content, for use cases with higher urgency and shorter period of relevance.
- Inform: Prioritizes channels by the ability of their messages to be revisited, meaning that they support an inbox or message center of some sort.
- Broadcast: Or Send to all, is aimed to reach your users on all channels they are opted into. For use cases where it's critical to get the user's attention, like highly attractive sales or price-drops.
Step 2: Create variations
- Next, click "+ Channel_Name" for the relevant channel to create a new message in a variation. All channels for which your section has an active integration are available to select.
(Alternatively, click copy variation to work from an existing variation from another campaign). - After you select a channel in the variation, the message edit panel is displayed. Select a template for the message. You can select from our out-of-the-box templates, any custom template you've created, or a blank message. Learn more about Reconnect templates.
- Create the message:
- In the JSON tab, enter the payload required by your messaging provider. The contents are in JSON format (except for Twilio SMS, which is plain text format).
- Add dynamic variables as needed by:
- Typing ${ (dollar sign and curly bracket) and selecting from the dropdown
- Typing the name of the variable (case sensitive).
- Copying/pasting an existing variable.
See the following section to learn more about adding variables.
- Optionally, save your JSON as a template for future use.
- Add more channels to the variation, and create more variations, as needed
- Set the allocation for the A/B test:
- Publish the campaign, or save it as a draft.
Working with Reconnect variables
When you type ${ in your message, a dropdown appears with available variables. The following are the details for each variable.
Text variables
The Text variable (the highlighted variable in the second screenshot) is the only variable that doesn’t appear in the variables dropdown. Any variable inserted validly (within ${ } ), with a name not recognized by the editor, is set as a Text variable. The text variable enables you to set a place for a text string, like “Subject line”. The text of the variable itself is entered in the Variables tab.
After the variable is set in the JSON, click it to display the Variable Settings, where you can edit the name and insert a placeholder and tooltip to display in the variable’s dedicated configuration field in the Variables tab.
NOTE: You can insert the same variable name (case-sensitive) in multiple places in the JSON. Its configurations are the same for each instance in the JSON, and the contents are set only once in the Variables tab.
User Data variables
Reconnect enables the injection of data from your section's user data feeds.
You can select the variable from the auto-suggest variable dropdown, under Users.
After you insert a variable, click it to select the relevant feed property from all the available user data feeds in your section. The variable structure is ${User data|FEED_NAME|PROPERTY_NAME}.
Notes:
- User data variables are currently supported in the Email and SMS messaging channels in Reconnect (Web/App Push will support it soon).
- Currently, you can only inject a user data feed property if the user data feed uses the same identifier as the one in the messaging channel. For example, if the feed uses Email as its user identifier, only Reconnect channels that also use Email as their user identifier in their integration can retrieve properties from it using the User Data variable.
Trigger-related variables
When you create a trigger-based campaign, each trigger type includes a variable related to the triggering event. For example, in a Cart Abandonment campaign, you can inject product property variables of the product that the user left in the cart.
After the variable is set in the JSON (green highlight in the screenshot), click it to display the Variable Settings, where you can change the product property of the trigger and edit the number of items. Note that this variable does not appear in the Variables tab.
Important:
In the JSON message body, expect some variables to be converted to empty values. For example, if you create a message for a Cart Abandonment and insert variables for 3 cart items, but a user who triggers the campaign only added 2 items to the cart. In this case, the variables of the first 2 objects of “Items in cart” (item 1 and item 2) are populated with values from the feed, but the third object’s value is left empty.
Cart Abandonment
Available trigger variables:
- Total cart value: The overall price of all the items in the user’s cart.
-
Items in cart: The following properties are available for this value:
- Product quantity: Number of instances of a particular product in the user’s cart.
- Product total price: Total price of all instances of the particular product in the user’s cart.
-
All your product feed properties:
- Default (when you add this variable from the dropdown): ${Items in cart|sku|Item 1}
Product View
- Available trigger variable: Recently viewed products
- Available properties: All your product feed’s properties
- Default (when you add this variable from the dropdown): ${Recently viewed products|sku|Item 1}
Price Drop
- Available trigger variable: Products with a price drop
-
Available properties:
- Price Drop (%)
- Price Drop ($)
- Previous Price
- All your product feed’s properties
- Default (when you add this variable from the dropdown): ${Products with price drop|sku|Item 1}
Custom
-
Available trigger variable:
- Items in cart (available only for cart events: sync cart, add to cart)
- Recently viewed products
- Structure: Strategy (fixed) | Attribute name | Slot #
- Available properties: All your product feed’s properties
Recommendation variables
Recommendation block variables enable you to recommend products to your users based on strategies you've created in your section, using properties from your product feed.
- You can include up to 3 recommendation blocks. When you start typing the variable name, you can select Recommendation Variable 1, 2, or 3 from the dropdown.
The JSON looks like this:
- Edit the variable as needed, listed from right to left:
- Slot number: ("item 1" in screenshot) The sequential number of the product from the API call, for a specific recommendation strategy.
- Product property: ("sku" in screenshot) The property (column) of a specific product, from your product feed.
-
Recommendation strategy: ("Recommendation block 1" in the screenshot) Go to the Variables tab, and select the strategy to apply to this block:
You can create a new strategy by clicking Create New Strategy. The strategy is added to your section's assets.
Each strategy in the dropdown includes:- The strategy name (for example, "Homepage Affinity")
- The strategy's algorithm (for example, "User Affinity")
Strategies that require additional context
Some strategies use algorithms that require context. For example, if your strategy uses the algorithm “Purchased with”, you'll need to provide the context of the purchased items, as illustrated in the following image. If you select a strategy that uses any of the following algorithms, a dropdown appears offering contextual options:
- Similarity
- Viewed together
- Purchased together / Purchased together Offline / Purchased together Offline & Online
Integration variables
Integration variables are a group of technical parameters that serve the integration call. These variables do not appear in the message and are mostly used by messaging providers to monitor and debug messages sent by Dynamic Yield. They don't have any additional settings, nor do they appear in the Variables tab.
Variable | Values | Description |
---|---|---|
User identifier |
Email: Hashed email, Email, Other SMS: Phone number Push notifications: PushID |
The identifier type is determined in the channel integration. For example, if you set the identifier as hashed email when you set up your email integration, the dropdown for this variable will offer that option in an email message; whereas for an SMS message it will offer the phone number identifier. |
Request ID | A unique numeric value | A unique ID generated by Dynamic Yield for each message request that Reconnect triggers. |
Request timestamp | YYYY-MM-DDTHH:mm:ss.SSSZ | |
Tracking pixel |
Example: <img src=\"https://www.acme.com/tremop/ |
Available for email only. Enables Dynamic Yield to track the email. For example, whether or not the email was opened. |
Tracking link |
Wrapping link
Example: http://trem.dynamicyield.com/tremclk/?{redirectQuery} |
Available for email only. To track clicks and measure campaign performance, URLs that are retrieved from the product feed as variables (example: ${Items in cart|url|item1} ) are automatically wrapped by Reconnect before they're sent to your messaging provider. Learn more about Responsys template parameters. |
Push tracking |
Example of the content the variable is converted to upon sending the message: { |
Available for app/web push notifications only. When push notifications are sent from Reconnect, you're required to add a tracking parameter to the reporting events, to enable Dynamic Yield to track the actions that are attributed to the push. Note: To use this data in the Track Engagement API, you'll need to extract the contents of the trackingData parameter from Firebase, and populate it into your engagement call. |
Twilio SMS messages
For Twilio, the expected payload is plain text, not JSON format. You can inject any of the available variables into the text by typing ${
For example:
You can also insert text variables into the payload, making the contents easier to edit from the Variables tab:
Web push messages
Web push notifications are sent via Firebase, which expects the message body in a defined JSON format.
The following content items can be included in a web push notification.
Note: Some content items are not supported across some browsers or devices. For example, Safari notifications don't support large image display.
- Browser icon (not editable)
- Browser name (not editable)
- Website domain (not editable)
- Timestamp (not editable)
- Title
- Body
- Icon
- Image
- Redirect link
- Actions (buttons)
Preview web push notifications
Web push notifications can be previewed in the Design tab of the content editor.
The Design tab simulates a desktop view of Chrome on macOS and a mobile view of Chrome on Android 14.
Email campaigns using Twilio SendGrid
Sendgrid offers a Transactional Emails endpoint, enabling you to send API calls from an external source to Sendgrid. The calls can contain custom fields that can be used as dynamic content in the Sendgrid platform as Handlebars (similar to the Dynamic Yield dynamic variables).
Templates
SendGrid enables you to create HTML-based dynamic templates for your email campaigns:
- In SendGrid, go to Email API › Dynamic Templates, and click Create a Dynamic Template.
- Enter a name for the template, and then click Create. The template is created in the grid.
- Click the new template, and copy/save the Template ID. This ID must be used in the API request.
- Click Add Version, select an editor to work with, and click Continue.
- Design editor: Recommend for ease of use.
- Code editor: Create custom HTML code as needed.
- To inject the data sent from Reconnect in the API call (to trigger the campaign), replace relevant content with dynamic variables using double curly brackets ( {{variable name}} ). Learn more about using dynamic content (handlebars) in SendGrid.
- To preview simulated content, go the Preview tab and click {} Show Test Data.
- Set the template to to enable its use in email campaigns.
Note: In the HTML code editor, make sure that the product components in your email are not displayed when a value returns empty. Learn how, using conditional statements.
Expected JSON body structure
{
"personalizations":[
{
"to":[
{
"email":"example@sendgrid.net"
}
],
"dynamic_template_data":{
"total":"$ 239.85",
"items":[
{
"text":"New Line Sneakers",
"image":"https://marketing-image-production.s3.amazonaws.com/uploads/8dda1131320a6d978b515cc04ed479df259a458d5d45d58b6b381cae0bf9588113e80ef912f69e8c4cc1ef1a0297e8eefdb7b270064cc046b79a44e21b811802.png",
"price":"$ 79.95"
},
{
"text":"Old Line Sneakers",
"image":"https://marketing-image-production.s3.amazonaws.com/uploads/3629f54390ead663d4eb7c53702e492de63299d7c5f7239efdc693b09b9b28c82c924225dcd8dcb65732d5ca7b7b753c5f17e056405bbd4596e4e63a96ae5018.png",
"price":"$ 79.95"
},
{
"text":"Blue Line Sneakers",
"image":"https://marketing-image-production.s3.amazonaws.com/uploads/00731ed18eff0ad5da890d876c456c3124a4e44cb48196533e9b95fb2b959b7194c2dc7637b788341d1ff4f88d1dc88e23f7e3704726d313c57f350911dd2bd0.png",
"price":"$ 79.95"
}
],
"receipt":true,
"name":"Sample Name",
"address01":"1234 Fake St.",
"address02":"Apt. 123",
"city":"Place",
"state":"CO",
"zip":"80202"
}
}
],
"template_id":"[template_id]"
}