Mastering Cross-Platform Voice Development with Jovo

Mastering Cross-Platform Voice Development with Jovo

Mastering Cross-Platform Voice Development with Jovo

Here at Shockoe, we are continuously evaluating new technologies to enable us to improve the experience of using Shockoe crafted apps. Recently in our R&D ventures, we committed to a project based around virtual personal assistants, specifically Google Assistant, and Amazon Alexa.

The developer goal of the project was to become experts in cross-platform development between the two voice assistant platforms. To aid us, we recruited the Jovo voice framework into our tech stack.

Of course, the first question to pop into your mind is: why did we decide to use a cross-platform framework?

Here are the top three reasons we decided to use Jovo:
1. Write voice code once for deployment across multiple voice platforms
2. Allow us to quickly dive in and prototype our voice applications
3. Use the nature of cross-platform development to become familiar with native development and rules

Write it once

One of the concerns in starting our voice project was the amount of repos that would need to be managed to support the voice APIs.

Essentially if we chose to go native, we would need:

  • An API for Alexa
  • An API for Google Assistant
  • An API for sharing the same data between Alexa and Google Assistant

With Jovo, we were able to cut down to only needing one shared API between the two platforms.

Having one shared API not only eased the management of repos, but it also greatly shortened development time to get both platforms up, running, and tested as efficiently as possible.

Which leads us to our next section…

Quick Prototyping

Jovo out of the box is equipped to run on a webhook with your local web server. The magic of the Jovo webhook allowed our development and QA team to work side by side to make quick changes without the overhead time of having to deal with servers or Lambda upload time.

Here is an example of a work session between designer, developer, and tester for BeerBoi, the voice app created by the R&D team:

Tester: Start BeerBoi
Alexa: Hey, it’s BeerBoi. Would you like to: Add a Beer or Get a Beer Recommendation
Tester: I would like to add Devil’s Backbone to my list
Alexa: Devil’s Backbone added to your list.

Designer: Hearing this out loud, I think we should add more personality to that response. Can you we add “Enjoy!” to the end of the response?
Developer: Alright, one second… [makes change, reset server]

Tester: Start BeerBoi
Alexa: Hey, it’s BeerBoi. Would you like to: Add a Beer or Get a Beer Recommendation
Tester: I would like to add Devil’s Backbone to my list
Alexa: Devil’s Backbone added to your list. Enjoy!

Getting Familiar with Native

One of the critiques of cross-platform development is how developers miss the opportunity to work with the native guts of a platform. Unlike “traditional” cross-platform framework Jovo requires interaction with the native consoles. The getting started tutorial for both Alexa and Google Assistant masterfully walks developers through the native consoles, giving them a solid understanding of what the steps would be if the project was fully native.

The Pros of Jovo

  • Tutorial documentation/ Project startup / Initialization
  • Jovo debugger
  • Card documentation for voice displays (One of the greatest helps to our team was Jovo’s display template editor for the Echo Show and Echo Spot)

From the R&D development team here at Shockoe, Jovo gets a thumbs up. It’s an excellent framework for beginners seeking an easy way to dive into virtual assistant development and for experienced teams looking to tighten the efficiency and consistency of their cross-platform voice projects.

Jay Soumphont

Jay Soumphont

Jay Soumphontphakdy is a Cross-Platform Mobile App developer who enjoys working in a transdisciplinary manner— collaborating and wearing hats between roles for design, development, and QA. He is dedicated to continuing his education to create high-quality user-friendly applications, recently becoming an ICAgile Certified Professional in Agile Testing and Test Automation.

3 Things to Consider When Designing Your First Voice App

3 Things to Consider When Designing Your First Voice App

3 Things to Consider When Designing Your First Voice App

“Ok Google, give me an intro about designing for voice.”

Darn. But in spite of Google’s assistant inability to help me write this blog, these modern voice assistants are actually pretty neat. And with huge amounts of investment from Amazon and Google, they are here to stay. Amazon has been aggressive with expanding it’s Alexa services this past year into new products like the Alexa Show and Google embracing an even bigger screen assistant push with it’s Nest Hub Max and the continued development of the assistant in the Android OS.

Voice is the closest thing we have so far to truly embracing the “Star Trek” future. Right now on the “Star Trek Future Scale” (STFS, obviously) we are still in our infancy, but here are some things to consider as you design and develop the voice apps that will help us grow the medium into something powerful and useful for decades to come.



1. Alexa, Google, and Siri… Oh my!

