Cinemark With a Touch of Alexa

John Toral
14 min readMay 2, 2018

The Cinemark Alexa skill allows people to check movie showtimes, order tickets, and pre-order concession snacks from their favorite Cinemark location — all through the comfort of their voice.

Research: Surveying The Movie/Voice Landscape

To initiate my Voice Design journey, I first conducted some research on already existing Alexa skills that may already exist in the Alexa landscape for movie experiences—particularly, movie theater experiences. While searching through the Alexa skills store, I did manage to find one in the form of Fandango. However, I noticed that Fandango was lacking in one seriously important aspect: reviews. It was pretty clear that Fandango wasn’t doing so hot with its users due to its lackluster rating of only 2/5 stars. This lackluster rating was only made worse by the fact that 63% of these reviews were 1-star reviews. This led me to believe that something was definitely not right when it came to the design and implementation of this Alexa skill. And so I began to investigate.

Through my research, I learned that there were several reasons for the Fandango skill’s low rating, and they are as follows:

  • It was quite difficult to change which theater the skill was gathering its information from—it may as well not have had a feature to do so
  • There were problems with account linking—it just didn’t seem to work most of the time
  • If you did happen to get account linking to work, the skill would ask for your ZIP code—however, this ZIP code data was not used in presenting users with movie and theater options
  • When purchasing tickets at certain theaters, Alexa would reply back with “Sorry, I can’t purchase tickets at a theater with reserved seating”, making for a frustrating cat-and-mouse chase for an appropriate theater

Originally, I was planning to try my hand at a redesign of the Fandango skill. However, the above reasons—as well as a classmate—got me thinking about creating a voice experience for a specific movie theater chain instead of the myriad of theaters that Fandango has access to. Designing a voice experience for a specific theater chain would lead to an overall more streamlined experience and would eliminate several of the problems listed above. It would also allow me to do some pretty cool and unique things for a skill like this, which I will get to later in this article.

Solving Fandango’s Problems

Solving Fandango’s problems with this newly-thought-of Cinemark skill was not going to be easy. I had to really think hard about how to solve the problems that Fandango presented, and it took several hours to do so. I also essentially had about two weeks to do a fair amount of work that a whole team would usually be responsible for; of course, this impending deadline of doom really got my brain rolling and turning gears.

Problem #1: Changing Theaters and Account Linking

In order to solve the problem of users having difficulty switching between theaters within the skill and linking their accounts, I decided to incorporate seamless account linking with information gathered from a user’s official Cinemark account—an account that anyone can get for free. Before people could use the skill, I would require that they sign in to their existing Cinemark account or sign up for one if they don’t have one. Then, they would have do these two things:

  1. Cinemark account holders would have to provide their favorite theater’s location on the Cinemark website prior to using the skill, whose data would be gathered by the Cinemark Alexa skill.
  2. Cinemark account holders would have to provide their payment information on the Cinemark website prior to using the skill, which would also be gathered by the Cinemark Alexa Skill.

Requiring the skill to use a favorite Cinemark location instead of being able to search through every theater location—like Fandango currently does—makes for a more streamlined and voice-friendly experience. As a designer, I have to understand that voice-based interfaces can’t do everything well… at least not yet.

Additionally, requiring the two things mentioned in the list above would solve the skill‘s potential troubles of using this information effectively when it came to people asking the skill for showtimes, buying movie tickets, etc. There most likely wouldn’t be a problem due to this information already being tied to users’ accounts, preventing most—if not all—chances for error on this front.

Of course, if there was no warning within the skill to let users know about these requirements, then it would make for a frustrating experience indeed. That is why in order to let people know about the above requirements, Alexa would greet first-time users with this:

Alexa: Welcome to Cinemark! Movie showtimes, tickets, and more are just a couple steps away. However, you’ll first need to create a free Cinemark account or link your existing Cinemark account, as well as have your payment information and favorite Cinemark location up to date. The Cinemark skill uses this information to provide you with the best experience possible. Would you like to do this now?

