angel.com
Home >Resource Center > Application Design > Voice Projects 3

Application Design Application Design

Developing Voice Projects: Part Three - Implement

In this four article series I examine the process of developing voice application projects. At Angel we have helped hundreds of clients successfully deploy voice solutions that generate revenue, reduce costs, and improve the customer experience. I hope you will benefit from us sharing some of our findings.

The process of developing a voice application involves four phases:

  1. Plan - decide what you want the application to accomplish, and gather the resources needed.
  2. Conceptualize & Design - construct a model of the application, and specify how it will accomplish the goals stated in the requirements.
  3. Implement - perform the engineering work required for the application to conform to the design.
  4. Refine & Test - ensure that the application is meeting the requirements, and tune the caller experience.

This month I examine the types of activities going on during implementation, with tips for improving communication and efficiency between the different parties involved in making a Voice Site happen.

Implement

The main goal of the implementation phase is to translate the detailed design produced in the previous phase into a concrete Voice Site that instructs the Angel system what information to present to and collect from callers. If you followed my advice and created a Voice Site prototype, you are probably into the implementation phase already. If not, no worries, Site Builder is a rapid development tool and you'll make headway in no time!

From dialog states to Voice Pages
Dialog states in your call flow document (the "bubbles" in the diagram) will normally translate into one Voice Page for each state. Follow these mappings to choose your Voice Page type:

Voice Type

Site and Page Commands act as links between Voice Pages, and implement the arrows between the bubbles in your diagram.

  • Site / Page Commands are normally activated by input from a caller. (Either spoken, in which case it will match a keyword, or keypad input, in which case it will match a touchtone value)
  • You define in Voice Pages which destination to follow for each command, by selecting another Voice Page from the corresponding drop down.
  • Site Commands are always active, and they are useful to implement global navigation or "top-level" navigation (following the website analogy, they are like the left or top navigation bar of a website)
  • Page commands are only active in the Voice Page where they are defined.

Note that you point a Voice Page to another soon-to-exist Voice Page by selecting any of the "New ____ Page" options in a destination drop down. Upon saving the current Voice Page, the system will create the new page you requested and link to it from the page you saved.

Dealing with dynamic access points
In addition to static information playback, you may need to implement various useful behaviors. You may have defined these as dynamic access points or decision points in the call flow diagram. Here's a list of common tasks and how you can achieve them:

  • Make a branching decision...
    • ... based on a schedule. If your Voice Site behaves differently depending on the time of the day, or the day of the week, you can simply implement this behavior with a Schedule Page.
    • ... based on information previously collected from the caller. Information you collect from callers is stored in variables. These variables can easily be manipulated with Logic Pages (coming later this month). In a Logic Page, you can make comparisons between variables and values you specify, and branch based on that.
    • ... based on caller profile information stored in another system. You may look up this information using a Transaction Page. Transaction Pages perform web requests (technically HTTP GETs or HTTP POSTs) and send Angel variables as parameters. The system can then interpret the response in various manners, including as "Links" or destinations of other Voice Pages. For example, you may extract the CallerID of an incoming call and look it up in your customer management system. If you find it, take the caller to the "Existing Customer" menu; otherwise you may take them to the "Are you a new or an existing customer?" menu.
  • Play back a dynamic response...
    • ... to confirm caller input. The easiest way to achieve this is by means of playing back variables. Whenever you collect a response using a Question Page or collect a recording using a Voicemail Page, that response is available as a variable. You may define the variable name yourself, or if you haven't, the system will make a variable name based on the page name of the Question or Voicemail. A Message Page or a Yes/No Question Page may be used for playback. For example: "I heard you wanted: [3] medium t-shirts and [2] large t-shirts. Is that correct?" In this case, you may have two variables to confirm, such as medium_qty and large_qty. You can intersperse these variables with regular audio file or text-to-speech prompts to achieve the desired effect
    • ... with information from a transaction or a lookup in another system. If you need to acknowledge to the caller that something they requested has been received ("Your 8AM appointment has been scheduled") or to inform them of the outcome of a lookup ("Your order 45678 was shipped on February 19th"), you will need to configure the Angel system to perform a transaction via a Transaction Page. In the transaction you define the URL to a web script that takes information from Angel and returns a Voice Page that is dynamically generated via AngelXML. For more details on AngelXML please check the Transaction Page Reference Guide.
  • Look up stored information that is specific to the Voice Site. If you have a simple voice application that reads tabular information, you can use a Data Page (coming later this month). Data Pages enable callers to look up information stored in an Excel spreadsheet uploaded into the Angel system. This is a great time saver, as you will be able to create dynamic and personalized interactions with no programming involved.
  • Store information collected from a caller for later analysis. Another exciting aspect of Data Pages is their ability to store information collected from callers in a spreadsheet. This spreadsheet can be delivered to you via FTP or email on a scheduled basis.