The different flavors of assistants all bring unique things to the table. We recommend before even attempting to design new experiences to take some time to understand the opportunities and limitations with each platform. Focusing in on the Alexa and Google experiences is a smart start, Siri was a non-starter with several of our projects, and Amazon and Google have excellent documentation to start out with for projects:

Using these as a baseline similar to how you might use Human Interface Guidelines or Material Design in your screen UI design helps ensure your teams are designing experiences that feel natural to the larger suite of services offered from these assistants.

With a firm understanding of the tech behind the assistant, we can move into some actual design.

2. Do your (user) homework

Voice is a new and powerful user interface, it can provide an immense amount of information with no need to worry about navigational hierarchy, where the user could or could not be looking or even what their intent is. We just have to predict it.

However, predicting WHAT they want is about as important as WHERE they will need it. Most people don’t want to shout into their phones in line at the grocery store.

The time spent into understanding your users habits and journeys will make it so when you provide that voice experience at those high value moments, it will feel precise and appropriate. The Alexa on the dresser that you can ask the weather while you are picking your clothes for the day perfectly fits into a user’s experience while making the hands free nature truly valuable. The home hub in the kitchen that can set a timer while a person’s hands are busy chopping, stirring and cooking makes for a seamless Star Trek esque experience.

Example of an overcomplicated, bad flow

3. No Fat Diet

Voice is one of the fastest and most semantic means to information that technology offers. The goal is to create a framework that provides the experience of: What you ask for, you receive. Lots of voice experience fail with great concepts because they don’t edit nearly enough. This ideal input/output experience is only possible if your voice service can get out of its own way. With voice, do your best to avoid having steps in any process. Conversational interfaces can be interesting, but they also can feel extremely like a robophone support system, and those don’t feel like Star Trek at all. They are bad. Lengthy responses are also a big no no. If the assistant is rambling on and on when a person asks a simple question, you can expect it to get the “Alexa, shut up” real quick. Navigational commands should be short, sweet and direct. Informative responses (the weather, information about a product, confirmation of an order) are best when they are short and provide means to expand if the user wants (Find out more in your ___ app, or ask for more information, things like that). Don’t answer a question with a question. While the question with a question model for education has been a very powerful one to create critical thought in students, your voice assistant should avoid this at all costs. In its current state, voice assistants still very much feel like computers, and users still treat them as such. Input -> output is a much more important experience than input->input->input->output, even if the end result output is somehow “better,” that experience is not.

That good flow

Prototype with the tech. This one we learned the hard way, but the sooner you can get the experience on a device the better. Map out your critical path and start testing it with a real Home Hub or Alexa. You’ll be able to iterate your flow much sooner, learn what words the device struggles with and really get a feel for your voice experience as your users will use it rather than it being refined in a doc until it is perfect.

Test early and often with the voice devices. Trust us, you’ll be much happier with your final product.

Mason Brown

Mason Brown

Mason Brown is an experience designer at Shockoe. His experience includes work on AR solutions for Benefit Cosmetics, VR and Retail design with Google, VR experiences with American Eagle as well many projects in the non-profit space promoting athletics in the Richmond area. With a passion for systems and product design, Mason works with clients in identifying business problems, understanding the needs of the user and crafting products that benefit both. He strives to understand the needs of people to make products that feel personal.

7 Tips for Utilizing Amazon Alexa to Engage with Customers

7 Tips for Utilizing Amazon Alexa to Engage with Customers

7 Tips for Utilizing Amazon Alexa to Engage with Customers

Amazon first released Alexa virtual assistant and smart speaker Echo in late 2014. An in-home virtual assistant is an impressive tool, but creating a seamless user experience with it can be a challenge. So how do companies overcome this challenge? What engagement can you provide with a voice programming interface to fully utilize Alexa and engage customers with your brand?

Why Should Brands Care?

Amazon has a wide variety of Alexa products, but the Echo Dot keeps the price of admission as low as $49.99. The Echo Dot also frequently goes on sale, lowering the bar to $39.99 or even $29.99. At such a low price point, it’s no wonder NPR and Edison Research have found that 39 million adults in the US now own a smart speaker. And of those 39 million, 65% would not want to go back to life without it.

Establish a Brand Presence on Alexa

Alexa skills give you an opportunity to produce a user experience with voice. Users can simply activate skills for use on their smart speaker through the Amazon Alexa app or by simply asking their device to enable a particular skill. Alexa skill development gives you the opportunity to advertise and engage with your customers and provide value through your brand.

Build to Consider

