This article should help detail some of the Workflow components that can make your Workflows easier to read, follow, and self-document.
Annotation/Documentation
Rectangles and description components (Annotation, Sizeable Annotation, and Rich Text Annotation) are exceptional for helping keep our workflow readable. You’ll notice that in the first example (above), I’ve begun to use annotation and rectangles to help separate some of the components into process groups. Here’s an example of where this fits.
In this illustration, the three main sections have been clearly separated by colored rectangles, and named with annotation labels.
Annotation can also be useful for documentation purposes, even to the extent of brief descriptions of each step of the flow:
Grouping Components Into Models
I'll be posting a separate article to describe in-depth the benefits and features of modular Workflow design.
Implied Data Flow
Here’s a tip to remember: component connector lines are not always required in order to get from one component to another.
There are several components we can use to replace the connector lines we thought we needed — the ones that are jumping all over one another trying to get to their destinations. Let’s cover Go To Component By Name and Hanging Path Trigger By Path.
The key difference (although not exclusive factor) when deciding between the two components is that the hanging path can be used on exactly that – a component’s output path. What if we need to send data somewhere else on our canvas from a component that has no named output path? We can’t grab it with a hanging path component, so we’ll use a go-to component after it instead.
Some examples:
Tethering Lines
There are times at which implied data flow with triggers and go-tos aren’t possible. For those situations, we can use Single Path Demo components to make the best of it.
For example, take another look at the first illustration in the Annotation/Documentation section above. You’ll notice the use of “Tether” components that are keeping our lines pulled in the direction we want, and out of the way of other components and lines on the canvas. Think of it as cable management for your connector lines.
Left of the line is the original design. To the right of the line is the tethered version, where the lines funnel through a single demo component. Click to view full size.
I Informed You Thusly – Variable Persistence
When using methods that circumvent the normal connector lines for data flow, model-scoped variables may not be available after the jump. Have a look at this illustration:
The variables declared in the Initialize Data component aren’t available at the endpoint, because no direct connector lines carry them there.

Configuration window for the Variables Exist component.
Here’s an updated model.
Even though we have no direct connector lines to the endpoint, the variables have been plucked from the air by the Variables Exist component, and are now available.
What About Swimlanes?
It’s solely my own personal preference and opinion that swimlanes are both cumbersome and unappealing, so I don’t use them. That’s not to say that they’re not useful in some way, I’m just not a fan.
Featured Components