Field Notes: Understanding Carrier Codes, Message Structure, and Interaction Analytics with Amazon Pinpoint
AWS Architecture BlogField Notes: Understanding Carrier Codes, Message Structure, and Interaction Analytics with Amazon Pinpointby Edward Schaefer, Ninad Shringarpure, and Shai Perednik | on27 OCT 2021| inAmazon Pinpoint,Architecture,Marketing & Advertising,Technical How-to|Permalink|ShareIT developers are frequently looking for an analytics system that tracks app user behavior and engagement with various marketing campaigns. It can be challenging to differentiate between use cases and advantages of utilizing Long Codes, Short Codes and Toll-Free numbers to feed into interaction analytics. WithAmazon Pinpoint, developers can learn how each user prefers to engage and can personalize their end-user’s experience to increase engagement.In this blog post, we’ll evaluate the differences between Long Codes, Short Codes and Toll-Free and we’ll also discuss messaging templates andcreating journeysto customize events handling in Amazon Pinpoint.Typical use cases of Amazon Pinpoint include:Sending timely and targeted message to your customers promoting your products and services with basic templates or highly-personalized messages.Event-based campaigns can be used to send a message when a customer creates a new account or when they add an item to their cart but don’t purchase it. These communications are transactional in nature and can be sent on customer activities within your application.You can create customer outreach with millions in user communities and use built-in analytics to observe your campaign performance.SMS messaging forms one of the most critical communication channels with customers. Both one way and two-way messaging are supported by Amazon Pinpoint when you enable the SMS channel in your project.Architecture overviewThe following diagram illustrates a typical architecture for how Pinpoint integrates with various AWS services.Long codes, short codes, and toll-free numbersDedicated long codes and 10DLCA dedicated long code, also referred to as a long virtual number or LVN, is a standard phone number that contains up to 12 digits, depending on the country that it’s based in. You cannot request a long code for A2P messaging within the United States. Instead, you’ll need to request a 10DLC.Typically used for customer service-related communications, long codes also allow businesses to establish consistent experiences. This is done by using the same number to send both SMS text messages as well as voice messages to customers.In the United States, 10-digit long code (10DLC) numbers are designed specifically for high-volume Application-to-Person (A2P) messaging. Before purchasing a 10DLC, you must first register your company and create a campaign using the Amazon Pinpoint console. Since Jun 1, 2021, United States mobile carriers require 10DLC for A2P messages.Common use cases:Customer service, appointment reminders, two-way communications, fraud, or emergency notifications (10DLC), promotional messaging (10DLC).Advantages:Customer Trust and Brand recognition:10DLC and dedicated long codes are registered and dedicated to individual companies and campaigns. This means that if you send multiple messages to a recipient each message will appear to come from the same number.SMS and Voice capable:Businesses can use the same long code numbers for both SMS and voice communications to provide consistent contact experiences to their customers.High reliability and delivery rate (10DLC):10DLC has been adopted by United States wireless carriers specifically for business messaging. By requiring a registration and pre-vetting process, wireless carriers can support higher message volumes and better deliverability while protecting consumers from potential abuse.Low costs:10DLC and dedicated long code numbers cost less thandedicate short codes.Fast provisioning:Dedicated long codes are typically provisioned within 24-hours. 10DLC numbers are provisioned in about 1 week. These timelines are much shorter than the 10+ weeks needed for short code provisioning.Disadvantages:Carrier specific limits (10DLC):United States mobile carriers have announced varying throughput and volume limits depending on the tier assigned to your company. This can make planning more difficult. See10DLC capabilitiesfor an outline of carrier-specific limits.Limited Throughput (Long Codes):Mobile carriers limit the throughput rate of dedicated long codes to 1 message part per second (MPS) in Canada and 10 MPS in all other countries and regions. This creates a bottleneck when messaging thousands of recipients.Transactional messaging only (Long Codes):Mobile carriers prohibit the use of long codes for promotional or marketing messages. Violations could cause carriers to block messages, impose fines, or shut down service.Difficult to remember:Compared to 5-digit to 6-digit short codes, 10-digit numbers are more difficult for customers to remember and to enter into their devices.Toll-free numbersSimilar to dedicated long codes, toll-free numbers are 10-digit phone numbers beginning with one of the following area codes: 800, 888, 877, 866, 855, 844, or 833. Toll-free numbers are primarily used for transactional messages but they can be used promotional messaging if recipients opt-in to receiving messages and the opt-out rate is low.Common use cases:Customer service, appointment reminders, two-way communications, fraud or emergency notifications.Advantages:SMS and Voice capable:Businesses can use the same toll-free numbers for both SMS and voice communications to provide consistent contact experiences to their customers.Low costs:Like 10DLC and dedicated long code numbers, toll-free numbers cost significantly less than dedicate short codes.Fast Provisioning:Typically, toll-free numbers are available immediately after request submission.Disadvantages:Supported in United States Only:Currently Amazon Pinpoint only supports SMS-enabled toll-free numbers in the United States. A toll-free number cannot be used to send messages outside of the US.Limited Throughput:Mobile carriers limit the throughput rate of toll-free numbers to 3 MPS.Dedicated short codesDedicated short codes are 3-digit to 8-digit numbers are commonly used for high-throughput application-to-person (A2P) messaging workloads. Mobile carriers review and approve all new short code requests before making them active. This vetting process allows messages sent using short codes to bypass carrier filters.Common use-cases:Promotional messaging, emergency alert systems, mass communications, contest and voting submissions, and two-factor authentication.Advantages:High-throughput and high-volume messaging:Short codes are designed to be used for high volume messaging campaigns. The vetting and approval process required before activating short codes allows carriers to provide increased MPS throughput and daily message volume quotas while still protecting consumers from abuse.High reliability and delivery rate:Due to the lengthy approval and audit process required to acquire a dedicated short code, short codes are not subject to carrier filtering resulting in reliable message delivery.Easy to remember:Short codes are commonly 5–6 digits in length. This short length allows users to easily recognize and remember codes, increasing campaign effectiveness.Disadvantages:Lengthy Provisioning Time:It can take 8–12 weeks for short codes to become active on all carrier networks.High Cost:Short code numbers have high one-time setup and monthly fees compared to other originating identities.  For example, in the United States, there’s a $650 one-time setup fee plus an additional recurring charge of $995.00 per month foreach short code.Strict rules and regulations:Short codes are governed by different regulatory bodies depending on the country and region. For example, in the United States short codes are regulated by the Federal Communications Commission (FCC), Federal Trade Commission (FTC), and Cellular Telecommunications Industry Association (CTIA). ReviewBest Practicesto learn about the key SMS messaging laws around the world.Number typeNumber formatChannel supportTwo-way capableRequires registrationEstimated Provisioning timeSMS throughput (message segments per-second)²Pricing³1Long Code/10DLC10DLC:10 digitsLong Codes: up to 12 digitsSMSVoiceYes*Yes1 weekUnited States (US): Varies¹Canada (CA): 1 MPSAll other countries and regions: 10 MPS$1/mo + registration2Short code3–8 digitsSMSYes*YesUnited States (US): 12 weeksCanada (CA):16 weeksAll other countries and regions: VariesUnited States (US) 100 MPSCanada (CA): 100 MPSAll other countries and regions: Varies by countryUnited States (US): $650 setup + $995/moCanada (CA): $3,000 setup + $995/moAll other countries and regions: Varies3Toll-free10 digitsSMSVoiceYes*NoAvailable immediatelyUnited States (US): 3 MPSCanada (CA): N/AAll other countries and regions: N/A$2/mo¹https://docs.aws.amazon.com/pinpoint/latest/userguide/settings-10dlc.html²https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-limitations-characters.html³https://aws.amazon.com/pinpoint/pricing/#Numbers*visitSupported countries and regions (SMS channel)to check the SMS capabilities in your recipients’ countries.Message templatesWhen you start using Amazon Pinpoint, you’ll want to think about your message templates.  These templates are the context of your messages and can be used for any of the four supported messaging channels–SMS, Voice, Push Notifications, and Voice.When creating your templates, you can use custom attributes that you imported when building your segment.  We won’t be going into building your segments as that’s covered inBuilding segments.We’ll outline how to create a template for SMS messages as that’s focus for this blog post.  The first section we have to fill out is our template details. You can access template creation page by navigating to theMessage templatessection in the left ‘hamburger’ menu when on the pinpoint service page.Here you’ll start by naming your template and giving this initial version a description.  A sample format you can follow for naming your template names is channel_message-type_segment_target-campaign. For our example we’ll be using the name SMS_Transactional_NEUSA-Customers_WelcomeNewCustomer.Next, we’ll build our template. We open the attribute finder by clicking on ‘Case attribute finder’ on the top right of that section and then loading our “Custom Attributes.”When writing your message templates, you need to think through how these are perceived by the reader and if any words or phrases appear to be a spam message.  We’ll examine what makes a message to appear like spam in the next section as we cover message structure.Visit the documentation to learn thelatest guidance on templates.Message structureThe key part of building an Amazon Pinpoint template is the message.First, there are a few components that make up your SMS message; the greeting, body, and closing.  We’ll start with the greeting section as this is the first thing our recipients will read. When you build out your campaign in Amazon Pinpoint, more on Amazon Pinpoint campaigns by visitingAmazon Pinpoint campaigns, you choose the type of message you’ll be sending.  This is one of the reasons why our naming convention contains “message-type” portion. You choose between Transactional or Promotional Messages.When sending out promotional messages you’ll want to avoid directly addressing the person by name in the greeting.The reason for this is when sending out promotional messages they are traditionally sent in bulk through various carriers around the world.  Therefore, using the recipient’s name in the greeting could be viewed as a targeted spam message and something you should avoid when creating templates for your promotional messages. Instead consider using your company name for the greeting as this quickly tells readers who the message is from upfront.Transactional messages have a bit more leeway when it comes to the greeting section and the recipient’s name can be used, with some caveats.  You’ll still want to avoid using language that indicates spam, for example, punctuation like “Hi Bob-” or “Greetings Jane!” and instead greet your customers with a purpose “Bob’s order record:” or “Jane: Account Update”. Otherwise, you can leave out the name all together or substitute it with your company name. The goal with the greeting in a transactional message is to give the user an idea what the message is about.Now that we have an idea of our greeting, we move onto the body which will contain the context of your message and any links or data you may want to pass on to the customer. Let’s start off with introducing randomness and taking advantage of the “Attributes Finder” panel we enabled earlier.  We can use attributes for common things like the customer’s name, account identifier, payment due, city, or any other information we may have on the recipient as part of our segment for our template as well.If a URL is needed for the user to perform some action once they receive that message, this is an easy way to achieve randomness. We’ll want each URL to be unique which we can do by using a URL shortener like the one described by Eric Johnson @https://aws.amazon.com/blogs/compute/building-a-serverless-url-shortener-app-without-lambda-part-1/. Other options to add uniqueness to our message might be a timestamp with the seconds, an anti-phishing phrase, city or zip-code, or any other unique information that’s ideally not something personally identifiable.In the example below, we’ve used the following template:[Attributes.CompanyName] Purchase the items today and receive[Attributes.DiscountAmount] of your next order.  Visit[Attributes.ShortURL] to checkout and complete your order.When messages are sent that use this template, Amazon Pinpoint will use the custom attributes provided in the segment data to populate the custom fields.Proactive interactionsWhen sending messages to customers, it’s important to think about how to handle certain events that may come back from a message sent to a customer.  These include common events such as a customer opting out of messages or a message failure.  We’ll start by handling opt-outs as this is a common one and sometimes unintentional.In the below screenshot, we’ve setup a Amazon Pinpoint journey (for more information about journeys, visitAmazon Pinpoint journeysto take actions based a customer’s response to a message.  If the customer responds back to the message with “stop”, we’ve setup the yes/no split to invoke a Lambda function and send the customer an email.  In this case our email may include a message like “You have opted out of SMS messaging, if this was unintentional, please visit your account to reactivate.”We invoke a Lambda function to update the customer record with their SMS status.  On the customer portal, you could then have a button next to the SMS status, that when clicked, calls the appropriate APIs to opt-in the customer.  Another way to achieve this is to validate phone number using Pinpoint’svalidation APIeven before the page loads and then show the same button the customer.Another common scenario are message failures, which we can address in the same manner. Our journey is configured with the same entry, SMS send, and yes/no split. However, this time we evaluate if the message failed, and if it does, we send an email to the customer. Similar to opt-outs, we can use a Lambda trigger to update the customer database and then prompt the user to update their phone number. This scenario is commonly caused when phone numbers are incorrect or entered in wrong format. So, a great way to reduce errors is to validate the phone number after the customer enters it in (more information abouthow to validate numbers in Amazon Pinpoint can be found in the Developer Guide)The following flow shows a typical Pinpoint journey and integration with your application backend.ConclusionIn this blog post, we showed you how to use features of Amazon Pinpoint like templates, and then journeys, to automatically resolve failed messages, opt-outs, and other events. We also reviewed the various types of phone number options available in Amazon Pinpoint, as well as how to monitor your usage.From here, navigate to the console, setup your project in Amazon Pinpoint, and begin testing the various channels. We recommend watching avideo on building immersive experiences with Amazon Pinpoint and Journeys. We have only just begun showing you what is possible with Amazon Pinpoint today.Field Notes provides hands-on technical guidance from AWS Solutions Architects, consultants, and technical account managers, based on their experiences in the field solving real-world business problems for customers.TAGS:Field NotesEdward SchaeferEd is a Solutions Architect at Amazon Web Services, based in Delaware. He works with enterprise customers from a variety of industry verticals, helping them to innovate and achieve their business goals using the AWS Cloud. Ed draws on over 18 years of experience in multiple technology roles including operations, product management, software engineering, and architecture. Outside of work, he enjoys spending time with his family, cooking, reading, and traveling.Ninad ShringarpureNinad is Senior Solutions Architect at Amazon Web Services working with mid-large enterprises helping them through their cloud journey with architectures and solutioning. He has worked for over 12 years with customers in various sectors like Financial Services, Insurance and AdTech. Data is his passion and specializes in Data Platforms, Analytics and Machine Learning.Shai PerednikShai is a Senior Solutions Architect at Amazon Web Services, who for the last 15 years has been focusing on helping enterprise and public sector organizations modernize IT. He is passionate about transforming traditional enterprise IT thinking and pushing the boundaries of conventional technology usage. He has worked in the IT industry for over 20 years, and has held various technical management positions, covering architecture, operations management and technical support. He has worked with a range of customers, including start ups, financial services, and traditional enterprises.
IT developers are frequently looking for an analytics system that tracks app user behavior and engagement with various marketing campaigns. It can be challenging to differentiate between use cases and advantages of utilizing Long Codes, Short Codes and Toll-Free numbers to feed into interaction analytics. With Amazon Pinpoint, developers can learn how each user prefers […]
Edward Schaefer
Amazon Pinpoint Architecture Marketing & Advertising Technical How-to