The development of the skill is relatively simple. As an Alexa developer, I am excited to find that Amazon provides a great guide to get you started. A skill is just a REST endpoint, accessed over HTTPS, combined with a list of user actions and activation phrases. The endpoint can be hosted on any server that supports HTTPS, but an easy way to get started fast is to utilize AWS Lambda. User actions, known as intents, and activation phrases, known as utterances, are then added through the AWS console. When a user talks to your skill, Amazon will attempt to match what was said to an utterance to determine the intent. The intent and phrase are then sent to the REST endpoint; that endpoint then has a chance to do something with the information before sending back a response to be read to the user.

Once done with the Alexa skill development portion, the next challenge is creating a good user experience. Why is it important to create a seamless user experience and how much can you expect out of Alexa voice programming?

Here are just a few examples of how to master Alexa skills and make sure you engage with your user while building customer loyalty:

Tip #1: Provide a Great Experience on Open

Most users immediately ask skills questions directly, however it is important to note that skills can also be opened without a question. When a skill is opened for the first time, be sure to provide instructions on how to use your skill. Give examples of what kinds of questions can be asked. If the user is returning, let them know about any additions to your skill or ongoing promotions with your brand.

Tip #2 Answer Common Questions

Think about what kind of questions customers have. Instead of your customer searching through a mobile app or website for the answer, they can just ask! It’s important to start off with the basics and be prepared to handle general questions such as:

  • “Where is the closest store?”
  • “What are the hours of the store?”
  • “What is the phone number of the store?”

Try to think about how your customer will naturally try to ask a question. Customers may ask “When does the store close?” and expect to receive the store hours. Consider error handling as well. Your user may be asking for store hours, but the provided store cannot be found. Take advantage of the ability to respond with a question and receive a response. For example “I’m sorry, which store would you like hours for?”

Tip #3 Surface Interesting Data

Use analytics from your stores to help customers out where possible. Leverage store traffic data so that your customers can ask how busy a store is. Customers may be more interested in shopping when the store is less busy. If the store is busy, consider responding with an estimate of when there will be fewer people in the store.

Utilize your inventory database to allow customers to ask if a product is in stock. If there is low stock then engage with your customer by encouraging them to order fast or reserve their selected item. If a product is not in stock, let your customer know when they can expect the product to return or suggest a similar product. The more helpful you are to your users, the more likely they are to use your skill in the future — a guaranteed way of keeping people loyal to your brand.

Tip #4 Promote upcoming events and ongoing sales

Allow customers to ask about promotions. When customers ask about upcoming events, provide relevant information such as the date, time and location. When a customer asks about sales, be creative with your response. Instead of listing off items, pick a few to highlight based on their previous purchases. Allow customers to ask about sales by department, category, or deal, such as “what product is on sale?”, to get more specific answers on sales.

Tip #5 Extend the App Experience

If there is an OAuth login for your services, customers will be able to link their existing accounts using the Alexa Skill. This allows support for features that require authentication. Allow customers to add items to their shopping list or even do online ordering. Leverage information about the logged-in customer when responding to other questions. When a customer asks about discount opportunities, spike their interest by targetting a known previous purchase. You can also allow an authenticated customer to ask questions about their favorite store.

Tip #6 Provide Some Entertainment

If possible, add something extra to make the experience fun. Allow customers to ask for interesting facts about your brand or any questions related to your industry. To make things more engaging, you could even add a weekly trivia question to encourage users to check back in regularly. It’s important not to overdo it.

Tip #7 Utilize Flash Briefings

Flash briefings are very short podcasts that Alexa users can subscribe to, they are a great way to communicate with customers who are opted in. A user will subscribe to flash briefings from various skills to build their flash briefing. Then when a user asks, the latest series of flash briefings will be played. These are generally for news, however, they can be used to talk about upcoming promotions or events. Take a minute or two each week to let your most loyal customers know what’s going on with your company.

It is evident and backed that people are ready to accept virtual assistants in their homes. Companies taking advantage of this interface will ultimately be the ones that pioneer the next generation of mastering brand engagement and capturing this fast-growing market. I hope you find these 7 tips helpful in building customer loyalty and engagement, leave us a comment to share your thoughts!

Andrew Rumbley

Andrew Rumbley

Senior Mobile Developer

Andrew is a Senior Mobile Developer focused on creating quality user experiences. He is a full stack developer with experience working on every piece of a mobile application from backend APIs to frontend UI. Andrew is passionate about creating high performing native applications. He also has the distinguished mantle of being the longest-tenured developer at Shockoe.