LogoLogo
HomepageYouTube ChannelInstall from the AppExchange
  • Home
  • Dynamic Components
  • Flow Components
  • Experience Components
  • Projects
  • 👋Welcome
  • Getting Started
    • Product Tour
    • Quickstart Guide
    • Learn the Basics
    • Installation & Licenses management
    • Flow vs. Dynamic Components
    • Integrating with Experience Cloud
  • Tutorials
    • Videos
    • Projects Tutorials
    • Components Tutorials
      • Alert
        • Create a custom branding alert
        • Create an error alert dismissible
      • Avatar
        • Create an avatar with actions
        • Create an avatar with details
      • Avatar Group
        • Display a list of contacts related to an account
        • Display a list of sharing users related to the record
      • Barcode
        • Generating and Displaying Barcodes for Product Codes
      • Biometrics
        • 101 Tutorial
      • Button
        • Customizing Flow Navigation Buttons
        • How to Add a "Cancel and Close" Button
        • How to Open Flows from Buttons
      • Button Groups
        • Identifying Clicked Buttons
      • Button Menu
        • How to change dynamically Avonni Button Menu Icons
      • Calendar
        • Calendar 101 Tutorial
        • How to Connect Multiple Data Sources to the Avonni Calendar
        • How to Customize Time Spans
        • How to Customize the Right-Click Menu
        • How to Add an Edit Action to Events
        • How to Add a New Event Button to the Avonni Calendar Header
        • How to Create Events by Dragging in the Avonni Calendar
        • How to Reschedule Events with Drag and Drop
        • How to Color-Code Calendar Entries in the Avonni Calendar
        • Using a variable Data Source
        • Using a Query Data Source
      • Carousel
        • Build a Related Products Carousel
      • Combobox
        • Implement Dependent Picklists in Comboboxes
        • How to Dynamically Enable/Disable Dependent Picklists
        • Using Multi-Select Comboboxes with Reactive Formulas
      • CSV Parser
        • 101 Tutorial
      • Data Table
        • Adding Filters
        • How to add Images onthe Data Table
        • Creating Row Actions
        • Displaying a Record as a QR Code
        • Displaying Record Name field as a link
        • Learn the Basics
        • Making a field editable
        • Setting Up Data Export
        • Tips and Tricks
          • Activate infinite scrolling
          • Creating an action from a button or a link
          • Customizing the Badge Color using a formula
          • How to Grayscale Header Actions Dynamically in Avonni Data Table
          • How to Conditionally Color Cells
          • Enabling auto-refresh on the Data Table when pressing a button
          • Handling formula text field
          • How to set column visibity
          • Passing multiple record IDs to another flow
          • Data Table Editor
      • Date Picker
        • Display a date picker with Marked Dates from a Get Records
      • Date Time Picker
        • How to create Collection Variables for StartDateTime and EndDateTime
        • How to Block Out Times
      • Delay Interaction
        • Creating a Confetti Celebration on the Final Screen
        • Launch a flow dialog without a screen
      • Dual Listbox
        • Display contacts with custom icons
        • Accounts list group by industry
      • Expandable Section
        • How to add components into an expandable section
      • Header
        • Building Engaging Card Headers
        • Crafting a Profile Header
        • Adding Action Buttons to Headers
        • Adding a Background Image to Your Header
      • Input Pen
        • Add the custom Toolbar
        • How to Store Input Pen Drawings as Attachments in Salesforce
      • Kanban
        • 📹Introduction
      • List
        • Create a grid list with images
        • Create a sortable list
        • How to Reorder Items and Update Records
        • Vertical List with Actions
      • Navigation
      • Map
        • Customize the Map Marker
        • Visualizing Account Information on a Map
      • Metric
        • 📹Introduction
      • Microphone
        • Save the Microphone recording file as an attached on a record
      • Progress Indicator
        • Creating a Universal Dynamic Progress Step Collection
        • How to Change the Appearance of Your Progress Indicator using a variable
        • Error Handling
      • QR Code
        • Generate a QR Code from a record field
      • Record Detail
        • Using the Record Detail with Reactive Screens
      • Scoped Notification
        • Display message based on a value
      • Text Area
        • TextArea issue with max length when clicking on the next button
      • Tree
        • Build a Tree View with Dynamic Record Details
      • Timeline
        • Assigning multiple source collection to the Timeline
        • Customizing Date Format in the Timeline Component using Luxon
        • Create a horizontal activity timeline
        • Display Tasks
        • Perform actions on selected tasks
      • Vertical Visual Picker
        • Adding sub-items
        • Display a list of online contacts
    • Interactions
      • Enabling auto-refresh for queries after the Flow Dialog ends
      • Creating a Confetti Celebration on the final screen
      • How to create an interaction to navigate to an object
      • How to create an interaction to a record page
      • How to create an interaction to open another flow
      • How to pass an Input Variable from One Flow to Another
      • How to setup an Open Flow Panel interaction
    • Reactive Query Tutorials
      • How to make Data Tables Reactive
      • Build a reactive Data Table Using Dependent Picklists
      • Building a Dynamic Metrics Dashboard with the Data Table
      • How to build a reactive 'Quarterly Opportunity Tracker' component
      • How to Create a Combobox-Filtered Data Table
      • Create a Dynamically Linked Account-Contact View
      • Troubleshooting
    • Tips and Tricks
      • Copy / Paste a component settings
      • Create a link to the record using the href attribute
      • Create a variable and use it in a component property
      • Data Table
      • Hide Standard Header and Footer in a flow
      • How to pass your current RecordID in your screen flow
    • Platform Events
      • Configuration tutorial
  • Flow Components
    • Explore All Components
    • Alert
    • Audio Player
    • Avatar
    • Avatar Group
    • Barcode
    • Barcode Scanner
    • Biometrics
    • Blockquote
    • Button
    • Button Group
    • Button Icon
    • Button Menu
    • Calendar
    • Carousel
    • Chart
    • Chip Container
    • Combobox
    • Color Picker
    • CSV Parser
    • Date Picker
    • Data Table
    • Date Time Picker
    • Delay Interaction
    • Document Scanner
    • Dual Listbox
    • Expandable Section
    • Formatted Address
    • Formatted Name
    • Formatted Value
    • Header
    • Hero Banner
    • Icon Picker
    • Image
    • Input Choice Set
    • Input Choice Set Grid
    • Input Counter
    • Input Date Range
    • Input Pen
    • Illustration
    • Interaction service
    • Kanban
    • List
    • Map
    • Metric
    • Microphone
    • Navigation
    • NFC Scanner
    • Pill Container
    • Progress Bar
    • Progress Circle
    • Progress Indicator
    • Progress Popover
    • QR Code
    • Rating
    • Record Detail
    • Scoped Notification
    • Separator
    • Slider
    • Tabs
    • Text Area
    • Timeline
    • Tree
    • User Location
    • Vertical Visual Picker
    • Visual Picker
    • Visual Picker Link
    • Video Player
    • Welcome Mat
  • Component Builder
    • Overview
    • Properties Pane
    • Interactions Pane
      • Copy Records
      • Download
      • Export To
      • Fire Confetti
      • Flow Navigation
      • Navigate
      • Show Toast
      • Open Alert Modal
      • Open Confirm
      • Open Flow Dialog
      • Open Flow Panel
      • Update Records
      • Refresh Query
      • Refresh All Queries
      • Open Quick Action
    • Style Pane
    • Component Templates
    • Layout and Customization
      • Alignment controls
      • Copy / Paste component settings
      • Margin / Padding
      • Pull To Boundary
      • Undo / Redo
  • Data Sources
    • Understanding Data Sources
    • Manual
    • Variable
    • Query
    • Query VS Variable
    • Picklist
  • Actions
    • Overview
    • Data Manipulation and Transformation
      • Convert Lead
      • Create file
      • Split Text to Text Collection
      • SObject Collection Math
      • SObject Collection Join
      • Get Record from SObject Collection
      • SObject Collection to Activity Timeline Items
      • SObject Collection to Calendar Marked Date Collection
      • SObject Collection to Scheduler Events
      • SObject Collection to Text Collection
    • Data Conversion and Formatting
      • Text Collection Get Value
      • Get Value from String Collection
      • Number Collection Get Value
      • Join Text Collection
      • Format Text in SObject Collection
      • Format Text Collection
      • Text Collection to Combobox Options
      • Text Collection to Dual Listbox Options
      • Text Collection to Progress Indicator Steps
    • UI & Navigation
      • New Avatar Action Collection
      • New Button Menu Item Collection
      • New Carousel Item Collection
      • New Combobox Option Collection
      • New Dual Listbox Option Collection
      • New Header Action Collection
      • New Header Avatar Action Collection
      • New List Action Collection
      • New Navigation Item Collection
      • New Progress Indicator Step Collection
      • New Progress Popover Step Collection
      • New Slider Custom Label Collection
  • Help
    • Performance Guide
    • How do I contact support?
    • How do I report Bugs?
    • Troubleshooting
    • Release Process
  • Miscellaneous
    • Live use cases examples
    • Release Notes
    • Salesforce Flow Limit
    • Security
