SQLphone developer site home page


Working with large flowcharts

Tips for managing large flowcharts.

Basic layout tips

Reducing flowchart lines

There is a trick to reduce the number of flowchart lines. This uses the following SQLphone feature: If a condition is met, and no line flows from that condition, SQLphone looks for a box having exactly the same name as the condition. If it finds this box, it jumps to it. The following sections show examples of this feature in action.

Catch-all boxes

Example: You need to log the end of a call, even when a caller hangs-up.
Problem: Your flowchart is hard to manage, because it has many lines connecting the HangUp condition of every box to a SQL box that logs the call-end.
Solution: Rename the SQL box to "HangUp", and remove all lines that join from HangUp conditions.

The same idea can be used for other conditions, for example: NoData, NoDigits, SQLFailure

Retries exceeded

Example: Whenever a caller exceeds 3 tries to enter any data, you tell them they cannot proceed.
Problem: You have lots of Digits boxes, each with a "Tries > 3" condition. And lots of duplicated Play boxes, each speaking the same "your tries are exceeded" message.
Solution: Rename one of the Play boxes as "Tries > 3". Delete all the other Play boxes.

Menu switch

Example: You have a menu of options, each option branches to a different part of the flowchart.
Problem: The flowchart is getting big and unmanageable, because it is really several flowcharts with one switch at the top.
Solution: In the Digits box that speaks the menu options, store the selected option in a memory called "Menu". Create conditions "Menu = 1", Menu = 2", etc. for all the possible options. Don't have any lines exiting these conditions. Instead have boxes called "Menu = 1", Menu = 2", etc. These boxes represent the entry points to the sub-flowcharts.

Box goto

SQLphone does not have a Goto feature, to jump from one box to another. But it's easy to make your own goto using a SQL box.

Example: You want to join a condition to a box, which creates a long line across your flowchart.
Problem: This long line looks messy, you cannot easily see where it starts and ends.
Solution: Create a memory called "Box". Create a SQL box that selects a value into the "Box" memory, this is the "jump from" box. Add a condition of type "Box = value". Create the "goto box" and give it the same name as the condition.