Script development
In order for Transaction Pages to work, you will need to develop a web script that takes in the submitted variable information and produces a response that Angel can interpret. Although it can feel a little daunting at first, script development for Angel is actually quite easy, and you will get the hang of it quickly. Here are a few tips that will help you become a master:

  • Develop in the scripting language you feel most comfortable with. Find a web server where you can store web scripts in your favorite language. I have met customers who develop their applications in Java, ASP, .NET, Perl, PHP, Coldfusion, 4th Dimension, CGI/shell, and many more!
  • A submission from Angel to your script is like a submission from an HTML form. Just like you can define an HTML form with the FORM tag, you can define a "form" via the interface of a Transaction Page. The URL in the Transaction Page is the equivalent of the "action" tag.
  • Instead of returning HTML for display in a web browser, return plain text that Angel can interpret. As your script performs an operation, it should return text that Angel can interpret as one of the following: text-to-speech to play back to the caller (e.g.: "Thank you. Your order was received"), A link to another Voice Page (e.g.: "/32" interpreted as an instruction to go to page 32 of the current Voice Site), the name of a sound file to play back (e.g.: "thankyou.wav"), a phone number to transfer to (e.g.: "7032866415"), or the full URL to a sound file (e.g.: http://yourserver/path/filename.wav).
  • If you need to do more sophisticated stuff, have your script return AngelXML. This is a powerful but simple XML language that allows you to define most properties of a Voice Page that only exists for the duration of its playback.
  • Save time by testing your script responses from Site Builder. In every Transaction Page you will find fields where you can enter test values. You can then press the "Run Test" button. This will invoke your script with the test values entered, and display for you what the Angel system received as a response, and whether the response was valid.
  • Turn on email debugging to uncover runtime problems. In the Advanced Options of a Transaction Page, you can enter an email address that the system can use to notify you when a caller experienced an error related to the execution of your script. The email will include all the contextual information you require
  • Reuse publicly available scripts. Many useful functions have been encapsulated in publicly available web services. For more information on this subject check out Get Lazy with Public Web Services. In addition, the Angel Solutions team has produced many scripts that perform useful functions that you can leverage. We'd be happy to share them with you. Just check with us via the Support Center.

Sound files
Most people start a Voice Site using text-to-speech. If you produced a prompt list during the design phase, it is as easy as copying and pasting the wording for each prompt from the list into the corresponding Voice Page.

The advantage of this approach is that you can test how well the dialog between the caller and the system flows before committing to specific wording.

Once you're happy with the wording, order professional voice recordings for your application. This will dramatically increase the quality of the Voice Site. In a few days you will receive sound files named according to the conventions specified in the prompt list.

You can then upload the sound files (tip: Angel will take a .zip file with multiple sound files and expand it on your behalf inside your account) via Site Builder, and replace the text-to-speech with the recordings.

Conclusion
As with anything new, it can take some effort to get used to Site Builder. But as you work through the implementation of your Voice Site you will learn a new invaluable skill: the ability to produce your own voice applications! This is very powerful. It means you no longer rely on other companies to extend useful processes to your customers. And it is always rewarding when somebody calls you letting you know how impressed they were with the automated system they just experienced!

Next month we will conclude our series by looking at the testing and refining phase.

If you're working on an IVR project we'd love to talk to you! Give us a call at 888-692-6435 and say "Developer Hotline".

Sam Aparicio

1,600+ Customers, 20+ Industries, 10,000+ Telephony Solutions