Personalized offers

Azure Event Hubs
Azure Functions
Azure Machine Learning
Azure Storage
Azure Stream Analytics

Solution ideas

This article describes a solution idea. Your cloud architect can use this guidance to help visualize the major components for a typical implementation of this architecture. Use this article as a starting point to design a well-architected solution that aligns with your workload's specific requirements.

This solution builds intelligent marketing systems that provide customer-tailored content by using machine learning models that analyze data from multiple sources. Key technologies used include Intelligent Recommendations and Azure Personalizer.


Architecture diagram that shows how personalized offers are generated by incorporating product and offer views.

Download a Visio file of this architecture.


  1. An Azure Functions app captures the raw user activity (such as product and offer clicks) and offers that are made to users on the website. The activity is sent to Azure Event Hubs. In areas where user activity is not available, the simulated user activity is stored in Azure Cache for Redis.
  2. Azure Stream Analytics analyzes the data to provide near real-time analytics on the input stream from the Azure Event Hubs instance.
  3. The aggregated data is sent to Azure Cosmos DB for NoSQL.
  4. Power BI is used to look for insights on the aggregated data.
  5. The raw data is sent to Azure Data Lake Storage.
  6. Intelligent Recommendations uses the raw data from Azure Data Lake Storage and provides recommendations to Azure Personalizer.
  7. The Personalizer service serves the top contextual and personalized products and offers.
  8. Simulated user activity data is provided to the Personalizer service to provide personalized products and offers.
  9. The results are provided on the web app that the user accesses.
  10. User feedback is captured based on the reaction of the user to the displayed offers and products. The reward score is provided to the Personalizer service to make it perform better over time
  11. Retraining for Intelligent Recommendations can result in better recommendations. This process can also be done by using refreshed data from Azure Data Lake Storage.


  • Event Hubs is a fully managed streaming platform. In this solution, Event Hubs collects real-time consumption data.
  • Stream Analytics offers real-time serverless stream processing. This service provides a way to run queries in the cloud and on edge devices. In this solution, Stream Analytics aggregates the streaming data and makes it available for visualization and updates.
  • Azure Cosmos DB is a globally distributed, multi-model database. With Azure Cosmos DB, your solutions can elastically scale throughput and storage across any number of geographic regions. The Azure Cosmos DB for NoSQL stores data in document format and is one of several database APIs that Azure Cosmos DB offers. In the GitHub implementation of this solution, DocumentDB was used to store the customer, product, and offer information, but you can also use Azure Cosmos DB for NoSQL. For more information, see Dear DocumentDB customers, welcome to Azure Cosmos DB!.
  • Storage is a cloud storage solution that includes object, file, disk, queue, and table storage. Services include hybrid storage solutions and tools for transferring, sharing, and backing up data. This solution uses Storage to manage the queues that simulate user interaction.
  • Functions is a serverless compute platform that you can use to build applications. With Functions, you can use triggers and bindings to integrate services. This solution uses Functions to coordinate the user simulation. Functions is also the core component that generates personalized offers.
  • Machine Learning is a cloud-based environment that you can use to train, deploy, automate, manage, and track machine learning models. Here, Machine Learning uses each user's preferences and product history to provide the user-to-product affinity scoring.
  • Azure Cache for Redis provides an in-memory data store that's based on Redis software. Azure Cache for Redis provides open-source Redis capabilities as a fully managed offering. In this solution, Azure Cache for Redis provides pre-computed product affinities for customers with no available user history.
  • Power BI is a business analytics service that provides interactive visualizations and business intelligence capabilities. Its easy-to-use interface makes it possible for you to create your own reports and dashboards. This solution uses Power BI to display real-time activity in the system. For instance, Power BI uses the data from Azure Cosmos DB for NoSQL to display the customer response to various offers.
  • Data Lake Storage is a scalable storage repository that holds a large amount of data in the data's native, raw format.

Solution details

In today's highly competitive and connected environment, modern businesses can no longer survive on generic, static online content. Furthermore, marketing strategies that use traditional tools can be expensive and hard to implement. As a result, they don't produce the desired return on investment. These systems often fail to take full advantage of collected data when they create a more personalized experience for users.

Presenting offers that are customized for each user has become essential to building customer loyalty and remaining profitable. On a retail website, customers desire intelligent systems that provide offers and content based on their unique interests and preferences. Today's digital marketing teams can build this intelligence by using the data that's generated from all types of user interactions.

Marketers now have the opportunity to deliver highly relevant and personalized offers to each user by analyzing massive amounts of data. But building a reliable and scalable big data infrastructure isn't trivial. And developing sophisticated machine learning models that are personalized for each user is also a complex undertaking.

Intelligent Recommendations offers capabilities to drive desired outcomes, such as item recommendations that are based on user interactions and metadata. It can be used to promote and personalize any content type, such as sellable products, media, documents, offers, and more.

Azure Personalizer is a service that's part of Azure AI services. It can be used to determine what product to suggest to shoppers or to figure out the optimal position for an advertisement. Personalizer acts as the additional last-step ranker. After the recommendations are shown to the user, the user's reaction is monitored and reported as a reward score back to the Personalizer service. This process ensures that the service is learning continuously, and it enhances the ability of Personalizer to select the best items based on the contextual information received.

Microsoft Azure provides advanced analytics tools in the areas of data ingestion, data storage, data processing, and advanced analytics components—all the essential elements for building a personalized offer solution.

System integrator

You can save time when you implement this solution by hiring a trained system integrator. The system integrator can help you develop a proof of concept and can help deploy and integrate the solution.

Potential use cases

This solution applies to the marketing of goods and services based on customer data (products viewed or purchased). This could be applicable in the following areas:

  • E-commerce - This is an area where personalization is widely used with customer behavior and product recommendations.

  • Retail - Based on prior purchase data, recommendations and offers can be provided on products.

  • Telecom - Based on user interaction in this area, recommendations can be provided. Compared to other industries, the product and offer ranges might be limited.


This article is maintained by Microsoft. It was originally written by the following contributors.

Principal author:

To see non-public LinkedIn profiles, sign in to LinkedIn.

Next steps