As part of the script design process, the CallScripter Professional Services team will often produce a flow diagram to illustrate the script's conceptual design. This is used to ensure that the PS team and the client are in agreement as to the script's structure and function before the build commences, and as a reference for the PS team as they build the script itself. This diagram is created using a free web service on www.code2flow.com (hereafter referred to as code2flow), which allows the automatic generation of flow diagrams from pseudocode.
This article will provide a key as to the symbology and conventions used in these diagrams by the PS team.
Conceptual Blocks
Conceptual Blocks will comprise a reasonably large proportion of all nodes in the initial design phase of the script, and note the intended function of a block. They might be something as broad as "Sales" or as narrow as "Collate Data for Reporting", but they are intended to represent a collection of script pages that are all serving the greater purpose that the block is named for.
Script Pages
Individual Script Pages will be directly named as they appear in the Script itself. Generally they should belong to a Conceptual Block, and they should have at least one node between themselves and the next Page.
While rare or non-existent in the initial design phase, Script Page nodes will come to represent where all subsequent nodes take place within the script. All nodes downstream of a script page node will occur on this page of the script, until the next script page node is encountered. It should be noted that the title of this node will be the exact name of the page as it appears in the script, e.g. "01 Start" or "50001 Special Offers".
Script Actions
Script Actions will comprise the majority of most diagrams, and could be something as simple as "collect caller's name", or as general as "complete all relevant forms". When marked in bold font, a script action card is specifically indicating the setting or alteration of a variable or notable field in the script (useful for keeping track of where important fields, such as those that are reported on, are edited in the flow).
Questions or Logic Branch Points
Whenever the script has the possibility of following differing paths, a Question or Logical Branch Point is used. It could be something as loose as "does the caller wish to continue?" or as specific as "var_businessHours == 'yes' ", and similarly to Script Actions the use of bold font is indicative of a field or variable being used to determine the branching.
External Resources
An External Resource indicates where the script relies on anything external to the actual CallScripter instance, be it a call to a SQL server or a web resource, or sending a Report. These are of note as they indicate points where issues that don't directly halt CallScripter could still potentially impact the proper execution of the script.
Tunnels
Tunnels allow a Flow to be broken into a more readable format, if there's a link that crosses a substantial portion of the diagram. They should be used sparingly, and will always be marked with the exit and entry points declaring where they are going or coming from.
Critical Actions
Critical Actions are used to show any points that could have severe penalties if actioned inappropriately. These are things such as ending the active call, or the agent clicking the Wrap button.
Comments
If direct commentary within the script is needed or useful, a Comment can be used to indicate the exact position of a question or caution. This might be something such as "This branch will be expanded in v2", or "Are we sure we want to ask this question?".