Mindful Containers is a fictitious company that is creating containerized microservice applications. They…
Editor’s note: With the events of 2020 driving an enormous shift to online shopping, martech provider Bluecore was in prime position. One of our Google Cloud Tech Partners for the Year in Retail, Bluecore offers a marketing platform to over 400 retail brands that combines data and predictive intelligence for targeted campaigns. Here, we look at how Google Cloud SQL’s managed services freed up Bluecore’s valuable time and energy so they could continue to innovate.
At Bluecore, we help large-scale retail brands transform their shoppers into lifetime customers. We’ve developed a fully automated multi-channel personalized marketing platform that leverages machine learning and artificial intelligence to deliver campaigns through predictive data models. Our product suite includes email, site, and advertising channel solutions, and data is at the heart of everything we do, helping our retailers deliver personalized experiences to their customers.
Because our retail marketing customers need to access and apply data in real time in their UI—without downtime or a drop in performance—we needed a new database solution. Our engineering team was spending valuable time trying to create and manage our own relational database, which meant less time spent on building our marketing products. We realized we needed a fully managed service that would fit into our existing architecture so that we could focus on what we do best. Google Cloud SQL was that solution.
Personalized shopping experiences
Our retail marketing customers can create highly precise campaigns inside the Bluecore app by applying their marketing and campaign messaging to target customers based on triggers such as referral source, time on page, scroll depth, products browsed, and shopping cart status. Based on those rules, our product intelligently decides which information should be shown to which customers. Highly personalized campaigns can be created easily with drag-and-drop features and widgets such as campaign-specific images or email capture.
Our requirement for a database was full campaign creation functionality that uses metadata, including type of campaign (pop-up, full-page, etc.), timed campaigns (Christmas, Black Friday, etc.), and targeted customer segments. This campaign metadata needs to be connected and available in real time within the UI itself without slowing down the retail brand’s website. So a marketer’s customer who has a high affinity towards discounts, for example, can be shown products with high discounts when browsing products.
Once the campaign is rendered, we can measure who engaged with the campaign, what products they browsed, and whether or not they made a purchase. Those analytics are available to the e-commerce marketer and also to our own data science team, so we can measure which campaigns are most effective. We can then use that information to optimize our features and our retail brands’ future campaigns.
Using the same underlying data sets and feeds, we can tie the email capabilities to the site capabilities. For instance, if the customer hasn’t opened the email in a certain amount of time, and they visit the website, we can show them a campaign. Or if they’ve read a brand’s email, we can show them a different offer. The email and site channels can be used independently or together, according to the marketer’s preference.
Needing a real-time solution
Our first use case with Cloud SQL was around the storage of campaign information. We have a multi-tenant architecture. Our raw data such as user activity (clicks, views) is stored in raw tables in BigQuery. At first, our campaign information was stored in Datastore, which can scale easily, but we found out very quickly that our data fits a relational model much better and we started using Cloud SQL..
If a marketer makes a change to one campaign, it can affect many other campaigns, so we needed a solution that could take that data and apply it immediately without degraded performance or a need for downtime. This was a mission-critical feature for Bluecore.
Choosing Cloud SQL
In evaluating relational databases, we looked at a few options, and even tried at first to set up our own MySQL using Google Kubernetes Engine (GKE). But we quickly realized that turning to our existing partner, Google, could deliver the results we needed while freeing time for our engineers. Google Cloud SQL had the fully managed database capabilities to provide high availability while handling common time-consuming tasks like backups, maintenance, and replicas. With Google ensuring reliable, secure and scalable databases, our engineers could focus on what we do best, enhancing our marketing platform’s features and performance.
As an example, one feature that we developed is allowing our retail brand clients the ability to offer custom messaging in real time. For example, we can send a personalized message offering a coupon code in exchange for a customer’s email signup to a customer who has looked at five web pages but hasn’t yet added anything to their cart.
Cloud SQL plays well with Google Cloud’s suite of products
In addition to our BigQuery and Cloud SQL services, we rely upon many of Google’s related managed services across our infrastructure. Events are being sent from web pages to Google App Engine from which they are queued into Pub/Sub and processed by Kubernetes/GKE. Our UI is hosted on App Engine as well. It is extremely easy to communicate with Cloud SQL from both App Engine and GKE. Google continues to work with us to realize the full capabilities of the services we use, and to determine which services would best accelerate our growth plan.