Best Practices

Last Updated: 07/15/2016 Introduced in Verision: 2.0


  • Use linked flows to make as much testable as possible
  • Flow Readability
    • Avoiding crossing lines as much as possible
    • Rename steps to state clearly what the step is actually doing
    • Only draw lines going one direction in or out of a step node. i.e. Don’t have lines entering and exiting from the same node of a step or else it will be hard to see which lined enters and which exists the step




  • If you are going to set a variable on two possible paths in a flow, initialize that variable earlier in the flow and use “change value” output type to set its value later. This ensures integrity of the flow when maintaining later. If someone comes along and makes a change to the variable name, validation will show them that it is used in two places.


  • Use the Log step at critical junctions in your flows so that you’ll be able to easily debug the flow later when it is running in production.


  • When building your flow use the Decisions debugger often. Build a little, test, build a little test. This will help you catch issues in your flow early and prevent you from spending lots of time going down the wrong path.


  • Build flows with good error handling
    • If an error occurs make sure to send clear notifications (email/assigned task) to an administrator so they can quickly determine what has happened and why sendEmailToAdmin
    • Provide good error notification to the user where appropriate (eg – if the user is in a form and an error occurs, does the form just disappear, does it indicate what is happening or why the user can’t move forward). Normally you don’t want to show full stack traces to an end user.


  • Always use grid layout for forms
  • When possible use the same form size for all the forms in the flow for consistency
  • Place buttons at the sample place in the forms so that when moving from form to form the button location doesn’t jump around.
  • When starting a project set up one form with generic layout that will be used for all/most of your forms (set up basic grid formation, title location, buttons location, etc). Save this form as a template and use as the template for all forms you create in your project.
  • Make data flows simple and targeted to return only one data element where you can.



  • Save often while working in a designer
  • Export local copies for backup
  • If you want to restrict certain users to specific flows/forms, keep this in mind as the permissions will need to be added to each designer folder. See the following document for a full treatment of permissions:

Additional Resources