diff --git a/packages/editor-ui/src/components/MainSidebar.vue b/packages/editor-ui/src/components/MainSidebar.vue index 08707e76ce..cc8502a8a7 100644 --- a/packages/editor-ui/src/components/MainSidebar.vue +++ b/packages/editor-ui/src/components/MainSidebar.vue @@ -282,7 +282,7 @@ export default defineComponent({ icon: 'graduation-cap', label: this.$locale.baseText('mainSidebar.helpMenuItems.course'), link: { - href: 'https://www.youtube.com/watch?v=1MwSoB0gnM4', + href: 'https://docs.n8n.io/courses/', target: '_blank', }, }, diff --git a/packages/editor-ui/src/components/PersonalizationModal.vue b/packages/editor-ui/src/components/PersonalizationModal.vue index ce0c263dbd..3f74e06f4e 100644 --- a/packages/editor-ui/src/components/PersonalizationModal.vue +++ b/packages/editor-ui/src/components/PersonalizationModal.vue @@ -135,6 +135,7 @@ import { REPORTED_SOURCE_OTHER, REPORTED_SOURCE_OTHER_KEY, VIEWS, + MORE_ONBOARDING_OPTIONS_EXPERIMENT, } from '@/constants'; import { useToast } from '@/composables/useToast'; import Modal from '@/components/Modal.vue'; @@ -674,9 +675,12 @@ export default defineComponent({ methods: { closeDialog() { this.modalBus.emit('close'); + const isPartOfOnboardingExperiment = + this.posthogStore.getVariant(MORE_ONBOARDING_OPTIONS_EXPERIMENT.name) === + MORE_ONBOARDING_OPTIONS_EXPERIMENT.control; // In case the redirect to homepage for new users didn't happen // we try again after closing the modal - if (this.$route.name !== VIEWS.HOMEPAGE) { + if (this.$route.name !== VIEWS.HOMEPAGE && !isPartOfOnboardingExperiment) { void this.$router.replace({ name: VIEWS.HOMEPAGE }); } }, diff --git a/packages/editor-ui/src/constants.ts b/packages/editor-ui/src/constants.ts index daf788eb21..cf3c5bebb8 100644 --- a/packages/editor-ui/src/constants.ts +++ b/packages/editor-ui/src/constants.ts @@ -680,11 +680,18 @@ export const AI_ASSISTANT_EXPERIMENT = { variant: 'variant', }; +export const MORE_ONBOARDING_OPTIONS_EXPERIMENT = { + name: '022_more_onboarding_options', + control: 'control', + variant: 'variant', +}; + export const EXPERIMENTS_TO_TRACK = [ ASK_AI_EXPERIMENT.name, TEMPLATE_CREDENTIAL_SETUP_EXPERIMENT, CANVAS_AUTO_ADD_MANUAL_TRIGGER_EXPERIMENT.name, AI_ASSISTANT_EXPERIMENT.name, + MORE_ONBOARDING_OPTIONS_EXPERIMENT.name, ]; export const MFA_FORM = { diff --git a/packages/editor-ui/src/plugins/i18n/locales/en.json b/packages/editor-ui/src/plugins/i18n/locales/en.json index 2bdb52459a..7f94aec41c 100644 --- a/packages/editor-ui/src/plugins/i18n/locales/en.json +++ b/packages/editor-ui/src/plugins/i18n/locales/en.json @@ -2202,7 +2202,8 @@ "workflows.empty.description.readOnlyEnv": "No workflows here yet", "workflows.empty.description.noPermission": "There are currently no workflows to view", "workflows.empty.startFromScratch": "Start from scratch", - "workflows.empty.browseTemplates": "Browse {category} templates", + "workflows.empty.browseTemplates": "Explore workflow templates", + "workflows.empty.learnN8n": "Learn n8n", "workflows.empty.button.disabled.tooltip": "Your current role in the project does not allow you to create workflows", "workflows.shareModal.title": "Share '{name}'", "workflows.shareModal.title.static": "Shared with {projectName}", diff --git a/packages/editor-ui/src/views/SetupView.vue b/packages/editor-ui/src/views/SetupView.vue index eb67935bb0..c85735374c 100644 --- a/packages/editor-ui/src/views/SetupView.vue +++ b/packages/editor-ui/src/views/SetupView.vue @@ -13,11 +13,12 @@ import { defineComponent } from 'vue'; import { useToast } from '@/composables/useToast'; import type { IFormBoxConfig } from '@/Interface'; -import { VIEWS } from '@/constants'; +import { MORE_ONBOARDING_OPTIONS_EXPERIMENT, VIEWS } from '@/constants'; import { mapStores } from 'pinia'; import { useUIStore } from '@/stores/ui.store'; import { useSettingsStore } from '@/stores/settings.store'; import { useUsersStore } from '@/stores/users.store'; +import { usePostHog } from '@/stores/posthog.store'; export default defineComponent({ name: 'SetupView', @@ -91,12 +92,15 @@ export default defineComponent({ }; }, computed: { - ...mapStores(useSettingsStore, useUIStore, useUsersStore), + ...mapStores(useSettingsStore, useUIStore, useUsersStore, usePostHog), }, methods: { async onSubmit(values: { [key: string]: string | boolean }) { try { const forceRedirectedHere = this.settingsStore.showSetupPage; + const isPartOfOnboardingExperiment = + this.posthogStore.getVariant(MORE_ONBOARDING_OPTIONS_EXPERIMENT.name) === + MORE_ONBOARDING_OPTIONS_EXPERIMENT.variant; this.loading = true; await this.usersStore.createOwner( values as { firstName: string; lastName: string; email: string; password: string }, @@ -109,7 +113,11 @@ export default defineComponent({ } if (forceRedirectedHere) { - await this.$router.push({ name: VIEWS.HOMEPAGE }); + if (isPartOfOnboardingExperiment) { + await this.$router.push({ name: VIEWS.WORKFLOWS }); + } else { + await this.$router.push({ name: VIEWS.NEW_WORKFLOW }); + } } else { await this.$router.push({ name: VIEWS.USERS_SETTINGS }); } diff --git a/packages/editor-ui/src/views/WorkflowsView.vue b/packages/editor-ui/src/views/WorkflowsView.vue index 55e61c4fb1..564ff672a2 100644 --- a/packages/editor-ui/src/views/WorkflowsView.vue +++ b/packages/editor-ui/src/views/WorkflowsView.vue @@ -61,29 +61,14 @@ : $locale.baseText('workflows.empty.heading.userNotSetup') }} - {{ emptyListDescription }} + + {{ emptyListDescription }} +
- - - - - {{ $locale.baseText('workflows.empty.browseTemplates') }} - - - - + {{ $locale.baseText('workflows.empty.startFromScratch') }} + + + + + {{ $locale.baseText('workflows.empty.learnN8n') }} + + + + + + + + {{ $locale.baseText('workflows.empty.browseTemplates') }} + + +