Below is the account linking page that I designed specifically for this skill:

Problem #2: Reserved Seating

The Fandango skill does not let users buy tickets through the skill for a theater with reserved seating. My thought behind the Cinemark skill is that there is no need to prevent people from buying tickets for theaters with reserved tickets if Cinemark has control over all of their theaters, legalities, and policies. This being a highly-specialized skill—being only for Cinemark theaters—allows Cinemark a lot more freedom with their skill, allowing them to give any of their customers the ability to purchase tickets for the movies they want ahead of time. Granted, this is all assuming that the process for doing so is done well with solid voice experience design principles behind it.

Writing the Use Cases

There were several use cases to consider when designing this skill over the past couple of weeks. For example, I had to consider writing use cases for when:

  1. Users open the skill for the first time and choose to link or not link their account
  2. Users open the skill for the first time after linking their account
  3. Users open the skill, but their account has been disconnected after some use
  4. Users ask for showtimes and choose whether or not to purchase tickets—both for the Amazon Echo Show and Alexa devices
  5. Users ask for showtimes, purchase tickets, and choose whether or not to purchase concession snacks with their tickets
  6. Users just ask for showtimes
  7. Users just ask for purchasing tickets
  8. Users just ask for pre-ordering/purchasing concession snacks

And the list goes on. As you can probably note, these are several related, yet distinct enough use cases to brainstorm and write for. All of these use cases were written within the veil of my target audience being people who don’t have their hands readily available for their phone—maybe they’re cooking something—but still want grab some movie tickets and/or snacks with the simplicity of their voice. Or maybe they’re just lounging around and watching something that they find important, being couch potatoes, and desire to grab some movie tickets without fully committing to using their phones for it… You get the idea.

Challenge #1: Onboarding

An important part of any experience is the onboarding process, and effective onboarding is especially important when it comes to voice experience design. For my onboarding process, I had to first figure out a way in which to introduce the user to the skill’s necessity of an existing Cinemark account and up-to-date payment information while also introducing them to what the skill itself was capable of doing. I had to do all of this without overwhelming the user with too much information. And so, I began script-writing for the onboarding process.

Originally, my introductory message from Alexa was this:

Alexa: Welcome to Cinemark! Movie showtimes, tickets, and more are just a couple steps away. However, you’ll first need to create a free Cinemark account or link your existing Cinemark account. Would you like to do this now?”

Upon further inspection and some user-testing, I found that this left quite a void in the onboarding experience of the skill as it failed to include mentioning anything about payment information and a favorite Cinemark location. This is a problem, as failing to have these two things as a pre-requisite for using the skill brought further usability problems down the road. For example, users could create or sign in to their Cinemark account. However, as they continued using the skill, they would eventually run into walls as they wouldn’t be able to do much—if anything at all—until they set up their Cinemark location and payment information.

Allowing people to move forward without setting up these two things and giving them the false sense of them thinking that they can do something to then suddenly having the experience come to a halt—requiring them to enter information—makes for an overall clunky experience. So, I came up with this new, revised script:

Alexa: Welcome to Cinemark! Movie showtimes, tickets, and more are just a couple steps away. However, you’ll first need to create a free Cinemark account or link your existing Cinemark account, as well as have your payment information and favorite Cinemark location up to date. The Cinemark skill uses this information to provide you with the best experience possible. Would you like to do this now?

Requiring that users enter their favorite Cinemark location and payment information on Cinemark’s website before they can continue further into the skill allows for an overall smoother experience down the road. This is due to the fact that they’ve already got everything that is necessary all set up and won’t need do it later down the road, preventing any awkward hiccups in their experience with the skill. All of the features of the skill are readily available for them to do.

And after users respond with a “yes” type of answer, Alexa replies with this nice little remark:

