---
schema_version: "1"
id: 7f595ce1a54b1d27e05fa894869aa6eeb7a40a8d973551716469d21aed663dcc
title: Wizard Best Practices
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/analytics/bi_dev_guide_wave_templates/guides/concept/bi-templatesdev-best-practices.md
canonical_url: https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-best-practices.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 36771c12da1dbc8163c28f99bf9e918143de585b505f931463c145a5d4372e28
products:
  - Analytics Templates Developer Guide
  - analytics
---

# Wizard Best Practices

To deliver an optimal user experience, adopt these best practices when creating a wizard.

- Strike a balance between too few questions and too many. Too few questions provide insufficient flexibility for the user creating the app, while too many questions can be daunting.
- Strike a balance between the number of questions on each wizard page and the number of pages in the wizard. Too many questions on each wizard page require the user to scroll down, a practice to avoid. A wizard with too many pages is cumbersome. We recommend a page that contains 5-8 questions.
- Group wizard questions by theme. For example, questions about quotas on one page and questions about products on another.
- Use templates without a configuration wizard for testing the creation of the template object.
- Organize like variables together. For instance, group variables about the Product dimension together.
- Consider using the Apex `WaveTemplateConfigurationModifier` class to create a smart wizard that can automatically check the data in your org. See [Use the Apex `WaveTemplateConfigurationModifier` Class](https://developer.salesforce.com/docs/analytics/bi-dev-guide-wave-templates/guide/bi-templatesdev-apex-class.md).
- You can customize smart wizard pages using VisualForce pages and a JavaScript library.
- For embedded apps, don’t create any questions that depend on user interaction unless you create your own user interface for installation or you add a `WaveTemplateConfigurationModifier` class. Auto-install requests automatically create the app in customer orgs on package install of the template, with no CRM Analytics Studio configuration wizard for users.