Powered by GitBook
LogoLogo

Company

  • About Us
  • Pricing

Policies

  • Privacy Policy
  • Terms of Service
On this page
  • Overview
  • Step 1: Create the Current Step Variable
  • Step 2: Create the progress type variable
  • Step 3: Create the router decision element
  • Step 4: Create each screen
  • Configure the Progress Indicator component
  • Add the Avonni Button component to set the navigation
  • Step 5: create an assignment for each screen
  • Step 6: Add a decision to check if the button was clicked
  • Step 7: Add assignments on the decision outcome
  • Step 8: test your flow

Was this helpful?

  1. Tutorials
  2. Projects

Business Quote with vertical progress indicator

Last updated 6 months ago

Was this helpful?

Overview

This tutorial requires the to be installed on your Salesforce org.

This example will feature a vertical , enabling users to navigate through various screens using Next and Previous buttons. As users progress through the flow, the vertical Progress Indicator will automatically update the steps based on our configuration.

In this tutorial, we will:

  • Configure a dynamic business quote component

  • Use Progress Indicator for step visualization

  • Customize screens for quote-building needs

  • Leverage Avonni Flow Screen Components Library

  • Enhance Salesforce ecosystem functionality and aesthetics

Step 1: Create the Current Step Variable

In our screen flow, we need to create a "current step" variable to store and manage the value of the current step as users navigate through the flow. This variable will be crucial for tracking user progress, enabling smooth transitions between steps, and ensuring accurate data handling throughout the flow.

  • Create a new variable

  • Data Type > Text

  • Default Value > step1

