...
Overview
In this document we describe how to configure Trigger Mail in Boxalino BigQuery environment and how the result can be integrated in e-mail system like MailChimps for the sending of the e-mail and with Boxalino Real-Time strategies and compositve images / redirect links for the dynamic content of the e-mail.
As indicated in the following diagram, the steps are as follow:
Have you core data well integrated in the Boxalino Data Warehouse in BigQuery
Configure the calculation of Triggers and products according to your needs (see section “Configure Triggers” for details)
The system will generate the triggers and delay or cancel planned trigger mails depending on the marketing pressure configuration (e.g.: maximum number of e-mail per day or week, see section “Configure Marketing Pressure” for details).
Then, the process splits in two parts: Re-Target (bottom part)
Boxalino Mailchimp connector will automatically update the generated fields in Mailchimp (see section “Mailchimp connector” for more details). If you don’t have Mailchimp, you will need to pull the data from the lab table “subscriber_properties” and synchronize them with your e-mail system.
Configure the name of your Mailchimp fields to match the names defined in the “Configure Triggers” step and the connector will automatically update all the audiences (i.e.: subscriber lists) defined for each trigger with Mailchimp.
You can set many fields in Mailchimp through this mechansims, but the ones we focus on here are the triggers with Marketing pressure. These fields must be of date format and then should be set in Mailchimp for the e-mail to be sent on that specific date.
Individualize (top-part)
Products (as well as content or banners) related to the triggers (and of course also not related to the triggers) are loaded in Boxalino Real-Time Cloud (RTC)
You can configure your widget strategies to return the right product/content/banner according to different parameters, including the specific products related to the triggers you defined (this part is not described in this document and fall into the general documentation of your widget strategies)
After configuring the templates of your different type of content (Products, Blog Articles, Banner) and configuring their automated generation in your Media Server, you can configure them in your e-mail content as dynamic link (this part is not described in this document and fall into the documentation of how to configure the dynamic links and image sources in your e-mail templates)
...
Configure Triggers
In the coming sections, we will list the supported trigger configurations.
...
The configuration is always done in the Configuration view “..._views.subscriber_properties”.
...
The results are always generated in the calculated Results table “..._lab.subscriber_properties”:
#1 - Date based on prior orders (nth_order_ts)
This trigger defines an date based on the prior orders of the customers. Either from the first orders (e.g.: 6 months after first order) or from the last orders (e.g.: no orders for the last 6 months).
Identify products for dynamic content?
repurchase : yes the product which should be repurchased
otherwise : no
Example cases:
Anniversary e-mail from first purchase
No purchase for the last 6 months (but a recent visit to the web-site)
Products you ordered are now in discount (use filter_product_property and filter_product_property_value to set products which are currently in discount)
Re-fill your stock (based on typical time between a repurchase of the same product)
...
Parameter Name
...
Typical Value
...
Comments
...
nth
...
1 / -1
...
Which order should be considered (1 = first, 2 = second, -1 = last, -2 = second to last, …). If all purchases should be considered (e.g.: for repurchase case) can be left unset or set with an empty string.
...
datetime_add_day
...
180
...
How many days should be added to the nth purchase (180 would make it 6 months later)
...
filter_product_property
filter_product_property_value
...
brand
Apple
...
should only purchase about specific product be considered? (if not, no need to define or define with empty string)
...
filter_customer_property
filter_customer_property_value
...
gender
Female
...
should only purchase about specific customers be considered? (if not, no need to define or define with empty string)
...
filter_order_property
filter_order_property_value
...
source
MobileApp
...
should only purchase of specific types of orders be considered? (if not, no need to define or define with empty string)
...
from
to
...
‘2000-01-01’
‘2050-31-12’
...
should the cases considered only be limited to a specific date range
...
set_today
...
0/1
...
should the date considered (before the application of datetime_add_day) be replace with today if a match is found
...
max_order_ts_days
...
30
...
should only the orders of the last X days be considered
...
visit_max_day
...
10
...
should only customers who recently visited the web-site during the last X days be considered
...
repurchase_type
...
avg_days_between
...
if defined, will considered the average days between two purchases of the same product (from all customer)
only set if needed (if not, no need to define or define with empty string)
...
repurchase_min_cnt
...
10
...
what is the minimum number of type customers have re-bought this product so it is considered (to filter out products which are not really repurchase-able)
#2 - Count based on prior orders (order_count)
This case defines an count based on the prior orders of the customers. Either a count of orders matching the conditions or a count of products matching the conditions.
This case is not a trigger as it exports a number which can be used for segmentation.
Identify products for dynamic content?
no
Example cases:
Newsletter to customers who bought brand Apple more than 3 times
Newsletter to customers who have over 3 products they bought currently in discount
...
Parameter Name
...
Typical Value
...
Comments
...
distincts
...
order_id / product_id
...
what should we count (distinct orders or distinct products in these orders)
...
filter_product_property
filter_product_property_value
...
brand
Apple
...
should only purchase about specific product be considered? (if not, no need to define or define with empty strings)
...
filter_customer_property
filter_customer_property_value
...
gender
Female
...
should only purchase about specific customers be considered? (if not, no need to define or define with empty string)
...
filter_order_property
filter_order_property_value
...
source
MobileApp
...
should only purchase of specific types of orders be considered? (if not, no need to define or define with empty strings)
...
from
to
...
‘2000-01-01’
‘2050-31-12’
...
should the cases considered only be limited to a specific date range
#3 - Customer Property (customer_property)
This case defines an count based on the prior orders of the customers. Either a count of orders matching the conditions or a count of products matching the conditions.
This case can be used both for trigger or not as customer properties might be dates (like date of birth) or not.
Example cases:
Birthday
Any customer property to be used for segmentation
...
Parameter Name
...
Typical Value
...
Comments
...
property
...
id / any property name
special names: dob / gender / zip / country
...
what customer property should be exported (typically id = e-mail address)
...
format
...
ts / string
...
is the format a date (ts = timestamp) or something else (string is sufficient as non time-stamp cases are stored as string)
...
birthday
...
true/false
...
if set to true, will replace the date (e.g.: date of birth) with the same date of the year but of the current year
...
datetime_add_day
...
180
...
How many days should be added to the date (only for ts format)
#4 - Ordered products (ordered_products)
This case defines an concatenated list of product property values based on the prior orders of the customers. Either a count of orders matching the conditions or a count of products matching the conditions. The values will appear all next to each other separated by a ','. You can then do segmentation by using a logic “if this field contains XXX”.
This case is not a trigger as it exports a number which can be used for segmentation.
Identify products for dynamic content?
no
Example cases:
Brands the customer already bought
Specific products the customer already bought
...
Parameter Name
...
Typical Value
...
Comments
...
property
...
id / any property name
...
what product property should be concatenated
...
filter_product_property
filter_product_property_value
...
brand
Apple
...
should only purchase about specific product be considered? (if not, no need to define or define with empty strings)
...
filter_customer_property
filter_customer_property_value
...
gender
Female
...
should only purchase about specific customers be considered? (if not, no need to define or define with empty string)
...
filter_order_property
filter_order_property_value
...
source
MobileApp
...
should only purchase of specific types of orders be considered? (if not, no need to define or define with empty strings)
...
from
to
...
‘2000-01-01’
‘2050-31-12’
...
should the cases considered only be limited to a specific date range
#5 - Abandoned carts (abandoned_cart)
This trigger defines a date based on a recently abandoned basket.
Identify products for dynamic content?
yes, the products in the abandoned cart
Example cases:
Abandoned-cart follow the next day
Abandoned-cart follow up when a product of the basket is in discount
...
Parameter Name
...
Typical Value
...
Comments
...
datetime_add_day
...
1
...
How many days should be added to the nth purchase (1 would make it the next day)
...
filter_product_property
filter_product_property_value
...
brand
Apple
...
should only purchase about specific product be considered? (if not, no need to define or define with empty strings)
...
filter_customer_property
filter_customer_property_value
...
gender
Female
...
should only purchase about specific customers be considered? (if not, no need to define or define with empty string)
...
from
to
...
‘2000-01-01’
‘2050-31-12’
...
should the cases considered only be limited to a specific date range
#6 - Recent Product Changes (version_change)
This trigger defines a date based on a recently change on a product (new product, newly in discount, or other versioned properties).
Identify products for dynamic content?
yes, the products identified with recent change
Example cases:
New products of same brand you already bought
...
Parameter Name
...
Typical Value
...
Comments
...
type
...
new
...
what type of recent change (new = new product)
...
datetime_add_day
...
1
...
How many days should be added from the change (1 would make it the next day)
...
filter_product_property
filter_product_property_value
...
brand
Apple
...
should only specific product be considered? (if not, no need to define or define with empty strings)
...
filter_customer_property
filter_customer_property_value
...
gender
Female
...
should only purchase about specific customers be considered? (if not, no need to define or define with empty string)
...
link_type
...
bought
...
what type of connection between the customer and the product (bought means to compare with his purchase history)
...
link_product_property
...
id or any property
...
what product property should be considered for the link (e.g.: brand, means it will match if any linked products is of the same brand)
...
filter_link_product_property
filter_link_product_property_value
...
brand
Apple
...
should only specific linked products be considered? (if not, no need to define or define with empty strings)
...
filter_link_order_property
filter_link_order_property_value
...
source
MobileApp
...
should only linked purchase of specific types of orders be considered? (if not, no need to define or define with empty strings) - only used if link_type is “bought”
...
from
to
...
‘2000-01-01’
‘2050-31-12’
...
should the cases considered only be limited to a specific date range
Configure Marketing Pressure
You can configure your marketing pressure directly in the configuration of your triggers.
All the trigger configurations support the following parameters which, if defined, will automatically apply the desired marketing pressure logic.
...
Parameter Name
...
Typical Value
...
Comments
...
trigger_active
...
1
...
if not set to 1, the trigger is not included in the marketing pressure limitation logic
...
priority
...
1
...
highest priority will stay and lower priority will be delayed / cancel (1 is the highest priority), in case of similar priority, the selection is arbitrary
...
maximum_delay_day
...
14
...
what is the maximum number of day the e-mail can be delayed (if would need to be delayed more, then will be canceled)
...
maximum_frequency_day
...
60
...
what is the minimum time between two sending of the same trigger to the same customer
In addition, there is a general configuration your marketing pressure in the view “subscriber_config”
...
Creating a successful Customer Retention program is no easy task:
creating communication content takes a lot of resources and doesn’t always raise a lot of attention
typical trigger mails are often hard to setup and, with a few exceptions, don’t contribute much to the total sales
print is expensive and hard to track
etc.
Boxalino RE-TARGET is an attractive solution to help you in such a task in several ways:
Centralize and simplify the control and configuration of your marketing automation, here especially trigger mails and print from your BigQuery Data Warehouse
Unify the trigger and targeting logic with the dynamic content of the mail or print with Boxalino INDIVIDUALIZE supporting both with API and Dynamic Pictures integrations (compatible with any mail system)
Easy and customizable integration of audiences with main players like Mailchimp and with Boxalino Data Feeds
Go beyond E-mail and Print and create audience feeds for your Online Advertising with the same technical solution, configured in the same way
Technical solution
See the technical documentation how to configure RE-TARGET Triggers in BigQuery
What are the challenges?
What is wrong with typical approaches?
...
At Boxalino, we have the believe that too much focus is typically put on customer targeting and segmentation and not enough on relevance.
Don’t understand us wrong, targeting is very important. For example, to identify when you might lose a customer (customers at risk) is critical, but it’s not enough, knowing customer are at risk doesn’t magically gives something interesting to tell them.
As a result, your e-mail (or print) is likely going to be ignored and the prediction that the customer will be lost is not effectively avoided in most cases.
In that logic, knowing even more precisely when the customer is at risk might not change anything in the outcome (sending a message a few days before or later will not change anything if the customer is not interested in it).
What is the solution?
What can we do if customers don’t even open your mails?
Some improvement can help but only a little bit, like optimizing the time and day of the sending, the headline (and sub-headline appearing on the mobile phones before opening the e-mail) and avoiding overloading your customers with too many e-mails (making them ignore them by default).
What can make a bigger difference is to communicate not only by e-mail, but also by print, with online advertisement and, what is the most important, on the web-site itself.
Take the typical “newsletter subscription” invitation (often an overlay appearing on your web-site) and apply the same concept for what you wanted to communicate. If you consider a customer at risk and would like to offer him some incentives, make sure to show them this communication in case they do visit your web-site!
What makes the communication content relevant?
This brings us to the central opportunity which can be resumed like this:
Communicate to your customers when you have something of personal relevance to tell them
Which brings the key question of what are the triggers which make a content relevant for someone. We believe it is best answered by having a good answer to the following questions:
Why now?
That’s the most important question. As a customer you can try to communicate anything at any time to me and many other e-shops already do so, so why should I pay attention to your message now?Why me?
That’s the second part of the solution. You might have a special deal which is only for today (which answers to the Why now?) but if I don’t care about it, then it doesn’t work for me.
Depending on the case, the target might be more or less broad but the rule should be the narrower the better, because two offers might have the same value for the same customer but one might be addressing a target of 100 customers and the other of 10’000, the first one will often be perceived as more relevant.
Info |
---|
You can even artificially reduce the target scope, for example, if you are ready to give a customer 10% on everything, but you know he mainly buys a specific category of product, then showing him that the 10% is only on that category might make him pay more attention even if the offer is actually smaller. |
Our Top 10 Content Relevance Triggers
We provide here a list of Best Practices to consider to be relevant and develop your Omnichannel Communication with marketing automation:
Trigger | Why now? | Why me? | Comment | |
---|---|---|---|---|
1 | A product you bought is in sales | It just started to be in sales and might not be for long | You already bought this product | Limit to only “re-buyable” products, extend to similar products |
2 | A product of your wish-list is in sales | It just started to be in sales and might not be for long | You added this product to your wish-list | Expand beyond wish-list (you positively rated, you pinned, …) |
3 | A product you bought is getting some love | this product just got it’s 100th positive review | You already bought this product | Limit to only “re-buyable” products, extend to similar products Extend to other social proofs changes: number of sales in a month/day, became #1 in its category, … |
4 | A new product you might like just came up | It’s a new product that didn’t exist before | It’s something highly connected to your affinities | Play with different threshold of affinities |
5 | A new story you might like | It’s a new story we just published | It’s related to a topic you care about | Play with different threshold of affinities |
6 | You might be out of stock | we are predicting you are running out based on your last purchase | It’s a product you re-buy often | |
7 | Nice for visiting us again | You recently visited the web-site (after a long absence) | You didn’t buy anything for a while, but your visit makes us hope it can change | Especially important in case of a visit without purchase |
8 | Today, we celebrate your [OCCASION] | It’s your day (logic depends, but it is today) | This occasion is all about you individually | Try with : birthday, first purchase birthday, nth year as one of our VIP customers, … |
9 | For you only, 10% on your favorite brand/category | we can’t give this all the time, but we he some limited stock now only for our best customers | It’s a brand/category you already bought several times | Indicate that you value repetitive business and you see they like a special brand/category to make it about them individually Give a time limit (opens door for 10) |
10 | Your time is running out | Something you earned is about to be lost | It’s an individual offer, so it’s running out only for you | Try different timing : 1 day before, 3 days before, several times, … Combine with loyalty point if possible |