Travel impacts brought by the global pandemic left several airlines experiencing frequent flight disruptions, which increased flight scheduling change notifications being made to affected travelers.
Every month, tens of thousands of passengers and related flight crew have to be contacted to ensure that airlines maintain streamlined travel operations. International airlines must call and notify customers in multiple languages, across multiple locations, and in different time zones. Each notification creates a surge of return calls that requires live agent handling as customers update their travel plans.
In response, NLX, an AWS Advanced Technology Partner and AWS Travel and Hospitality Competency Partner, stood up a dynamic conversational AI solution within two weeks. With this solution, airline operators can automatically contact impacted customers and crew members, regardless of language, location, and time zone.
Initiating the customer callback process with Amazon Connect
The first step in defining the architecture was to establish how airline staff would initiate the callback process. For speed and simplicity, we encoded all the callback information into a CSV file. Multiple data points were included in the file to personalize the call notification. These fields include details like the passenger’s basic information such as name and phone number and their flight details, passenger name record (PNR), and language of preference. This CSV file created the easiest way to securely allow non-technical airline staff to start the notification process. Staff then upload the CSV file to an Amazon Simple Storage Service (Amazon S3) bucket with encryption enabled to protect passenger information (see  on Figure 1). In the future, the CSV file could also be created from the Passenger Sales System (PSS), a system of reference for PNRs that airlines manage and maintain, or from the PNR data lake.
Next, we created an S3 PUT function that invokes an AWS Lambda function every time a new CSV file is uploaded in the S3 bucket. The Lambda function initiates an AWS Step Functions workflow (see  on Figure 1) that reads and parses the file from Amazon S3. For each passenger entry, we use the AWS SDK to initiate an outbound call using Amazon Connect. Any error that occurs when initiating an outbound call is logged to Amazon CloudWatch. The specific event is then placed into one of three Amazon Simple Queue Service (Amazon SQS) queues (see  on Figure 1). Phone numbers that are formatted incorrectly or incomplete are placed in the “Bad Contacts” queue. If a throttling error is caused by making too many outbound calls or if there are too many concurrent calls at one time, those are placed in the “Throttled Contacts” queue. Finally, all the other events that cause errors are placed in the “Unhandled Contacts” queue. Failed contacts are polled from the SQS queues to be analyzed and retried.
The Step Functions (see  on Figure 1) are configurable to make outbound calls in batches of different sizes with wait times between each API call in addition to wait times between each completed batch. This allows for flexibility when working with large workloads. It also lessens the risk of hitting any limits on Amazon Connect, such as the number of concurrent outbound calls or the number of transactions per second for initiating outbound calls. Each outbound call is initiated with a set of attributes that contains the customer’s name and flight information.
Personalizing customer notifications with Amazon Pinpoint
Once a call is answered, a Smart IVR built using NLX Studio (available via the AWS Marketplace) and powered by Amazon Lex (see  on Figure 1) engages with the customer. First, the customer is prompted to choose their preferred language (in this case, English or Spanish) by either verbally confirming or pressing 1 or 2 on their keypad. Once the language is selected, the passenger’s information from Amazon Connect is passed to the Context Mapper API (see  on Figure 1). This allows the Smart IVR to greet the customer by their first name and deliver specific booking information. After that, a second API (see  on Figure 1) is invoked that uses Amazon Pinpoint to check if the originating phone number is a mobile phone or a landline. Logging these criteria satisfies one of our important goals: sending users an SMS with a personalized URL they can use to access to manage their upcoming booking. If the originating phone number is a landline, the customer is notified about a change to their booking. Then they are offered the option to enter a mobile phone number via the dial pad to receive a personalized link over SMS. If the originating phone number is a mobile phone, the notification is spoken out and sent using the SMS Sender API (see  on Figure 1), which uses the AWS SDK to send the SMS via Amazon Pinpoint. The URL from the message is shortened using Bitly to optimize SMS message length and for engagement analytics. After the SMS is sent, the Smart IVR asks the customer to confirm the receipt of the notification or repeat the notification, after which the call is ended.
Tracking KPIs with AWS Glue, Athena, and QuickSight
Knowing how many customers answered the call and changed their booking allows airlines to track their key performance indicators (KPIs). To achieve this, we enabled contact trace records to be streamed out of Amazon Connect and into an Amazon Kinesis Data Firehose delivery stream with an Amazon S3 destination (see  on Figure 1). A crawler is automatically invoked every hour by AWS Glue to update a table with new partitions in the data catalog. Amazon Athena is then used to explore the data and build queries that answer key business questions such as how many contacts have a landline number and entered their mobile phone number to receive the SMS. Additionally, Bitly reports containing the personalized URLs and click information are exported and delivered to Amazon S3 to be joined with the Amazon Connect contact trace records. This enables queries that address how many passengers have clicked on the links and can be further joined with internal datasets about booking changes to get the full picture. Finally, the solution can use Amazon QuickSight to connect the Athena queries and produce dashboards that can be shared directly with the business stakeholders to ensure operational efficiency.
Because of the pandemic, airlines have been forced to explore ways of creating more customer intimacy and cohesion through every part of their travel experience. AI-powered automation by NLX and AWS delivers a platform/solution that not only creates cohesion but keeps the customer at the center of the brand experience. From a practical perspective, the same platform/solution delivers a new level of operational efficiency without compromising customer satisfaction. It also creates an engaging self-service option that cuts across channels while delivering high levels of personalization.
This article was originally published on the AWS Architecture Blog.