From 6dd90c8764f3c50fc1c44cffaf63c18cafa49803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milorad=20FIlipovi=C4=87?= Date: Mon, 27 Jan 2025 15:36:59 +0100 Subject: [PATCH] feat(editor): Add more telemetry for workflow inputs (no-changelog) (#12862) --- .../components/FixedCollectionParameter.vue | 33 ++++++++++++++++++- .../src/components/ParameterInput.vue | 19 +++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/packages/editor-ui/src/components/FixedCollectionParameter.vue b/packages/editor-ui/src/components/FixedCollectionParameter.vue index 59eacfdb10..04f8c9e773 100644 --- a/packages/editor-ui/src/components/FixedCollectionParameter.vue +++ b/packages/editor-ui/src/components/FixedCollectionParameter.vue @@ -18,6 +18,9 @@ import { } from 'n8n-design-system'; import ParameterInputList from './ParameterInputList.vue'; import Draggable from 'vuedraggable'; +import { useWorkflowsStore } from '@/stores/workflows.store'; +import { useNDVStore } from '@/stores/ndv.store'; +import { telemetry } from '@/plugins/telemetry'; const locale = useI18n(); @@ -44,6 +47,9 @@ const emit = defineEmits<{ valueChanged: [value: ValueChangedEvent]; }>(); +const workflowsStore = useWorkflowsStore(); +const ndvStore = useNDVStore(); + const getPlaceholderText = computed(() => { const placeholder = locale.nodeText().placeholder(props.parameter, props.path); return placeholder ? placeholder : locale.baseText('fixedCollectionParameter.choose'); @@ -127,6 +133,13 @@ const getOptionProperties = (optionName: string) => { return undefined; }; +const onAddButtonClick = (optionName: string) => { + optionSelected(optionName); + if (props.parameter.name === 'workflowInputs') { + trackWorkflowInputFieldAdded(); + } +}; + const optionSelected = (optionName: string) => { const option = getOptionProperties(optionName); if (option === undefined) { @@ -183,6 +196,9 @@ const optionSelected = (optionName: string) => { const valueChanged = (parameterData: IUpdateInformation) => { emit('valueChanged', parameterData); + if (props.parameter.name === 'workflowInputs') { + trackWorkflowInputFieldTypeChange(parameterData); + } }; const onDragChange = (optionName: string) => { const parameterData: ValueChangedEvent = { @@ -193,6 +209,21 @@ const onDragChange = (optionName: string) => { emit('valueChanged', parameterData); }; + +const trackWorkflowInputFieldTypeChange = (parameterData: IUpdateInformation) => { + telemetry.track('User changed workflow input field type', { + type: parameterData.value, + workflow_id: workflowsStore.workflow.id, + node_id: ndvStore.activeNode?.id, + }); +}; + +const trackWorkflowInputFieldAdded = () => { + telemetry.track('User added workflow input field', { + workflow_id: workflowsStore.workflow.id, + node_id: ndvStore.activeNode?.id, + }); +};