Skip to content
8 changes: 7 additions & 1 deletion packages/editor-ui/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -538,6 +538,12 @@ export const KEEP_AUTH_IN_NDV_FOR_NODES = [HTTP_REQUEST_NODE_TYPE, WEBHOOK_NODE_
export const MAIN_AUTH_FIELD_NAME = 'authentication';
export const NODE_RESOURCE_FIELD_NAME = 'resource';

export const EXPERIMENTS_TO_TRACK = [];
export const TEMPLATE_EXPERIMENT = {
name: '002_remove_templates',
control: 'control',
variant: 'variant',
};

export const EXPERIMENTS_TO_TRACK = [TEMPLATE_EXPERIMENT.name];

export const NODE_TYPES_EXCLUDED_FROM_OUTPUT_NAME_APPEND = [FILTER_NODE_TYPE];
9 changes: 7 additions & 2 deletions packages/editor-ui/src/router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import VariablesView from '@/views/VariablesView.vue';
import { IPermissions } from './Interface';
import { LOGIN_STATUS, ROLE } from '@/utils';
import { RouteConfigSingleView } from 'vue-router/types/router';
import { VIEWS } from './constants';
import { TEMPLATE_EXPERIMENT, VIEWS } from './constants';
import { useSettingsStore } from './stores/settings';
import { useTemplatesStore } from './stores/templates';
import { useSSOStore } from './stores/sso';
Expand All @@ -41,6 +41,7 @@ import SettingsSso from './views/SettingsSso.vue';
import SignoutView from '@/views/SignoutView.vue';
import SamlOnboarding from '@/views/SamlOnboarding.vue';
import SettingsVersionControl from './views/SettingsVersionControl.vue';
import { usePostHog } from './stores/posthog';

Vue.use(Router);

Expand All @@ -60,8 +61,12 @@ interface IRouteConfig extends RouteConfigSingleView {

function getTemplatesRedirect() {
const settingsStore = useSettingsStore();
const posthog = usePostHog();
const isTemplatesEnabled: boolean = settingsStore.isTemplatesEnabled;
if (!isTemplatesEnabled) {
if (
!posthog.isVariantEnabled(TEMPLATE_EXPERIMENT.name, TEMPLATE_EXPERIMENT.variant) &&
!isTemplatesEnabled
) {
return { name: VIEWS.NOT_FOUND };
}

Expand Down
28 changes: 21 additions & 7 deletions packages/editor-ui/src/stores/posthog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ import { useUsersStore } from '@/stores/users';
import { useRootStore } from '@/stores/n8nRootStore';
import { useSettingsStore } from '@/stores/settings';
import { FeatureFlags } from 'n8n-workflow';
import { EXPERIMENTS_TO_TRACK, LOCAL_STORAGE_EXPERIMENT_OVERRIDES } from '@/constants';
import {
EXPERIMENTS_TO_TRACK,
LOCAL_STORAGE_EXPERIMENT_OVERRIDES,
TEMPLATE_EXPERIMENT,
} from '@/constants';
import { useTelemetryStore } from './telemetry';
import { useSegment } from './segment';
import { debounce } from 'lodash-es';
Expand Down Expand Up @@ -128,12 +132,16 @@ export const usePostHog = defineStore('posthog', () => {
window.posthog?.onFeatureFlags?.((keys: string[], map: FeatureFlags) => {
featureFlags.value = map;
addExperimentOverrides();
trackExperiments(map);
trackExperimentsDebounced(map);
});
}
};

const trackExperiments = debounce((featureFlags: FeatureFlags) => {
const trackExperiments = (featureFlags: FeatureFlags) => {
EXPERIMENTS_TO_TRACK.forEach((name) => trackExperiment(featureFlags, name));
};

const trackExperimentsDebounced = debounce((featureFlags: FeatureFlags) => {
EXPERIMENTS_TO_TRACK.forEach((name) => trackExperiment(featureFlags, name));
}, 2000);

Expand All @@ -143,12 +151,18 @@ export const usePostHog = defineStore('posthog', () => {
return;
}

telemetryStore.track(EVENTS.IS_PART_OF_EXPERIMENT, {
name,
variant,
});
setTimeout(() => {
telemetryStore.track(EVENTS.IS_PART_OF_EXPERIMENT, {
name,
variant,
});
}, 2000);
Copy link
Contributor

Choose a reason for hiding this comment

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

this is now 4 seconds later for debounced? would 0 just work here?


trackedDemoExp.value[name] = variant;

if (name === TEMPLATE_EXPERIMENT.name && variant === TEMPLATE_EXPERIMENT.variant) {
settingsStore.disableTemplates();
}
};

return {
Expand Down
3 changes: 3 additions & 0 deletions packages/editor-ui/src/stores/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,9 @@ export const useSettingsStore = defineStore(STORES.SETTINGS, {
stopShowingSetupPage(): void {
Vue.set(this.userManagement, 'showSetupOnFirstLoad', false);
},
disableTemplates(): void {
Vue.set(this.settings.templates, 'enabled', false);
},
setPromptsData(promptsData: IN8nPrompts): void {
Vue.set(this, 'promptsData', promptsData);
},
Expand Down