Wizard

The Wizard component allows you to create multi-step processes that move users through screens in a specified order. Users can execute complex business processes in a straightforward step-by-step fashion, without getting confused or overwhelmed.

Before you build a Wizard

The Wizard component is a powerful tool, but with great power comes great responsibility. Built thoughtfully, a Wizard can make the navigation of complex processes faster and less confusing; built without insight into the needs of users, a Wizard can simply become one more thing that slows them down.

Start by asking yourself the following questions:

  • What do users need to accomplish at the end of the Wizard?
  • Look at the way users currently work on this task:
    • Where is there confusion?
    • Where are the pitfalls?
    • Are there opportunities to make mistakes or overlook part of the process?
  • How many steps does it take to reach the desired end result?
    • In what order (and why that order?)
  • For each step, what's the best way for them to complete the tasks for that part of the process?

Now, sketch out a loose flow chart of the steps needed within the Wizard, and look it over for any of those areas of confusion mentioned above. Only then build.

Using the Wizard Component

Configuring a Wizard consists of several stages:

Choosing a progress indication type and layout

The Wizard component comes with two progress indication types: numbered steps and navigation.

  • Numbered steps appear as a circle beside the label.
  • Navigation items appear as a clickable label, behaving like Navigation and Vertical Navigation for horizontal and vertical layouts, respectively.

Numbered steps help reinforce the sequence of a Wizard, so they may be a good choice for Wizards that must be done in a particular order. Navigation-based Wizards are more useful for forms that can be completed non-sequentially, or that have a vertical layout.

As for layout, it's possible to have your Wizard navigate horizontally:

Numbered steps

Navigation

Or to have it navigate vertically:

Numbered steps

Navigation

It's best to consider your user's screen size when selecting a layout, as wide screens may better support horizontal layouts. If your Wizard could be used on wide and narrow screens, consider enabling the Vertical layout/navigation on smaller screens property, which automatically switches the component's layout at runtime--better ensuring the Wizard that appears to your end users does not overflow the screen space.

Using the Wizard with the File Upload component

If using the File Upload component in a Wizard that creates new records, the File Upload component can not attach a file to a record until the record is saved. Best practice:

Make sure to save the File Upload's model in a step that precedes the one where users upload files using the component. Once the model saves, the record exists, and the file can be attached to it.

To see a use case, see File Upload in Wizards.

Best Practices

  • Wizard users are often creating and editing multiple objects, so an error when saving can lead to data disruption. When creating a Save Model Changes action on more than one model, check Roll back entire save on any error. This prevents the save (and any subsequent actions in the sequence) from happening until the user corrects the error.
  • Want to create conditional paths in the Wizard? (For example, if a user selects Option A from a picklist in Step 1, move to Step 2. But, if they select Option B from that same picklist in Step 1, jump from Step 1 to Step 4, skipping Steps 2 and 3.) Use branch actions with the navigation buttons to create separate, conditional paths based on if/else statements. Or conditionally render buttons on the Wizard so that they only appear when they are relevant to the process.

Component actions

Component actions are available using Run component action.

Properties

Component properties

Nested elements

Step properties

Button properties

The properties available on Wizard buttons are the same as those for Button Set buttons.