AWS Messaging & Targeting Blog

Amazon Personalize optimizer using Amazon Pinpoint events

Note: This post was written by Ryan Lowe, an AWS Solution Architect and Chelsea Graf, Senior Pinpoint PM.


This is the second of two posts in our series on personalization with Amazon Pinpoint. Today’s customer expects a high level of personalization in order to continue engaging with an enterprise.  Rather than a generalized marketing campaign, enterprises use curated messaging to lower churn rates, increase consumer interaction, and drive higher conversion rates. Many enterprises are turning to machine learning to deliver personalized product recommendations or promotions at scale. In order to maintain an effective and relevant machine learning model, you need high volumes of recent behavioral data. Without an automated data pipeline, retraining is manual, inefficient and risks a model becoming outdated.

AWS offers the Amazon Personalize Optimizer Using Amazon Pinpoint Events solution to help you easily connect your Amazon Personalize campaigns and Amazon Pinpoint projects. This solution allows you to train and publish models quickly without support from an engineer. You can define the frequency and the type of data used to retrain your models. Using an automated retraining loop frees you to build new models and keep them relevant for your marketers.

The following diagram illustrates the flow of data in this solution.

The AWS CloudFormation template configures the event stream in an existing Amazon Pinpoint project to use Amazon Kinesis Data Firehose to export behavioral events such as email opens. It also configures the latter to store event data in Amazon Simple Storage Service (Amazon S3). The Amazon S3 data schema is stored in an AWS Glue Data Catalog enabling data queries.

There is a constant flow of real-time data moving from Amazon Pinpoint through Kinesis Data Firehose and being stored in Amazon S3. When you send a campaign, Amazon Pinpoint connects with Amazon Personalize to retrieve a personalized recommendation. This recommendation is based on the Amazon Pinpoint recommender model configuration for each user identified in the campaign.

The AWS CloudFormation template also deploys a daily batch process orchestrated by AWS Step Functions. The process begins when an Amazon CloudWatch time-based event triggers a series of AWS Lambda functions. The functions use an Amazon Athena query to query customer data stored in Amazon S3. The query result is then used to retrain Amazon Personalize by providing new interaction data from the Amazon Pinpoint event data.

To get started, visit the Amazon Personalize Optimizer Using Amazon Pinpoint Events solution page on the AWS Solutions site.