Alexa: Great! I’ve sent instructions to your Alexa companion app and Alexa dot amazon dot com. I’ll close for now, but once you’re done following the instructions, come back for some Cinemark movie action!

These instructions let people know exactly what they need to do to get crackin’ with the skill, as well as giving them an incentive to come back once they’re done linking their account.

Challenge #2: Providing Movie Times

Providing movie times for users with voice was a tricky endeavor. My initial thought for this process was that I had to figure out a way to call out a list of movie showtimes for a specific movie on a specific day to people without overwhelming them with too much information. In accordance with this, there a couple of ideas that I had for this use case, and they were either having Alexa tell people movie times at a rate of 3 to 4 at a time, or simply having Alexa list off all of the movie showtimes in one go.

With these two ideas in mind, I did some research on just how high the number of showtimes for one movie per night could get, and the most I managed to find was 12 showtimes for one night. However, I found that this high of a number was incredibly rare. For example, only Avengers: Infinity War had 12 showtimes in one night, and that was only for one night of the week. Additionally, I found that the average number of showtimes per night and per movie was around 4 to 5.

Through user testing, I found that people tended to become annoyed with Alexa listing off movies one batch of 4 at a time due to the fact that they would have to constantly confirm with Alexa that they want her to list off more times. Here is a scripted example:

<skill starts and user asks for showtimes>

Alexa: Showtimes, great. Which movie would you like showtimes for and on what day this week?

User: Spider-Man: Homecoming for tomorrow night.

Alexa: Spider-Man: Homecoming is playing tomorrow night at 7:00 pm, 7:25 pm, 8:30 pm, and 8:45 pm. Would you like hear more showtimes?

User: Yes.

Alexa: Spider-Man: Homecoming is also playing tomorrow night at 9:00 pm, 9:15 pm, 9:45 pm, and 10:20 pm. Would you like to hear more showtimes?

User: No.

Alexa: All right. Which time would you like tickets for?

U: 8:30 pm.

<skill continues>

You can probably see how this type of process can get old pretty quickly. Overall, this approach made for quite a tiresome process, especially for movies that held a large amount of showtimes—in my case, 12 being the most that I found.

So, instead of having Alexa list off a certain number of showtimes and then asking for confirmation from the user, I decided that Alexa should simply list off all of the showtimes for the specific movie and night asked for. Here’s the script for this solution:

<skill starts and user asks for showtimes

Alexa: Showtimes, great. Which movie would you like showtimes for and on what day this week?

User: Spider-Man: Homecoming for tomorrow night.

Alexa: Spider-Man: Homecoming is playing tomorrow night at 7:00 pm, 8:25 pm, 9:10 pm, 9:45 pm, and 10:00 pm. Would you like to purchase tickets for one of those times?

<skill continues>

As you can probably see from this example, this makes for a much more streamlined experience. No longer do people have to constantly confirm with Alexa, but instead, they simply hear all of the showtimes that they wanted to hear in the first place. Before purchasing tickets and going to a movie, people usually know the time span that they will be able to do so in. Therefore, if any of the times listed stood out to them as Alexa was saying them, they would simply make a mental note of which ones stood out to them, and if they wish to purchase tickets, then they would ask for the time that works for them.

However, if people don’t want Alexa to list off every showtime for the movie and night they ask for, then they could simply do this:

<skill starts and user asks for showtimes

Alexa: Showtimes, great. Which movie would you like showtimes for and on what day this week?

User: Spider-Man: Homecoming for tomorrow night between 7:00 and 9:00.

Alexa: Spider-Man: Homecoming is playing tomorrow night between those times at 7:00 pm and 8:25 pm. Would you like to purchase tickets for one of those times?

<skill continues>

Due to the fact that Cinemark movies only play in the evening, people don’t even have to specifically say “pm” or “am” when they’re asking for a time interval.

Additionally, users could also do this:

<skill starts and user asks for showtimes

