diff --git a/Composer/packages/adaptive-form/src/components/fields/RecognizerField/RecognizerField.tsx b/Composer/packages/adaptive-form/src/components/fields/RecognizerField/RecognizerField.tsx index 5a33fdef64..d8bf399ea7 100644 --- a/Composer/packages/adaptive-form/src/components/fields/RecognizerField/RecognizerField.tsx +++ b/Composer/packages/adaptive-form/src/components/fields/RecognizerField/RecognizerField.tsx @@ -17,6 +17,7 @@ import { getDropdownOptions } from './getDropdownOptions'; export const RecognizerField: React.FC> = (props) => { const { value, id, label, description, uiOptions, required, onChange } = props; const { shellApi, ...shellData } = useShellApi(); + const { telemetryClient } = shellApi; useMigrationEffect(value, onChange); const { recognizers: recognizerConfigs, currentRecognizer } = useRecognizerConfig(); @@ -38,6 +39,7 @@ export const RecognizerField: React.FC> = (prop ? seedNewRecognizer(shellData, shellApi) : { $kind: option.key as string, intents: [] }; // fallback to default Recognizer instance; onChange(recognizerInstance); + telemetryClient?.track('RecognizerChanged', { recognizer: option.key as string }); }; return ( diff --git a/Composer/packages/types/src/telemetry.ts b/Composer/packages/types/src/telemetry.ts index c13d79ed0c..dfd80da5a7 100644 --- a/Composer/packages/types/src/telemetry.ts +++ b/Composer/packages/types/src/telemetry.ts @@ -198,6 +198,10 @@ type OrchestratorEvents = { OrchestratorBuildCompleted: { baseModel: string; firstBuild: boolean }; }; +type PropertyEditorEvents = { + RecognizerChanged: { recognizer: string }; +}; + type OtherEvents = {}; type PageView = { @@ -232,7 +236,8 @@ export type TelemetryEvents = ApplicationEvents & LgEditorEvents & WebChatEvents & LuEditorEvents & - OrchestratorEvents; + OrchestratorEvents & + PropertyEditorEvents; export type TelemetryEventName = keyof TelemetryEvents;