@n8n/telemetry 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -823,7 +823,7 @@ export declare const TELEMETRY_EVENT: {
823
823
  };
824
824
  readonly USER_STARTED_ADDING_AGENT_TOOL: {
825
825
  readonly name: "User started adding agent tool";
826
- readonly description: "The user clicked Connect on an available row in the tools modal, starting a new tool flow.";
826
+ readonly description: "The user started adding an available tool manually by connecting it or creating a workflow.";
827
827
  readonly properties: import("zod/v4").ZodObject<{
828
828
  tool_type: import("zod/v4").ZodEnum<{
829
829
  custom: "custom";
@@ -962,6 +962,8 @@ export declare const TELEMETRY_EVENT: {
962
962
  sandbox_provider: import("zod/v4").ZodString;
963
963
  search_brave_set: import("zod/v4").ZodBoolean;
964
964
  search_searxng_set: import("zod/v4").ZodBoolean;
965
+ model_env_set: import("zod/v4").ZodBoolean;
966
+ model_id: import("zod/v4").ZodString;
965
967
  }, import("zod/v4/core").$strip>;
966
968
  metrics: import("zod/v4").ZodObject<{
967
969
  metrics_enabled: import("zod/v4").ZodBoolean;
@@ -992,8 +994,25 @@ export declare const TELEMETRY_EVENT: {
992
994
  } & import("./define").TelemetryEventInput & {
993
995
  readonly getValidationError: (properties: unknown) => string | null;
994
996
  };
997
+ readonly INSTANCE_REFUSED_DURABLE_POLLERS: {
998
+ readonly name: "Instance refused durable pollers";
999
+ readonly description: "Boot scan found active workflows whose published version has duplicate or missing trigger node ids. Durable poll cursors and durable-scheduler poll triggers were disabled instance-wide and the offending workflows poller_state rows were deleted.";
1000
+ readonly properties: import("zod/v4").ZodObject<{
1001
+ workflow_ids: import("zod/v4").ZodArray<import("zod/v4").ZodString>;
1002
+ deleted_cursor_rows: import("zod/v4").ZodNumber;
1003
+ }, import("zod/v4/core").$strip>;
1004
+ } & import("./define").TelemetryEventInput & {
1005
+ readonly getValidationError: (properties: unknown) => string | null;
1006
+ };
995
1007
  };
996
1008
  INSTANCE_AI: {
1009
+ readonly USER_CLICKED_AI_CREDIT_BALANCE: {
1010
+ readonly name: "User clicked AI credit balance";
1011
+ readonly description: "The user clicked the AI Assistant credit balance button to open or close the balance dropdown.";
1012
+ readonly properties: import("zod/v4").ZodObject<{}, import("zod/v4/core").$strip>;
1013
+ } & import("./define").TelemetryEventInput & {
1014
+ readonly getValidationError: (properties: unknown) => string | null;
1015
+ };
997
1016
  readonly BUILDER_SPECCED_TEMPLATED_CRED: {
998
1017
  readonly name: "Builder specced templated cred";
999
1018
  readonly description: "The Instance AI workflow builder composed a Simplified Custom Auth recipe (credentialHints) and suspended to show its setup card. Captures the recipe fields so template and link quality are observable in production — one event per recipe in the suspension. Contains no secrets by construction: recipes are agent-authored before any user input.";
@@ -1010,5 +1029,179 @@ export declare const TELEMETRY_EVENT: {
1010
1029
  } & import("./define").TelemetryEventInput & {
1011
1030
  readonly getValidationError: (properties: unknown) => string | null;
1012
1031
  };
1032
+ readonly USER_VIEWED_AI_ASSISTANT_SETUP_PAGE: {
1033
+ readonly name: "User viewed AI Assistant setup page";
1034
+ readonly description: "The user landed on a self-hosted AI Assistant setup surface: the onboarding takeover on /assistant, or the settings page on /settings/assistant. Carries the configuration snapshot at view time, so joined with \"AI Assistant setup completed\" it measures setup drop-off. Not emitted on cloud or proxy deployments, where setup is managed.";
1035
+ readonly properties: import("zod/v4").ZodObject<{
1036
+ model_source: import("zod/v4").ZodEnum<{
1037
+ env: "env";
1038
+ none: "none";
1039
+ ui: "ui";
1040
+ }>;
1041
+ model_provider: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
1042
+ model_name: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
1043
+ sandbox_source: import("zod/v4").ZodEnum<{
1044
+ env: "env";
1045
+ none: "none";
1046
+ ui: "ui";
1047
+ }>;
1048
+ sandbox_type: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
1049
+ daytona: "daytona";
1050
+ "n8n-sandbox": "n8n-sandbox";
1051
+ }>>;
1052
+ web_search_source: import("zod/v4").ZodEnum<{
1053
+ disabled: "disabled";
1054
+ env: "env";
1055
+ none: "none";
1056
+ ui: "ui";
1057
+ }>;
1058
+ web_search_provider: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
1059
+ brave: "brave";
1060
+ searxng: "searxng";
1061
+ }>>;
1062
+ page: import("zod/v4").ZodEnum<{
1063
+ onboarding: "onboarding";
1064
+ settings: "settings";
1065
+ }>;
1066
+ }, import("zod/v4/core").$strip>;
1067
+ } & import("./define").TelemetryEventInput & {
1068
+ readonly getValidationError: (properties: unknown) => string | null;
1069
+ };
1070
+ readonly USER_CONFIGURED_AI_ASSISTANT_MODEL: {
1071
+ readonly name: "User configured AI Assistant model";
1072
+ readonly description: "An admin saved an AI Assistant model connection (PUT /instance-ai/settings), covering the first connect, later changes, and same-provider key rotations: first connects are rows where previous_provider is absent. The event marks a saved configuration, not a verified one — the setup wizard verifies before saving, but a direct API save can skip verification. Env-var model config never emits this; it is visible on \"Instance started\" and on the snapshot events instead.";
1073
+ readonly properties: import("zod/v4").ZodObject<{
1074
+ provider: import("zod/v4").ZodString;
1075
+ model: import("zod/v4").ZodString;
1076
+ previous_provider: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1077
+ previous_model: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1078
+ }, import("zod/v4/core").$strip>;
1079
+ } & import("./define").TelemetryEventInput & {
1080
+ readonly getValidationError: (properties: unknown) => string | null;
1081
+ };
1082
+ readonly USER_CONFIGURED_AI_ASSISTANT_SANDBOX: {
1083
+ readonly name: "User configured AI Assistant sandbox";
1084
+ readonly description: "An admin saved an AI Assistant sandbox connection (PUT /instance-ai/settings), covering the first connect, later changes, and same-provider key rotations: first connects are rows where previous_sandbox_type is absent. Env-var sandbox config never emits this.";
1085
+ readonly properties: import("zod/v4").ZodObject<{
1086
+ sandbox_type: import("zod/v4").ZodEnum<{
1087
+ daytona: "daytona";
1088
+ "n8n-sandbox": "n8n-sandbox";
1089
+ }>;
1090
+ previous_sandbox_type: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
1091
+ daytona: "daytona";
1092
+ "n8n-sandbox": "n8n-sandbox";
1093
+ }>>;
1094
+ }, import("zod/v4/core").$strip>;
1095
+ } & import("./define").TelemetryEventInput & {
1096
+ readonly getValidationError: (properties: unknown) => string | null;
1097
+ };
1098
+ readonly USER_CONFIGURED_AI_ASSISTANT_WEB_SEARCH: {
1099
+ readonly name: "User configured AI Assistant web search";
1100
+ readonly description: "An admin saved an AI Assistant web search connection (PUT /instance-ai/settings), covering the first connect, later changes, and same-provider key rotations: first connects are rows where previous_provider is absent. Explicitly disabling web search does not emit this; that decision is visible as web_search_source \"disabled\" on the snapshot events.";
1101
+ readonly properties: import("zod/v4").ZodObject<{
1102
+ provider: import("zod/v4").ZodEnum<{
1103
+ brave: "brave";
1104
+ searxng: "searxng";
1105
+ }>;
1106
+ previous_provider: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
1107
+ brave: "brave";
1108
+ searxng: "searxng";
1109
+ }>>;
1110
+ }, import("zod/v4/core").$strip>;
1111
+ } & import("./define").TelemetryEventInput & {
1112
+ readonly getValidationError: (properties: unknown) => string | null;
1113
+ };
1114
+ readonly AI_ASSISTANT_CONNECTION_FAILED: {
1115
+ readonly name: "AI Assistant connection failed";
1116
+ readonly description: "A setup verification call (POST /instance-ai/settings/verify/*) failed for a model, sandbox, or web search connection. One event covers all three components; the component property tells them apart. Fires once per failed verify attempt, including retries.";
1117
+ readonly properties: import("zod/v4").ZodObject<{
1118
+ component: import("zod/v4").ZodEnum<{
1119
+ model: "model";
1120
+ sandbox: "sandbox";
1121
+ web_search: "web_search";
1122
+ }>;
1123
+ provider: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
1124
+ failure: import("zod/v4").ZodEnum<{
1125
+ forbidden: "forbidden";
1126
+ invalid_response: "invalid_response";
1127
+ provider_error: "provider_error";
1128
+ quota_exceeded: "quota_exceeded";
1129
+ rate_limited: "rate_limited";
1130
+ timeout: "timeout";
1131
+ unauthorized: "unauthorized";
1132
+ unreachable: "unreachable";
1133
+ }>;
1134
+ error_message: import("zod/v4").ZodString;
1135
+ }, import("zod/v4/core").$strip>;
1136
+ } & import("./define").TelemetryEventInput & {
1137
+ readonly getValidationError: (properties: unknown) => string | null;
1138
+ };
1139
+ readonly AI_ASSISTANT_SETUP_COMPLETED: {
1140
+ readonly name: "AI Assistant setup completed";
1141
+ readonly description: "A self-hosted instance reached a complete AI Assistant setup for the first time: model configured, sandbox configured, and web search decided (configured or explicitly disabled) — the same predicate that unlocks the assistant UI. Fires at most once per instance, guarded by a persisted settings key, regardless of how the last piece was set: emitted from the settings save path, with a boot-time check so an env-var finish is also counted. No \"User\" prefix because the last piece can land via env vars with no acting user.";
1142
+ readonly properties: import("zod/v4").ZodObject<{
1143
+ model_source: import("zod/v4").ZodEnum<{
1144
+ env: "env";
1145
+ none: "none";
1146
+ ui: "ui";
1147
+ }>;
1148
+ model_provider: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
1149
+ model_name: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
1150
+ sandbox_source: import("zod/v4").ZodEnum<{
1151
+ env: "env";
1152
+ none: "none";
1153
+ ui: "ui";
1154
+ }>;
1155
+ sandbox_type: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
1156
+ daytona: "daytona";
1157
+ "n8n-sandbox": "n8n-sandbox";
1158
+ }>>;
1159
+ web_search_source: import("zod/v4").ZodEnum<{
1160
+ disabled: "disabled";
1161
+ env: "env";
1162
+ none: "none";
1163
+ ui: "ui";
1164
+ }>;
1165
+ web_search_provider: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
1166
+ brave: "brave";
1167
+ searxng: "searxng";
1168
+ }>>;
1169
+ }, import("zod/v4/core").$strip>;
1170
+ } & import("./define").TelemetryEventInput & {
1171
+ readonly getValidationError: (properties: unknown) => string | null;
1172
+ };
1173
+ };
1174
+ MCP: {
1175
+ readonly USER_GAVE_MCP_ACCESS_TO_WORKFLOW: {
1176
+ readonly name: "User gave MCP access to workflow";
1177
+ readonly description: "A workflow was exposed over MCP.";
1178
+ readonly properties: import("zod/v4").ZodObject<{
1179
+ workflow_id: import("zod/v4").ZodString;
1180
+ }, import("zod/v4/core").$strip>;
1181
+ } & import("./define").TelemetryEventInput & {
1182
+ readonly getValidationError: (properties: unknown) => string | null;
1183
+ };
1184
+ readonly USER_TOGGLED_MCP_ACCESS: {
1185
+ readonly name: "User toggled MCP access";
1186
+ readonly description: "An admin turned instance-level MCP access on or off. Reports the resulting state.";
1187
+ readonly properties: import("zod/v4").ZodObject<{
1188
+ state: import("zod/v4").ZodBoolean;
1189
+ }, import("zod/v4/core").$strip>;
1190
+ } & import("./define").TelemetryEventInput & {
1191
+ readonly getValidationError: (properties: unknown) => string | null;
1192
+ };
1193
+ readonly AUTO_EXPOSE_NEW_WORKFLOWS_TOGGLED: {
1194
+ readonly name: "User toggled auto-expose new workflows to MCP";
1195
+ readonly description: "An admin turned the \"Auto-expose new workflows\" MCP setting on or off. Reports the resulting state so enabling and disabling are distinguishable.";
1196
+ readonly properties: import("zod/v4").ZodObject<{
1197
+ enabled: import("zod/v4").ZodBoolean;
1198
+ source: import("zod/v4").ZodEnum<{
1199
+ expose_all: "expose_all";
1200
+ settings: "settings";
1201
+ }>;
1202
+ }, import("zod/v4/core").$strip>;
1203
+ } & import("./define").TelemetryEventInput & {
1204
+ readonly getValidationError: (properties: unknown) => string | null;
1205
+ };
1013
1206
  };