With the "current step" variable in place, the screen flow will have a dedicated storage for the current step value, allowing for efficient navigation and data handling throughout the user's interaction with the flow.

Step 2: Create the progress type variable

In this step, we need to create a "progress type" variable to store the default progress type value for the Progress Indicator component, ensuring consistency and reusability across all screens. This variable will be essential for maintaining a consistent user experience, as it will determine the display format of progress indicators throughout the flow.

  • Create a new variable

  • Data Type > Text

  • Default Value > Vertical

With the "progress type" variable established, the screen flow will have a consistent and reusable progress indicator format, enhancing the overall user experience as they navigate the different screens in the flow.

Step 3: Create the router decision element

To manage the user's navigation through the different screens effectively. Now we must create a router screen element to effectively address the user's navigation through the various screens. The router decision element will define the outcome for each flow path, ensuring a smooth and logical user experience. We'll create four outcome order paths, as we have four screens.

To create the router screen element, follow these steps:

  1. Navigate to the screen flow's main design canvas.

  2. Locate and click on the "Elements" tab to access the available flow elements.

  3. Drag and drop the "Decision" element onto the canvas, serving as our router decision element.

  4. Double-click the decision element to configure it, and enter a name such as "RouterDecision".

  5. Add four outcome paths to the decision element, corresponding to the four screens in the flow.

Now, configure each outcome path as follows:

  • Outcome Path 1:

    • Set the name and criteria to match the first screen in the flow.

    • Link to the currentStep resource create in step 1 and set value equal to step1

  • Outcome Path 2:

    • Set the name and criteria to match the second screen in the flow.

    • Link to the currentStep resource create in step 2 and set value equal to step2

  • Outcome Path 3:

    • Set the name and criteria to match the third screen in the flow.

    • Link to the currentStep resource create in step 3 and set value equal to step3

  • Outcome Path 4:

    • Set the name and criteria to match the fourth screen in the flow.

    • Link to the currentStep resource create in step 4 and set value equal to step4

With the router decision element and its outcome paths in place, our flow is now set up to efficiently navigate users through the four screens while building a business quote. This ensures a seamless and intuitive experience for the user.

Step 4: Create each screen

  • Add a screen element

  • Enter an API name

  • Remove Header and Footer

  • Add a screen of two column to put the vertical progress indicator on the right of the screen

Configure the Progress Indicator component

Configure the Progress Indicator component as follow:

  • Check the "Enable click for each step" option

  • Enter your data source (the name of your steps)

Add the Avonni Button component to set the navigation

Add the Avonni Button for the previous and next button with the corresponding interaction.

  • Add the Avonni Button Component

  • Open the Component Builder

  • Enter a label (i.e: Next for the Screen 1)

  • Set the Variant to Brand

  • Click on the Interactions tab

    • Create an interaction: Flow Navigation > Next Screen

Step 5: create an assignment for each screen

In our flow, we must create an assignment for step screen 1 to effectively manage user interactions and navigation. By doing this, we can assign a variable value to a clicked step, allowing the flow to track user progress and ensure a smooth, responsive experience.

To create an assignment for step screen 1, follow these steps:

  1. Navigate to the screen flow's main design canvas.

  2. Locate and click on the "Elements" tab to access the available flow elements.

  3. Drag the "Assignment" element onto the canvas, placing it between the router decision element and step screen 1.

  4. Double-click the assignment element to configure it, and enter a name such as "AssignStepScreen1".

  5. In the "Variable Assignments" section, select the "currentStep" variable we created earlier.

  6. Set the value for the "currentStep" variable equal to "{!ProgressIndicator_Screen1.clickedStepValue}", indicating that the user has clicked on step screen 1.

  7. Connect the assignment element to the router decision element and step screen 1, creating a link between them.

By creating this assignment for step screen 1, we ensure that the flow accurately tracks the user's navigation through the screens. When the user clicks on step screen 1, the "currentStep" variable will be updated with the value "1", allowing the flow to respond dynamically to user interactions and provide a seamless experience.

Step 6: Add a decision to check if the button was clicked

In this step, we'll add a decision element to check if a button was clicked. We can determine the user's interaction with the button by evaluating the outcome. If the button is clicked, we'll navigate to screen 2; otherwise, we'll proceed to the default outcome. This decision ensures a responsive and logical flow based on user input.

For subsequent screens, you will have two outcome as there's a previous and next button.

Step 7: Add assignments on the decision outcome

In this step, we'll add assignments to the decision outcomes based on the button clicked. Doing so lets us define the flow's direction for each step, depending on whether the user clicks the "previous" or "next" button. This approach ensures a responsive and intuitive user experience as the flow adapts to the user's actions throughout the process.

Step 8: test your flow

In the upcoming step, we'll test the flow for your quote using a vertical progress indicator component. This step is essential to ensure the flow functions as intended, with smooth navigation and accurate progress tracking. By testing your flow, you can identify and address any issues, ultimately delivering a user-friendly and visually appealing quote-building experience.

Add the

For the Type field, select "Mapped" and select the Progress Type variable created in

For the Current Step field, select "Mapped"' and select the Current Step variable created in

Having trouble with this tutorial? .

Avonni Progress Indicator component
Contact Avonni support for help
step 1
step 2
Avonni Flow Screen Components managed package
Progress Indicator
Flow Builder View
Decision button click for screen 1