AWS Public Sector Blog

Building a government update notification system

Now more than ever, citizens expect effective communications from government agencies in response to COVID-19. These state and local leaders are committed to serving their citizens with the latest news as fast as possible, but not all strategies reach citizens in real time. However, it takes time for the government to implement widely available communication services to provide timely, accurate information. One solution is to concentrate the delivery of information in a single communication channel: SMS text messages.

Based on a Pew Research Center analysis, 91 percent of American citizens have a mobile phone that’s text-ready, and SMS has a better read-rate in its entire lifetime than an email. To have more impact by notifying citizens of updates through a relevant channel, governments can build a push notification system on Amazon Web Services (AWS). With fully managed services like Amazon API Gateway, the system pulls from the government webpage and triggers an AWS Lambda function to publish the update message to the Amazon Simple Notification Service (Amazon SNS) topic. Then, it will notify citizens who have subscribed by registering their phone numbers. Read below to learn how to build and deploy this solution, if it’s available in your region.

Solution overview

Check out the GitHub repository that hosts this solution. To launch this system, use the AWS CloudFormation template (in the GitHub repository) titled covidUpdate.yml, to define your infrastructure as code. This template creates and manages the Amazon Simple Storage Service (Amazon S3) bucket, AWS Lambda functions, AWS IAM roles, Amazon CloudWatch event, Amazon Pinpoint phone number validation, and the Amazon SNS topic.

At present, this solution only works in the following regions: US East, AWS GovCloud (US), Europe, and Asia Pacific.

System architecture

Govt notification system architecture

To deploy

  1. Navigate to the AWS CloudFormation console.
  2. Create a new stack using the ‘CovidUpdate.yml’ file (in the GitHub repository)
  3. Enter a stack name. Example: ‘Notification solution.”
  4. Enter values for the following parameters:
    • Website’s URL to check for COVID-19 updates.
    • Name of the country where the solution will be deployed, which will change the language of the text messages sent (supports US English and FR French).
    • Lambda function name to register a citizen’s phone number as a subscriber into the SNS topic.
    • Lambda function name to check for website updates to see if there’s a difference between old page and current page every five minutes to publish updates to the SNS topic.
    • Lambda function name to publish to SNS topic when triggered by an API (government employee) to publish to SNS topic that there is an update.

Deploy.

Once launched, the solution will enable you to automatically register the phone number of a resident by creating a form on your website. It will generate an API call, managed by Amazon API Gateway, which will subscribe the phone number to the SNS topic already in place.

For each update on the website, the system calls automatically an API to trigger the Lambda function, and the citizen instantly receives a SMS text-message on their phone.

Limitations

Parts of this solution might be subject to some soft limitations such as the SMS text message feature’s availability on a specific region.

For instance, you have to consider limitations of the SMS text message feature of the Amazon SNS service. The default spend quota per account (if not specified) is 1.00 USD per month. If you want to raise the quota, submit an SNS Quota Increase case. For New Quota Value, enter your desired monthly spend quota. In the Use Case Description field, explain that you are requesting an SMS monthly spend quota increase.

Concerning countries where the feature is available, Amazon SNS supports more than 200 countries. Please refer to the SMS Supported Country List for a comprehensive list of supported calling countries. For SMS message sending to China, please contact us.

For more information regarding the limits of the service, please refer to our FAQ.

Conclusion

Check out the GitHub repository that hosts this solution. And learn more about AWS’s initiatives and response to COVID-19 and hear from other AWS experts on how technology can help public sector organizations continually deliver on their missions.