How to Effectively Handle Inventory Based Limiting in Bloomreach Engagement
This is how we solved a common back-in-stock problem in Bloomreach Engagement
About the Author:
Co-founder of Datacop, agency that fulfils marketing operation roles in large eCommerce companies such as OluKai, Melin, Roark, Visual Comfort and Company, Dedoles and others.
At Datacop we have a lot of experience setting up advanced automated email scenarios such as “Low-Stock”, “Back-In-Stock”, “Price-Drop”. These scenarios consistently deliver incremental revenue gains. Learn more about how we implement Back In Stock scenarios at Datacop in a previous substack article here:
However, a common obstacle to the implementation and performance of these scenarios are issues with product inventory mismatch with demand. For example consider when a popular Product A’s inventory is “Back-In-Stock”, such as 25. Because the product is popular, there are 3000 potential recipients of the Back In Stock email with Product A. Assuming a conservative 2.5% conversion rate from the 3000 potential recipients - we could expect to sell 75 stock of Product A from the send out, way more than the 25 available.
This is not desirable, because this may result in a lot of interested customers clicking through to the Product A they were alerted is Back In Stock, however by the time they visit the shop the product has already sold out again.
To deal with this problem a common request we receive at Datacop is - how is it possible to “throttle” sending of the 3000 emails so that we notify only 40 email recipients per stock available at once?
So that instead of sending an email about Product A being back in stock to all 3000 recipients on day one, only send to a (25 units * 40 rate) = 1000 recipients in day one.
On day 2 check again how many units are left from Product A. Let’s say that after day one, only 15 units of Product A remained, then (15 units * 40 rate) = 600 recipients on day two. And so on.
How to implement a limit rate per available inventory in Bloomreach?
To implement the limiting rate per inventory solution in Bloomreach Scenario’s we recommend using Customer Limit node. That is one of the available operators in the scenario’s drag and drop menu. A customer limit node sets the maximum number of customers that can pass through that node. Once the limit of the node is met, every additional profile will not be allowed to pass through.
To make this node limit users based on which product_id they are eligible to receive and also to check against the stock_level of the product_id in the catalog, three additional steps are required.
Step 1 - Enable drill down in customer limit node
By default, the customer limit does not distinguish between profiles and counts every profile that passes through the node towards the set limit threshold.
If we want to be able to limit the sends per product_id , you must enable “allow drill down group”. This functionality will add the “drill down group (optional)” box. Here jinja can be placed to add multiple limits within a single node. This will mean that not all customers are counted towards the total threshold count, but each customer contributes only to the limit bucket to which they belong.
The jinja objects that can be used in the drill-down group box are - event trigger, customer attributes and webhook responses.
Step 2 - Define dynamic product_id in drill down
“Back-In-Stock”, “Low-Stock” and “Price-Drop” may have multiple methods of how they can be implemented, typically the use-case generates a trigger event for each customer per time interval (usually a day), that contains within the product_id information used to then populate the email creative.
The trigger events, is what we can use to create drill-down groups within the limit node using the jinja - {{ event.product_id }}.
Step 3 - Define dynamic limit
So now that we can drill down per product_id within a single limit node, how do we retrieve the current stock level count of the product_id? And then where do we place the constant value that defines the # of recipients per stock_level per product_id?
To do the above logic, instead of placing a number such into the “limit to # of customers” box in the node - place the following jinja:
{{catalogs["catalogname"].item_by_id(limit_group).inventory|int*40}}
where [“catalogname”] refers to the name of the catalog that contains the stock_level information
where “(limit_group)” is a Bloomreach Engagement special jinja object that refers to the value per customer in the “drill-down group” jinja. So in this case the event.product_id.
where “.inventory” refers to the inventory attribute name in the catalog
where “40” is the constant value to define the rate of recipients per stock available
How many emails per unit stock should you send?
When discussing this use-case with clients, sometimes there is a tendency for the number of emails send per unit stock set to anywhere between 2 to 5 to emails per inventory per product per day.
We believe this is way too low.
The reason for this is that the conversion rate of email campaigns to purchase simply is not that high. When there is a rate of 2 emails sent per product per stock, that assumes that 50% of the Back in Stock notification emails will convert to a purchase.
In our experience the automated “Back-In-Stock”, “Low-Stock” and “Price-Drop” scenarios tend to have a conversion rate to purchase from email delivered between - 2.5% to 10%, depending on their settings and the type of product sold. Those are still very high conversion rates to purchase as far as email campaigns are concerned.
The best way to approach this is to monitor the conversion rate to purchase of your Back In Stock campaign and adjust the rate of emails per stock depending on the performance of the campaign.
If you have not implemented it before and thus don’t have a starting CR% base to go from, I would suggest to start with 20 per unit (suggesting that 5% of recipients will convert to purchase) and evalaute after the first 30 days based on the performance whether adjusting the rates is needed.
If the CR% is higher, for example 10% then lower the number of units to 10; alternatively if the CR% is lower, for example 4% then increase the number of units to 25 per stock per day.
Implementing Automated Scenarios
If you’d like to discuss the implementation of automated scenarios in Bloomreach with us or any questions related, feel free to book a free 30 minute meeting below.
If you found this article useful
If you enjoyed it, don’t miss out on future articles—subscribe for free and have our latest content delivered straight to your inbox.