Skip to content

feat(onboarding flow): implements a comprehensive onboarding system#5854

Open
prd-hoang-doan wants to merge 1 commit into
FlowiseAI:mainfrom
prd-hoang-doan:feat/onboarding-flow
Open

feat(onboarding flow): implements a comprehensive onboarding system#5854
prd-hoang-doan wants to merge 1 commit into
FlowiseAI:mainfrom
prd-hoang-doan:feat/onboarding-flow

Conversation

@prd-hoang-doan
Copy link
Copy Markdown
Contributor

Ticket

Flowise Roadmap

Overview

This PR implements a comprehensive onboarding system for Flowise, introducing an interactive guide framework to help new users learn the platform. The implementation includes a welcome page with quick-start cards, an overlay guide system with spotlight masks and tooltips, and deep integration across major features like canvas workflows, marketplace templates, document stores, and chat interfaces.

agentflow-connect-nodes

Changes

  • Added complete onboarding UI system with welcome page, quick-start cards
  • Implemented overlay guide framework with spotlight masks, tooltips, and step-by-step navigation for interactive tutorials
  • Integrated onboarding hooks and navigation triggers across canvas, marketplace, document stores, and chat interfaces

Demo Recording

Youtube: Flowise Onboarding flow

* Added complete onboarding UI system with welcome page, quick-start cards

* Implemented overlay guide framework with spotlight masks, tooltips, and step-by-step navigation for interactive tutorials

* Integrated onboarding hooks and navigation triggers across canvas, marketplace, document stores, and chat interfaces
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @prd-hoang-doan, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the user experience for new Flowise users by introducing a comprehensive onboarding system. It provides interactive, step-by-step guides for core functionalities like creating chatflows, building agent flows, managing document stores, and exploring marketplace templates. The system is designed to be intuitive, leveraging visual cues and dynamic content to facilitate learning and accelerate user adoption, ensuring that new users can quickly become proficient with the platform's capabilities.

Highlights

  • Comprehensive Onboarding System: Introduced a full-fledged onboarding system with a welcome page, quick-start cards, and interactive overlay guides to help new users learn the platform.
  • Interactive Guide Framework: Implemented a robust overlay guide system featuring spotlight masks, tooltips, and step-by-step navigation for interactive tutorials across key features.
  • Deep Integration Across Features: Integrated onboarding hooks and navigation triggers into canvas workflows (chatflows and agentflows), marketplace templates, document stores, and chat interfaces, ensuring a guided experience throughout the application.
  • Redux and Local Storage for Onboarding State: Utilized Redux for managing onboarding status and progress, with persistence to local storage, allowing users to resume guides or track their completion.
  • Dynamic Tooltip Placement and UI Components: Developed utility functions for dynamic tooltip placement, DOM element waiting, and created reusable UI components like OverlayPortal, SpotlightMask, OverlayTooltip, Arrow, and ProgressBar for a seamless guided experience.
