ROLE: Designer/Developer
DATE: November 2017
URL: Enable the Skill
TOOLS: ASK, Lambda, S3, SSML, Node.js
World Map with Speech Bubbles

"How do I call you when you're in Germany?" I heard this repeatedly and decided to make a skill that provided international dialing codes. But providing country codes alone wasn't enough. What others were really asking was how to place international calls. Also, when I called from Germany, would anyone recognize the prefix (+49) and answer my call? In sum, I identified 3 common use cases: 1) "What is the dialing code for XYZ?" 2) "Which country has the dialing code XYZ?" 3) "How do I call XYZ?" Interestingly, neither Alexa, nor the Google Assistant are proficient in 2 of these.


You might assume that dialing codes, like postal codes, and the cost of mailing a first class letter - are part of an Assistants native abilities. However, as you can see by my initial analysis, this is hardly the case. It seems our Assistants are limited to supplying dialing codes when users formulate the question in this specific way: "What is the dialing code for {XYZ}?". But they are unable to provide sufficient answers to the questions: "How do I call Sweden?" or "Which country has the dialing code {XYZ}?". Their responses are disappointing because they aren't tailored to user context or needs. In fact, when they read 2-3 generic sentences from a random web site, I find myself becoming irritated at the waste of time and effort. In short, I wanted to make a useful skill and publish it so friends and family could call with ease.

Creating the VUX

In designing the UX, I focused on answering the initial questions, the way I had heard them. As you can see by the flow diagram, the 2 columns around fetching dialing codes (name the country and get the code) and reverse lookup (name the code and get the country) are straight forward lookup routines. But the first use case, "How do I call..." requires a second turn.

When users ask: "How do I call...?" they really mean 2 things: what is the country code and how do I make the call? The latter question requires a second data point around their location. (Technically instruction depends upon whether you're placing a call from a landline or mobile - but for simplicity, the spoken experience informs users how to dial out from a landline. Both the international access code for landlines and the "+" symbol for mobile, are shown on the graphical cards in the Alexa app.)

User Testing and Refinement

Initially, I tried to use the location API to determine user location. But when testing with a friend, we realized by using the location API (and the data in the Alexa app), I had assumed the user would be calling from home. What if they were working from a global office and needed to make an international call? Wouldn't this be a more likely scenario? While role playing the dialog, my friend suggested: "Why don't you just ask the user, where are you calling from?" That made a lot of sense. When you think about conversation as "...a cooperative endeavor to achieve a goal", asking a question would afford an opportunity to get more data in exchange for a more helpful response. As a user, if I feel like we're getting closer to the goal I don't mind an extra turn in the dialog.


Phonebooth is currently available in the United States, United Kingdom, Canada, India, and Australia via the Alexa app. There's also a localized version in Germany and Austria. I believe this is a very useful skill and plan to deliver it as an Action for the Google Assistant next.

Analyzing Native Experience Google Sheet with Sample Questions and Responses

Creatig Dialog Flows Diagram of Phonebooth flows.

Cards (from the UK version) Cards that appear in the Alexa app on device and on the web.

Matching Response to Novice v. Pro Code sample used to determine user familiarity with this skill.

Varied Phrases by Level Language strings for both new and experienced users.