Build a multi-language notification system with Amazon Translate and Amazon Pinpoint
AWS Architecture BlogBuild a multi-language notification system with Amazon Translate and Amazon Pinpointby Praveen Allam, Steven Warwick, and Srilatha Kola | on29 MAR 2022| inAmazon Pinpoint,Amazon Translate,Architecture,AWS Lambda,AWS Step Functions|Permalink|ShareOrganizations with global operations can struggle to notify their customers of any business-related announcements or notifications in different languages. Their customers want to receive notifications in their local language and communication preference. Organizations often rely on complicated third-party services or individuals to manually translate the notifications. This can lead to a loss of revenue due to delayed communication and additional operational expenses.This blog post demonstrates how to build a straightforward, cost-effective, and scalable multi-language notification system usingAWS Serverlesstechnologies. You can post a business-related announcement or notification in English, and based on the customer profile data, it will convert this announcement or notification into different languages. Additionally, the system will also deliver these translated announcements or notifications as an email, voice, or SMS.Example of a multi-language notification use caseA restaurant franchise company is adding a new item to their menu and plans to release it in North America, Germany, and France. The corporate office has decided to send the following notification.The company is adding a new item to the menu, and this will go live by May 10. Please ensure you are prepared for this change and plan accordingly.The franchise owners in Germany want to receive the notifications in the German language, whereas the franchise owners in France want to receive it in French. North American franchises want to receive it in English.Solution design for multi-language notification systemThe solution in Figure 1 demonstrates how to build a multi-language notification system usingAmazon TranslateandAmazon Pinpoint.AWS Serverless technologies handle automatic scaling, have built-in high availability architecture, and a pay-for-use billing model, which increases agility and optimizes costs. The system built with this solution is invoked usingREST API endpoints. Once this solution is deployed, it can be integrated with any frontend application where users can log in and send out notification events.Figure 1 illustrates the architecture of this solution.Figure 1. Solution architecture for multi-language notification system1. The restaurant franchise will log in to their UI to type the notification message in English. Upon submission, the notification message is sent to theAmazon API GatewayREST endpoint.Note:In this solution, there is no UI available. You will use a terminal to submit the message.2. Amazon API Gateway will send this message toAmazon Simple Queue Service (SQS), which will keep the HTTP requests asynchronous.3. The SQS queue will invoke the SQSAWS Lambdafunction.4. The SQS Lambda function invokes theAWS Step Functionsstate machine. This SQS Lambda function is used as a proxy mechanism to start the state machine workflow. AWS Step Functions are used to orchestrate the notification workflow process. The workflow process validates the message, converts it into different languages, and notifies the customers in their preferred way of communication (email, voice, or SMS). It also handles errors if any of the steps fail by usingSQS dead-letter queue.5. The message entered must be validated in order to ensure that the organizational standards are followed. To perform the message validation, we use theAmazon Comprehendservice. Comprehend’sSentimentanalysis will determine whether to send or flag the message. All flagged messages are sent for review.In the example use case message preceding, the message sentiment neutral score is0.85 confidence. If you set the acceptable score to anything greater than0.5 confidence, then it is a valid message. Once it passes the validation step, the workflow will proceed to the next step.If the message is vague or not clear, the sentiment score might be less than 0.5 confidence. For example, if this is the message used:We are adding a dish; be ready for it, the sentiment score might be only0.45 confidence. This is under the acceptable score, and the message will not be processed further.6. After the message is successfully validated, the message is translated into various languages depending on the customers’ profiles. The Translate Lambda function determines the number of unique languages by referring to the customer profile data in theAmazon DynamoDBtable. The function then uses Amazon Translate to translate the message to the different languages required for that notification event. In our example use case, the converted messages will look as follows:German (de):Das Unternehmen fügt dem Menü einen neuen Punkt hinzu, der bis zum 10. Mai live geschaltet wird. Bitte stellen Sie sicher, dass Sie auf diese Änderung vorbereitet sind und planen Sie entsprechend.French (fr):La société ajoute un nouvel article au menu, qui sera mis en ligne d’ici le 10 mai. Assurez-vous d’être prêt pour ce changement et de planifier en conséquence.7. The last step in the workflow is to build the notification logic and deliver the notifications. The Amazon Pinpoint Lambda function retrieves the customer’s profile from the Amazon DynamoDB table. It then parses each record for a given notification event to find out the delivery mode (email, voice, or SMS message). The function then builds the notification logic using Amazon Pinpoint. Amazon Pinpoint notifies each customer either by email, voice, or SMS.Code repositoryThe code for this solution is available onGitHub. Review the README file for detailed instructions on how to download and run the solution in your AWS account.ConclusionOrganizations that operate on an international basis often struggle to build a multi-language notification system to communicate any business-related announcements or notifications to their customers in different languages. Communicating these announcements or notifications in a variety of formats such as email, voice, and SMS can be time-consuming. Our solution addresses these challenges using AWS services with fewer steps than traditional third-party options. This solution also features automatic scaling, built-in high availability, and a pay-for-use billing model to increase agility and optimize costs. These technologies not only decrease infrastructure management tasks like capacity provisioning and patching, but provides for a better customer experience.Further reading:Building a serverless image catalog with AWS Step Functions Workflow StudioTwo-way translation, using Amazon Connect and Amazon TranslateBuilding multilingual SMS chatbot campaignsPraveen AllamPraveen Allam is a Solutions Architect at AWS. He helps customers in designing scalable, high-performance, and cost effective enterprise grade applications using the AWS Cloud. He builds solutions to help organizations make data-driven decisions.Steven WarwickSteven Warwick is a Solutions Architect at AWS. He is an engineer at heart with a passion for creating simple solutions to complex problems. He has a background in real time analytics and a passion for SaaS implementations. In his free time, he plays badminton and tinkers with IoT projects around the house.Srilatha KolaSri is a Technical Training Specialist in the AWS T&C organization for the Serverless domain. Sri develops technical and non-technical training content for customers. Prior to joining AWS, Sri worked in different technical roles specializing in automation and web development.
Organizations with global operations can struggle to notify their customers of any business-related announcements or notifications in different languages. Their customers want to receive notifications in their local language and communication preference. Organizations often rely on complicated third-party services or individuals to manually translate the notifications. This can lead to a loss of revenue due […]
Praveen Allam
Amazon Pinpoint Amazon Translate Architecture AWS Lambda AWS Step Functions