1014
1207
  };
@@ -5,6 +5,7 @@ const agents_1 = require("./events/agents");
5
5
  const credentials_1 = require("./events/credentials");
6
6
  const instance_1 = require("./events/instance");
7
7
  const instance_ai_1 = require("./events/instance-ai");
8
+ const mcp_1 = require("./events/mcp");
8
9
  const platform_1 = require("./events/platform");
9
10
  exports.TELEMETRY_EVENT = {
10
11
  PLATFORM: platform_1.PLATFORM_TELEMETRY,
@@ -12,5 +13,6 @@ exports.TELEMETRY_EVENT = {
12
13
  CREDENTIALS: credentials_1.CREDENTIALS_TELEMETRY,
13
14
  INSTANCE: instance_1.INSTANCE_TELEMETRY,
14
15
  INSTANCE_AI: instance_ai_1.INSTANCE_AI_TELEMETRY,
16
+ MCP: mcp_1.MCP_TELEMETRY,
15
17
  };
16
18
  //# sourceMappingURL=telemetry-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-events.js","sourceRoot":"","sources":["../src/telemetry-events.ts"],"names":[],"mappings":";;;AACA,4CAAmD;AACnD,sDAA6D;AAC7D,gDAAuD;AACvD,sDAA6D;AAC7D,gDAAuD;AAE1C,QAAA,eAAe,GAAG;IAC9B,QAAQ,EAAE,6BAAkB;IAC5B,MAAM,EAAE,yBAAgB;IACxB,WAAW,EAAE,mCAAqB;IAClC,QAAQ,EAAE,6BAAkB;IAC5B,WAAW,EAAE,mCAAqB;CACD,CAAC"}
1
+ {"version":3,"file":"telemetry-events.js","sourceRoot":"","sources":["../src/telemetry-events.ts"],"names":[],"mappings":";;;AACA,4CAAmD;AACnD,sDAA6D;AAC7D,gDAAuD;AACvD,sDAA6D;AAC7D,sCAA6C;AAC7C,gDAAuD;AAE1C,QAAA,eAAe,GAAG;IAC9B,QAAQ,EAAE,6BAAkB;IAC5B,MAAM,EAAE,yBAAgB;IACxB,WAAW,EAAE,mCAAqB;IAClC,QAAQ,EAAE,6BAAkB;IAC5B,WAAW,EAAE,mCAAqB;IAClC,GAAG,EAAE,mBAAa;CACe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/telemetry",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
@@ -20,8 +20,8 @@
20
20
  "vite": "^8.0.2",
21
21
  "vitest": "^4.1.9",
22
22
  "@n8n/eslint-config": "0.0.1",
23
- "@n8n/typescript-config": "1.9.0",
24
- "@n8n/vitest-config": "1.20.0"
23
+ "@n8n/typescript-config": "1.10.0",
24
+ "@n8n/vitest-config": "1.21.0"
25
25
  },
26
26
  "license": "SEE LICENSE IN LICENSE.md",
27
27
  "homepage": "https://n8n.io",