Optimally Leveraging AWS Pinpoint for Customer Engagement

Customer engagement strategies are constantly evolving. Companies are recognizing the importance of delivering an experience that makes them stand out from their competition. Read our blog on our approach using Pinpoint for an effective Customer Engagement.

Customer engagement in today’s world is becoming crucial, especially for B2C businesses in order to sustain higher growth rate and keep increasing revenue. With raising awareness due to the COVID-19 pandemic, solutions which involves no physical contact or presence will be most welcome.

There are several channels as well as tools available for such Customer Engagement mechanisms which are facing one or many of the below challenges.


Challenges with current tools:

  1. Multi-Channel engagements

There are not many tools in the current market that work together across multiple messaging channels. Numbers are dwindling if there is a need for integration between channels, which is a key requirement for seamless customer experience.

  1. Web App and Mobile App integration

In order to personalize the experience and keep up with the changing preferences of the customer, their interactions must be tracked and recommendations / responses must be provided in near-real time. This requires the integration of such customer engagement tools with your web and mobile application, which in most cases are non-existent.

  1. Customer journey customization

The expected feature of customer engagement tools is the design of a path for customers to follow, based on their interactions with the campaign. This helps to track the current position of the customer on their journey and the next steps to further engage the customer. Such features, if available, are generally pre-set with less room for customization and are generally not user-friendly.

  1. On-Site solutions

An added advantage if the solution / tool is to be hosted in the cloud rather than on-site. The resilience of the architecture in the event of natural calamities and the reliability of the solution is much better in the cloud than on-site tools.

  1. Analytics and Visualisation

Data is the new oil. Tracking and storing user data / comportment / preferences efficiently is a much-needed and rarely-satisfied feature of such engagement tools. This becomes a prerequisite for analyzing and visualizing data for data-driven campaigns, thereby sending highly targeted messages to the customer.

When we were approached by a financial company to come up with a solution to drive their customer engagement campaigns, we had a hard look at various tools and were inclined to Pinpoint, considering the client’s IT infrastructure is running on the AWS cloud.

AWS Pinpoint is a customer engagement solution provided by AWS that can send emails, text messages, voice messages, push notifications and use other custom channels such as Facebook Messenger, WhatsApp, allowing you to engage with your customers through multiple messaging channels.

Our approach using Pinpoint:

Configuring Pinpoint

The project / application in Pinpoint is a collection of settings, data, campaigns and segments that all share a common purpose. We start by creating a project by giving a name to it. Pinpoint comes out of the box with EMAIL / SMS / Voice Messages / Push Notification Channels. Once the AWS account was moved out of Sandbox and these channels were configured, we reworked all customer master data for each channel into a Pinpoint compatible format. The modified data was then imported into Pinpoint by uploading it to the S3 bucket and pointing the project with the appropriate IAM privileges to import the data from that bucket.

Campaign Hook

One of the client’s requirements was to send URLs, unique to each endpoint, to track their activity. Since SMS has a character length limit, we had to generate a Short URL when the campaign is running.


We used the WebsiteRedirectURL property of S3 objects to redirect it to the original long URL when the S3 object itself was requested. We used a custom domain (short one) and pointed the S3 URL to this domain using Route53. Run time modifications to segments can be made by using a lambda function as a hook for a campaign. During campaign execution, this lambda function is invoked for every batch of segments. We used the Pinpoint API to link the above lambda function to the campaign, and the solution worked like a charm. Use this feature to make use of cases that focus on personalizing user experience or fulfilling business functionality.

Custom Channels

A usage of Lambda function is not just limited to personalize content. Lambda, being a serverless compute platform gives us the flexibility to utilize it for various purposes including but not limited to sending messages through custom channels.

We can develop the lambda function to send events (push notifications) for every endpoint to the web server which will then forward those events to the front end (website) accessed by those endpoints. The ‘Mode’ of the campaign hook for the lambda function must be set to ‘DELIVERY’ to instruct lambda to avoid using the standard messaging channels

Web App Integration

Pinpoint has a well-documented REST API feature that can be tightly integrated with the web application code. Once done, the web application can retrieve payload data (event) about user behavior, preferences, session time, etc.

We preferred to use Cognito for handling user authentication and sessions along with Amplify for registering and updating endpoints. We then used this data to categorize endpoints into different segments and to send tailored messages for each segment in near-real time.


To run data-driven campaigns, we need data at the endpoint level that requires additional services and configuration. While the service comes out of a dashboard analysis box, macro information is not directly available for consumption.


We configured event data (e.g. emails opened, links clicked, etc.) that contains macro level information about the event, such as user I d, IP address, etc., to be streamed from Pinpoint to kinesis firehose, the destination of which is an S3 bucket. We used Lambda transforms feature of kinesis to segregate the events into different S3 prefixes. We had to go along with this approach as events do not have a common data schema and will therefore cause issues while crawling, if not segregated.

Glue crawler was then scheduled to run on the stored events to extract the metadata and populate the AWS Glue data catalog. We used Athena to run SQL queries to get the metadata-based data stored in the Glue Data Catalog.  We then used QuickSight, a data visualization tool provided by AWS to visualize the data. A challenge arose in connecting Athena with QuickSight, as there was no visualization service in the region where all the other services were configured.

We worked on this challenge using Athena’s CTAS statements to replicate the tables in the QuickSight region and scheduled a Lambda function to refresh the tables in Athena. Below is one of the prototypes used by the client to gain insight into their audience and the efficiency of campaigns and messaging activities.

Pinpoint is a service that, when optimally configured, can overcome many of the challenges faced by various customer engagement tools.  Even though the interface is a bit developer friendly, it’s easier for Business people to navigate the console in a short time.

Reach 1CloudHub consultants as we can help in configuring Pinpoint optimally for you to reap its benefits.


Written by:

Sripranav P & Umashankar N

Sharing is caring!

Subscribe to our Newsletter1CloudHub