Alexa: Showtimes, great. Which movie would you like showtimes for and on what day this week?

User: Spider-Man: Homecoming for tomorrow night before 9:45.

Alexa: Spider-Man: Homecoming is playing tomorrow night between those times at 7:00 pm, 8:25 pm, and 9:10 pm. Would you like to purchase tickets for one of those times?

<skill continues>

These solutions offer people a great amount of choice when it comes a voice experience of this kind. Whatever solution people enjoy the most, they have the power to employ.

Challenge #3: Providing Seating Information

Creating a solution for providing seating information was, quite honestly, a bit of a nightmare—at least at first. Cinemark theaters tend to have a complex seating arrangement that would be nearly impossible to describe to a user through Alexa’s voice capabilities. I don’t know about you, but buying a ticket with a non-screen-enabled Alexa device and having Alexa essentially list off every available seat option without users knowing what the layout of the theater is like definitely sounds like a no-go.

And so, I decided to do some research on Amazon’s official Alexa Voice Design Guide. Through my research, I found that Alexa can send out what are called cards to people which can provide additional details that would make the voice response much too difficult to understand as normal, every-day speech—including graphics. It is through this magnificent finding that decided to incorporate Alexa’s card system to display the available seats for users to pick from. The whole process would go something like this:

<user opens the skill and eventually chooses to buy tickets>

Alexa: 8:25 pm. Got it. Tickets for Spider-Man: Homecoming at this time are currently 10 dollars. How many tickets would you like?

User: 1

Alexa: 1 ticket. Got it. I’ve sent a card of the theater’s available seats to your Alexa companion app and Alexa dot amazon dot com. Where would you like to sit?

<available seating card sent to Alexa>

User: D5.

Alexa: D5. Great. Would you like to add some popcorn or drinks to your order?

<skill continues>

This way, if users are using their hands for something else while they’re ordering a ticket, they can use their voice to go through the vast majority of the process. And when it’s just that one moment where they need to actually use their phone, they can simply tap on the Alexa card notification, look at the seats available, and then go right back to ordering the tickets with their voice, giving them the freedom to continue whatever they were doing previously.

And if users have a screen-enabled Alexa device, like Amazon’s Echo Show, then the seat-picking process would be even better. The available seats would simply display on the Echo Show’s screen and users would be able to see which seats are available right then and there and order the seat that they want. The process would go something like this:

<user opens the skill and eventually chooses to buy tickets>

Alexa: 8:25 pm. Got it. Tickets for Spider-Man: Homecoming at this time are currently 10 dollars. How many tickets would you like?

User: 1

Alexa: 1 ticket. Got it. Where would you like to sit?

<available seating displays on Echo Show>

User: D5.

Alexa: D5. Great. Would you like to add some popcorn or drinks to your order?

<skill continues>

The Scripts, VUI, and Prototype

If you’re feeling curious and want to check out all of the scripts and deliverables that I created for this project, I have provided an easy and accessible way for you to check them out below:

Use Cases/Scripts

VUI (Voice User Interface)

Sayspring Prototype

Note: This prototype follows Use Case 5b: User (U) asks for movie showtimes, purchases ticket (non-Echo Show)

Takeaways

Designing this skill was quite an experience. I never envisioned myself designing something like this, but school can take you through some crazy, yet fascinating, projects. Here are some of the important lessons that I learned:

  • Alexa’s cards really help to provide some additional leverage to your skill if implemented in an appropriate manner.
  • It can be difficult to find balance between being brief and providing the necessary amount of information that users need to use a skill effectively.
  • Designing an Alexa skill with an already-existing ecosystem—for example, Cinemark’s free accounts—can have a significant impact on the overall design of a skill; in this case, it was for the better.
  • And finally, designing for voice involves a really complex process. While working through the problems provided to me by this project, I realized that things were a lot more difficult than I initially thought. There are many factors to keep in mind when designing for voice.

--

--