Changelog
  • packages/ui/src/App.jsx
    • Imported OnboardingGate and OverlayProvider components.
    • Wrapped the main application routes with OverlayProvider and OnboardingGate to enable the onboarding system.
  • packages/ui/src/api/onboarding.js
    • Added a new API client for managing onboarding status, using localStorage for persistence.
    • Implemented getStatus to retrieve current onboarding progress and state.
  • packages/ui/src/hooks/onboarding/useAgentFlowCreationGuide.jsx
    • Added a new hook useAgentFlowCreationGuide to provide a step-by-step tutorial for building multi-agent systems.
  • packages/ui/src/hooks/onboarding/useChatflowCreationGuide.jsx
    • Added a new hook useChatflowCreationGuide to provide a step-by-step tutorial for creating chatflows.
  • packages/ui/src/hooks/onboarding/useDocumentStoreCreationGuide.jsx
    • Added a new hook useDocumentStoreCreationGuide to provide a step-by-step tutorial for creating and managing document stores.
  • packages/ui/src/hooks/onboarding/useMarketplaceExplorationGuide.jsx
    • Added a new hook useMarketplaceExplorationGuide to provide a step-by-step tutorial for exploring marketplace templates.
  • packages/ui/src/layout/MainLayout/Header/ProfileSection/index.jsx
    • Imported IconRobot for a new menu item.
    • Added a 'Quick Start' menu item that navigates to the /welcome page.
  • packages/ui/src/layout/MainLayout/ViewHeader.jsx
    • Added data-onboarding attributes to the view header container and search input for overlay targeting.
  • packages/ui/src/routes/MainRoutes.jsx
    • Added a new route /welcome for the WelcomePage component.
  • packages/ui/src/store/actions.js
    • Added new Redux action types for onboarding status management, including SET_ONBOARDING_STATUS, COMPLETE_STEP, SKIP_ONBOARDING, SET_ONBOARDING_LOADING, and SET_ONBOARDING_ERROR.
  • packages/ui/src/store/index.jsx
    • Updated createStore configuration to enable Redux DevTools Extension in development mode.
  • packages/ui/src/store/reducer.jsx
    • Imported onboardingReducer.
    • Combined onboardingReducer into the root Redux reducer.
  • packages/ui/src/store/reducers/onboardingReducer.js
    • Added a new Redux reducer onboardingReducer to manage the onboarding state.
    • Implemented logic for loading and saving onboarding state to localStorage.
  • packages/ui/src/ui-component/overlay/Arrow.jsx
    • Added a new component Arrow to render directional pointers for tooltips, with dark mode support.
  • packages/ui/src/ui-component/overlay/OverlayPortal.jsx
    • Added a new OverlayPortal component to render overlay elements outside the normal DOM hierarchy.
  • packages/ui/src/ui-component/overlay/OverlayProvider.jsx
    • Added a new OverlayProvider component to manage and render interactive overlay guides.
    • Implemented state management for guide steps, current step index, and target element positioning.
  • packages/ui/src/ui-component/overlay/OverlayTooltip.jsx
    • Added a new OverlayTooltip component for displaying interactive guide tooltips.
    • Included dynamic placement logic, progress bar, and navigation buttons.
  • packages/ui/src/ui-component/overlay/ProgressBar.jsx
    • Added a new ProgressBar component to visually indicate progress within a multi-step guide.
  • packages/ui/src/ui-component/overlay/SpotlightMask.jsx
    • Added a new SpotlightMask component using SVG to create a spotlight effect around a target element.
  • packages/ui/src/utils/overlay/domUtils.js
    • Added new utility functions getTargetRect and waitForElement for DOM element interaction within the overlay system.
  • packages/ui/src/utils/overlay/onboarding.js
    • Added a new utility function getStateByProgress to determine the overall onboarding status based on completed steps.
  • packages/ui/src/utils/overlay/placementUtils.js
    • Added a new utility function resolvePlacement for intelligent, dynamic placement of tooltips based on screen space.
  • packages/ui/src/utils/overlay/useOverlay.js
    • Added a new React Context and useOverlay hook to provide and consume overlay state and control functions.
  • packages/ui/src/views/agentflowsv2/AgentFlowNode.jsx
    • Added data-onboarding attribute to the agent flow node for overlay targeting.
  • packages/ui/src/views/agentflowsv2/Canvas.jsx
    • Integrated useAgentFlowCreationGuide and useOverlay hooks.
    • Added GuideButton to the canvas for initiating guides.
    • Implemented logic to auto-advance onboarding steps on node drops and flow saves.
  • packages/ui/src/views/agentflowsv2/EditNodeDialog.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when renaming or saving agent nodes.
    • Added data-onboarding attributes to relevant UI elements.
  • packages/ui/src/views/canvas/AddNodes.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when opening the node panel or selecting nodes.
    • Added data-onboarding attributes to the node panel and popper.
  • packages/ui/src/views/canvas/CanvasHeader.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when saving a flow.
    • Added data-onboarding attribute to the save button.
  • packages/ui/src/views/canvas/GuideButton.jsx
    • Added a new GuideButton component, a floating help button to trigger interactive guides on the canvas.
  • packages/ui/src/views/canvas/NodeInputHandler.jsx
    • Added data-onboarding attribute to the node input parameter div for overlay targeting.
  • packages/ui/src/views/canvas/index.jsx
    • Integrated useChatflowCreationGuide, useAgentFlowCreationGuide, and useOverlay hooks.
    • Added GuideButton to the canvas for initiating guides.
    • Implemented logic to auto-advance onboarding steps on node drops, flow saves, and node connections.
  • packages/ui/src/views/chatmessage/ChatExpandDialog.jsx
    • Added onPredictionComplete prop to ChatMessage component for onboarding integration.
  • packages/ui/src/views/chatmessage/ChatMessage.jsx
    • Added onPredictionComplete prop and invoked it after successful chat predictions for onboarding purposes.
  • packages/ui/src/views/chatmessage/ChatPopUp.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when opening the chat popup and after a prediction is completed.
    • Added data-onboarding attribute to the chat button.
  • packages/ui/src/views/chatmessage/ValidationPopUp.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when opening the validation dialog and after flow validation.
    • Added data-onboarding attributes to validation buttons.
  • packages/ui/src/views/credentials/AddEditCredentialDialog.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when saving new credentials.
    • Added data-onboarding attributes to credential name input and confirm button.
  • packages/ui/src/views/credentials/CredentialInputHandler.jsx
    • Added data-onboarding attribute to the credential API key input for overlay targeting.
  • packages/ui/src/views/docstore/DocStoreInputHandler.jsx
    • Added data-onboarding attribute to the document store input parameter box for overlay targeting.
  • packages/ui/src/views/docstore/DocumentLoaderListDialog.jsx
    • Added data-onboarding attribute to the document loader list for overlay targeting.
  • packages/ui/src/views/docstore/DocumentStoreDetail.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when navigating to loader configuration or processing documents.
    • Added data-onboarding attributes to the 'Add Document Loader' button.
  • packages/ui/src/views/docstore/LoaderConfigPreviewChunks.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when previewing or processing documents.
    • Added data-onboarding attributes to loader name input, text splitter, preview, and process buttons.
  • packages/ui/src/views/docstore/index.jsx
    • Integrated useDocumentStoreCreationGuide and useOverlay hooks.
    • Implemented logic to auto-start the guide on navigation and auto-advance on adding/selecting document stores.
    • Added data-onboarding attributes to the 'Add New' button and document store grid.
  • packages/ui/src/views/marketplaces/MarketplaceCanvasHeader.jsx
    • Integrated useOverlay hook.
    • Added logic to auto-advance onboarding steps when using a template.
    • Added data-onboarding attribute to the 'Use Template' button.
  • packages/ui/src/views/marketplaces/index.jsx
    • Integrated useMarketplaceExplorationGuide and useOverlay hooks.
    • Implemented logic to auto-start the guide on navigation and auto-advance on selecting templates.
    • Added data-onboarding attributes to marketplace filters and the templates grid.
  • packages/ui/src/views/onboarding/OnboardingGate.jsx
    • Added a new OnboardingGate component to fetch and manage the initial onboarding status, redirecting to the welcome page if necessary.
  • packages/ui/src/views/onboarding/QuickStartCard.jsx
    • Added a new QuickStartCard component, a reusable UI card for displaying quick start actions on the welcome page.
  • packages/ui/src/views/onboarding/QuickStartGrid.jsx
    • Added a new QuickStartGrid component to display a grid of QuickStartCards, integrating with Redux onboarding state.
  • packages/ui/src/views/onboarding/WelcomeHeader.jsx
    • Added a new WelcomeHeader component for the welcome page, providing a greeting and introductory text.
  • packages/ui/src/views/onboarding/index.jsx
    • Added a new WelcomePage component, serving as the main onboarding entry point with quick start cards and a skip option.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a comprehensive onboarding system, including an interactive guide framework and a welcome page. The implementation is extensive, touching many parts of the UI to integrate the new overlay guides. The overall structure is well-thought-out, with a clear separation of concerns for the overlay provider, guide definitions, and state management. However, I've identified a few areas for improvement regarding the robustness of the implementation. Specifically, some CSS selectors used for targeting guide steps are fragile and could break with minor UI changes. Additionally, there's a reliance on arbitrary setTimeout calls, one of which is particularly long and could lead to a poor user experience or race conditions. Finally, the logic for detecting when a chatflow is fully connected in the guide is not robust for all graph structures. Addressing these points will improve the maintainability and reliability of this new feature.

