Call flow diagrams are essential to understanding any design. They provide the reader with a high level view of the IVR, which allows for easier understanding of the big picture. This benefits the customer (business and IT people) but is also very useful to the designer as the design progresses. Once you have created your sample calls, the call flow diagrams should be your next step. These will inform the creation of the user interface design specification.

The most common mistake made by designers is they don't use a standard stencil, or template, when creating call flows, so it's not easy for new readers to follow what's going on. Your call flow diagram should include a key on its first page.

Below are critical points to consider when creating a call flow diagram.
  • Use a standard set of shapes. If an interaction state is shown as an orange rectangle on the first tab, use it consistently throughout the design. Here are some common shapes that are used: rectangles with a double-border for interactions, plain rectangles for play states, diamonds for decision states, cylinders for data retrievals, the visio "process" shape for sub-dialogs, circles for on page references, and the typical off-page reference, often shaped like a home plate in baseball.
  • Take advantage of on- and off-page references. These references are essential to creating and maintaining a clean, easy to read call flow. Name them in a manner that is helpful, so for example, the reader knows by clicking on the "Transfer" off-page reference that s/he will most likely be entering the transfer logic.
  • Keep your call-flow design neat. Align shapes vertically and horizontally, and use the "distribute shapes" feature to center shapes. Prevent connectors from crossing and creating spaghetti on the page. One way to this is by using on- and off- page connectors. Another way is to take the time to align the shapes in such a way that lines simply won't cross.
  • Keep the call flow up to date. If your call flow and UI spec aren't created from the same document, make sure when one is updated, so is the other. Nothing is more frustrating than to open a call flow that has not been updated in the last year, yet the UI spec has had multiple revisions.
  • Keep the call flow diagram high-level. The call flow's purpose is to provide a high-level view of the system, while details (e.g., retries or other error handling) reside in the UI spec. A good rule of thumb is to have one symbol on the call-flow diagram for each corresponding state in the UI spec.
  • Many designers include the call flow diagrams as part of the user interface design specification because of their usefulness in providing a high-level view. If you're using Microsoft Office for your UI spec (MS Word) and call flow diagrams (MS Visio), you may be tempted to embed your diagrams as Visio objects. For all but the smallest design documents, however, this is not advisable. Embedded Visio objects will greatly increase your Word document's file size, and may cause it to become unstable and crash. It is preferable to embed the Visios as jpegs, as these will keep your Word document file to a more manageable size.

As far as tools for building call flow diagrams, MS Visio is the most common choice. As mentioned previously, Visio supports custom standard stencils and templates to keep your call flow shapes consistent page-to-page and document-to-document. In addition to Visio, many open source alternatives also exist - LucidChart, OpenOffice/LibreOffice Draw, Dia, Diagramly, and Pencil Project to name a few. Any standard diagramming or flowchart application would serve the basic needs of a high-level design and call flow. Other tools exist that leverage these application and provide additional features and functions geared specifically for IVR call flow design.

One such tool is the VUID Toolkit. This toolkit is an open-source project that includes custom Visio stencils, Visual Basic macros and Python code that supports designing and maintaining a voice user interface. Another tool is PathMaker. Like VUID Toolkit, it is open-source and available for download at GitHub. It features a Visio-based design environment with a process that essentially "walks" the paths of your call flow notifying you of potential issues before handing the design over to the development phase. It also generates customer-friendly specification documents based exclusively on the call flow you've designed and can manage and export voice talent recording lists for all prompts within the design. In addition, it can import prompts translated to different languages to generate multilingual versions of the design. Revision control history is managed with configurable color-coded highlights for all edits. When combined with the PathRunner server from Convergys, PathMaker capabilities extend to generating code and test cases including test case automation. Regardless of which tool you use, both allow you as a designer to focus more on designing the optimal caller experience and less documentation overhead.