Comment thread packages/ui/src/views/chatmessage/ChatMessage.jsx
Comment thread packages/ui/src/hooks/onboarding/useAgentFlowCreationGuide.jsx
Comment thread packages/ui/src/hooks/onboarding/useDocumentStoreCreationGuide.jsx
Comment thread packages/ui/src/views/canvas/index.jsx
@qdrddr
Copy link
Copy Markdown

qdrddr commented Feb 27, 2026

I would propose installing Flowise via npx with one command (instead of Docker) and onboarding via CLI with the most essential things only for a beginner to get started. Which should result in an automatically created first flow, that should reassemble the Agent, such as OpenClaw. OpenClaw showed what people liked: a simple agent for personalized use. Flowise should adopt these things that made OpenClaw popular - simplicity, personalization, run CLI commands in a shell, and installation with one command.

Personalized Essentials such as:

  • LLM provider
  • memory
  • Cron
  • MCP servers
  • Channels (Slack, Discord)
  • Run as a daemon/service
  • Skills
  • Be able to run via VPN
  • Run CLI tools in a shell

@HenryHengZJ
Copy link
Copy Markdown
Contributor

thank you @prd-hoang-doan this is really helpful! we'll take a look and make some suggestions

@harshit-flowise
Copy link
Copy Markdown

Great work on this feature, @prd-hoang-doan! We’re going to have our UX designer take a look and share some suggestions in the next few weeks. Thanks again for the solid contribution.

@prd-hoang-doan
Copy link
Copy Markdown
Contributor Author

@HenryHengZJ @harshit-flowise I'm glad the contribution is helpful. I’d be happy to continue improving it based on suggestions. Looking forward to the feedback and happy to help refine the onboarding flow further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants