@n8n/telemetry 1.9.1 → 1.10.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.
Files changed (37) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/catalog.js +18 -16
  3. package/dist/catalog.js.map +1 -1
  4. package/dist/events/agents.d.ts +90 -0
  5. package/dist/events/agents.js +65 -0
  6. package/dist/events/agents.js.map +1 -1
  7. package/dist/events/context.d.ts +81 -5
  8. package/dist/events/context.js +73 -19
  9. package/dist/events/context.js.map +1 -1
  10. package/dist/events/credentials.d.ts +14 -3
  11. package/dist/events/credentials.js +12 -2
  12. package/dist/events/credentials.js.map +1 -1
  13. package/dist/events/instance-ai.d.ts +258 -1
  14. package/dist/events/instance-ai.js +232 -2
  15. package/dist/events/instance-ai.js.map +1 -1
  16. package/dist/events/mcp.d.ts +1 -0
  17. package/dist/events/mcp.js +1 -1
  18. package/dist/events/mcp.js.map +1 -1
  19. package/dist/events/{node-type-policies.d.ts → type-availability-policies.d.ts} +9 -9
  20. package/dist/events/{node-type-policies.js → type-availability-policies.js} +16 -16
  21. package/dist/events/type-availability-policies.js.map +1 -0
  22. package/dist/events/workflow.d.ts +110 -0
  23. package/dist/events/workflow.js +93 -0
  24. package/dist/events/workflow.js.map +1 -1
  25. package/dist/index.d.ts +3 -2
  26. package/dist/index.js +5 -3
  27. package/dist/index.js.map +1 -1
  28. package/dist/registry-checks.js +3 -2
  29. package/dist/registry-checks.js.map +1 -1
  30. package/dist/schemas.d.ts +5 -0
  31. package/dist/schemas.js +8 -0
  32. package/dist/schemas.js.map +1 -0
  33. package/dist/telemetry-events.d.ts +562 -18
  34. package/dist/telemetry-events.js +2 -2
  35. package/dist/telemetry-events.js.map +1 -1
  36. package/package.json +6 -6
  37. package/dist/events/node-type-policies.js.map +0 -1
@@ -875,8 +875,109 @@ export declare const TELEMETRY_EVENT: {
875
875
  } & import("./define").TelemetryEventInput & {
876
876
  readonly getValidationError: (properties: unknown) => string | null;
877
877
  };
878
+ readonly USER_STARTED_AGENT_CHANNEL_SETUP: {
879
+ readonly name: "User started agent channel setup";
880
+ readonly description: "The setup view of a chat channel became visible in the agent channel modal. Pairs with \"User closed agent channel setup\" to measure the setup funnel.";
881
+ readonly properties: import("zod/v4").ZodObject<{
882
+ agent_id: import("zod/v4").ZodString;
883
+ channel_type: import("zod/v4").ZodString;
884
+ session_id: import("zod/v4").ZodString;
885
+ }, import("zod/v4/core").$strip>;
886
+ } & import("./define").TelemetryEventInput & {
887
+ readonly getValidationError: (properties: unknown) => string | null;
888
+ };
889
+ readonly USER_CLOSED_AGENT_CHANNEL_SETUP: {
890
+ readonly name: "User closed agent channel setup";
891
+ readonly description: "The user left a chat channel setup view: after connecting the channel, going back to the channel list, or closing the modal. Fires once for each \"User started agent channel setup\".";
892
+ readonly properties: import("zod/v4").ZodObject<{
893
+ agent_id: import("zod/v4").ZodString;
894
+ channel_type: import("zod/v4").ZodString;
895
+ completed: import("zod/v4").ZodBoolean;
896
+ session_id: import("zod/v4").ZodString;
897
+ }, import("zod/v4/core").$strip>;
898
+ } & import("./define").TelemetryEventInput & {
899
+ readonly getValidationError: (properties: unknown) => string | null;
900
+ };
901
+ readonly USER_FAILED_TO_CONNECT_AGENT_CHANNEL: {
902
+ readonly name: "User failed to connect agent channel";
903
+ readonly description: "Saving a chat channel setup failed. The user can retry, so one setup can emit this more than once.";
904
+ readonly properties: import("zod/v4").ZodObject<{
905
+ agent_id: import("zod/v4").ZodString;
906
+ channel_type: import("zod/v4").ZodString;
907
+ stage: import("zod/v4").ZodEnum<{
908
+ before_save: "before_save";
909
+ connect: "connect";
910
+ persist: "persist";
911
+ }>;
912
+ conflict: import("zod/v4").ZodBoolean;
913
+ session_id: import("zod/v4").ZodString;
914
+ }, import("zod/v4/core").$strip>;
915
+ } & import("./define").TelemetryEventInput & {
916
+ readonly getValidationError: (properties: unknown) => string | null;
917
+ };
918
+ readonly USER_CHECKED_TEAMS_CHANNEL_CREDENTIAL: {
919
+ readonly name: "User checked Teams channel credential";
920
+ readonly description: "The Teams channel setup checked the selected credential against Microsoft. Runs on its own whenever the selected credential changes, including when the setup opens with one, and when the user clicks recheck.";
921
+ readonly properties: import("zod/v4").ZodObject<{
922
+ agent_id: import("zod/v4").ZodString;
923
+ trigger: import("zod/v4").ZodEnum<{
924
+ auto: "auto";
925
+ recheck: "recheck";
926
+ }>;
927
+ status: import("zod/v4").ZodEnum<{
928
+ failed: "failed";
929
+ ok: "ok";
930
+ }>;
931
+ reason: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
932
+ certificate: "certificate";
933
+ cloud: "cloud";
934
+ incomplete: "incomplete";
935
+ rejected: "rejected";
936
+ request_failed: "request_failed";
937
+ unreachable: "unreachable";
938
+ }>>;
939
+ session_id: import("zod/v4").ZodString;
940
+ }, import("zod/v4/core").$strip>;
941
+ } & import("./define").TelemetryEventInput & {
942
+ readonly getValidationError: (properties: unknown) => string | null;
943
+ };
944
+ readonly USER_CLICKED_DEPLOY_TO_AZURE_FOR_TEAMS_CHANNEL: {
945
+ readonly name: "User clicked Deploy to Azure for Teams channel";
946
+ readonly description: "The user clicked the Deploy to Azure button in the Teams channel setup.";
947
+ readonly properties: import("zod/v4").ZodObject<{
948
+ agent_id: import("zod/v4").ZodString;
949
+ session_id: import("zod/v4").ZodString;
950
+ }, import("zod/v4/core").$strip>;
951
+ } & import("./define").TelemetryEventInput & {
952
+ readonly getValidationError: (properties: unknown) => string | null;
953
+ };
954
+ readonly USER_DOWNLOADED_TEAMS_APP_PACKAGE: {
955
+ readonly name: "User downloaded Teams app package";
956
+ readonly description: "The user tried to download the Teams app package in the Teams channel setup.";
957
+ readonly properties: import("zod/v4").ZodObject<{
958
+ agent_id: import("zod/v4").ZodString;
959
+ status: import("zod/v4").ZodEnum<{
960
+ error: "error";
961
+ success: "success";
962
+ }>;
963
+ session_id: import("zod/v4").ZodString;
964
+ }, import("zod/v4/core").$strip>;
965
+ } & import("./define").TelemetryEventInput & {
966
+ readonly getValidationError: (properties: unknown) => string | null;
967
+ };
878
968
  };
879
969
  CREDENTIALS: {
970
+ readonly USER_VIEWED_GATEWAY_CREDITS_CREDENTIAL_ERROR_NUDGE: {
971
+ readonly name: "User viewed Gateway credits credential error nudge";
972
+ readonly description: "The credential modal showed a Gateway credits suggestion after a failed credential test for an eligible workflow node.";
973
+ readonly properties: import("zod/v4").ZodObject<{
974
+ credential_type: import("zod/v4").ZodString;
975
+ node_type: import("zod/v4").ZodString;
976
+ workflow_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
977
+ }, import("zod/v4/core").$strip>;
978
+ } & import("./define").TelemetryEventInput & {
979
+ readonly getValidationError: (properties: unknown) => string | null;
980
+ };
880
981
  readonly USER_CREATED_CREDENTIALS: {
881
982
  readonly name: "User created credentials";
882
983
  readonly description: "A credential was created. The server sets source to backend and reports description metadata. Existing editor events omit these properties. Description text is never included.";
@@ -906,13 +1007,13 @@ export declare const TELEMETRY_EVENT: {
906
1007
  readonly name: "User updated credentials";
907
1008
  readonly description: "The server updated a credential through the internal credential API. Description metadata comes from the saved record. Description text is never included.";
908
1009
  readonly properties: import("zod/v4").ZodObject<{
909
- has_description: import("zod/v4").ZodBoolean;
910
- description_length: import("zod/v4").ZodNumber;
911
1010
  user_id: import("zod/v4").ZodString;
912
1011
  user_role: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
913
1012
  credential_id: import("zod/v4").ZodString;
914
1013
  credential_type: import("zod/v4").ZodString;
915
- source: import("zod/v4").ZodLiteral<"backend">;
1014
+ source: import("zod/v4").ZodOptional<import("zod/v4").ZodLiteral<"backend">>;
1015
+ has_description: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
1016
+ description_length: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
916
1017
  is_private: import("zod/v4").ZodBoolean;
917
1018
  uses_external_secrets: import("zod/v4").ZodBoolean;
918
1019
  jwe_enabled: import("zod/v4").ZodBoolean;
@@ -1001,6 +1102,37 @@ export declare const TELEMETRY_EVENT: {
1001
1102
  };
1002
1103
  };
1003
1104
  CONTEXT: {
1105
+ readonly USER_VIEWED_PREFERENCES: {
1106
+ readonly name: "User viewed preferences";
1107
+ readonly description: "A user opened the preferences list in the Context settings area. Fires on every visit, so it is the first step of the create funnel and the only sign that somebody read their saved preferences without changing one.";
1108
+ readonly properties: import("zod/v4").ZodObject<{
1109
+ count: import("zod/v4").ZodNumber;
1110
+ scope_types: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
1111
+ instance: "instance";
1112
+ project: "project";
1113
+ user: "user";
1114
+ }>>;
1115
+ }, import("zod/v4/core").$strip>;
1116
+ } & import("./define").TelemetryEventInput & {
1117
+ readonly getValidationError: (properties: unknown) => string | null;
1118
+ };
1119
+ readonly USER_OPENED_PREFERENCE_MODAL: {
1120
+ readonly name: "User opened preference modal";
1121
+ readonly description: "A user opened the create or edit dialog on the preferences settings page. Pairs with `User created preference` and `User updated preference`: an open with no save that follows is an abandoned edit, which no other event shows.";
1122
+ readonly properties: import("zod/v4").ZodObject<{
1123
+ mode: import("zod/v4").ZodEnum<{
1124
+ edit: "edit";
1125
+ new: "new";
1126
+ }>;
1127
+ scope_type: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
1128
+ instance: "instance";
1129
+ project: "project";
1130
+ user: "user";
1131
+ }>>;
1132
+ }, import("zod/v4/core").$strip>;
1133
+ } & import("./define").TelemetryEventInput & {
1134
+ readonly getValidationError: (properties: unknown) => string | null;
1135
+ };
1004
1136
  readonly USER_CREATED_PREFERENCE: {
1005
1137
  readonly name: "User created preference";
1006
1138
  readonly description: "A user saved a new preference from the Context settings area. Fires once the save succeeds, so opening the modal and cancelling reports nothing.";
@@ -1028,6 +1160,11 @@ export declare const TELEMETRY_EVENT: {
1028
1160
  text_length: import("zod/v4").ZodNumber;
1029
1161
  scope_changed: import("zod/v4").ZodBoolean;
1030
1162
  project_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1163
+ surface: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
1164
+ aia: "aia";
1165
+ mcp: "mcp";
1166
+ ui: "ui";
1167
+ }>>;
1031
1168
  }, import("zod/v4/core").$strip>;
1032
1169
  } & import("./define").TelemetryEventInput & {
1033
1170
  readonly getValidationError: (properties: unknown) => string | null;
@@ -1039,6 +1176,7 @@ export declare const TELEMETRY_EVENT: {
1039
1176
  count: import("zod/v4").ZodNumber;
1040
1177
  source: import("zod/v4").ZodEnum<{
1041
1178
  bulk: "bulk";
1179
+ rejected: "rejected";
1042
1180
  row: "row";
1043
1181
  }>;
1044
1182
  scope_types: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
@@ -1046,6 +1184,11 @@ export declare const TELEMETRY_EVENT: {
1046
1184
  project: "project";
1047
1185
  user: "user";
1048
1186
  }>>;
1187
+ surface: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
1188
+ aia: "aia";
1189
+ mcp: "mcp";
1190
+ }>>;
1191
+ seconds_since_saved: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
1049
1192
  }, import("zod/v4/core").$strip>;
1050
1193
  } & import("./define").TelemetryEventInput & {
1051
1194
  readonly getValidationError: (properties: unknown) => string | null;
@@ -1072,9 +1215,25 @@ export declare const TELEMETRY_EVENT: {
1072
1215
  } & import("./define").TelemetryEventInput & {
1073
1216
  readonly getValidationError: (properties: unknown) => string | null;
1074
1217
  };
1218
+ readonly PREFERENCES_READ_OVER_MCP: {
1219
+ readonly name: "Preferences read over MCP";
1220
+ readonly description: "An MCP client called `get_user_preferences`. Kept apart from `Preferences applied to a turn` because an MCP read is not a turn: n8n hands the text over and never learns whether the client applied it, so the latency and token columns of the turn event would stay empty. Fires on a successful read, including one that found nothing.";
1221
+ readonly properties: import("zod/v4").ZodObject<{
1222
+ count: import("zod/v4").ZodNumber;
1223
+ scope_types: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
1224
+ instance: "instance";
1225
+ project: "project";
1226
+ user: "user";
1227
+ }>>;
1228
+ rendered_length: import("zod/v4").ZodNumber;
1229
+ project_scoped: import("zod/v4").ZodBoolean;
1230
+ }, import("zod/v4/core").$strip>;
1231
+ } & import("./define").TelemetryEventInput & {
1232
+ readonly getValidationError: (properties: unknown) => string | null;
1233
+ };
1075
1234
  readonly ASSISTANT_SAVED_PREFERENCE: {
1076
1235
  readonly name: "Assistant saved preference";
1077
- readonly description: "An AI surface created or updated a preference on the user behalf, after the user accepted it. Kept apart from the UI events so an assistant write is never counted as a person writing in settings. CONTEXT-138 fires it.";
1236
+ readonly description: "An AI surface created or updated a preference on the user behalf. The assistant writes first and the chat card is the confirmation, so this fires with the write, before the user has said anything. Kept apart from the UI events so an assistant write is never counted as a person writing in settings.";
1078
1237
  readonly properties: import("zod/v4").ZodObject<{
1079
1238
  surface: import("zod/v4").ZodEnum<{
1080
1239
  aia: "aia";
@@ -1093,7 +1252,7 @@ export declare const TELEMETRY_EVENT: {
1093
1252
  };
1094
1253
  readonly PREFERENCE_CONFIRMATION_SHOWN: {
1095
1254
  readonly name: "Preference confirmation shown";
1096
- readonly description: "The assistant proposed a preference and the confirmation card was shown. Fires when the card appears, whatever the user does next. CONTEXT-138 fires it.";
1255
+ readonly description: "The assistant saved a preference and the user was given the way to edit or undo it: the chat card, the MCP review form, or, on an MCP client without elicitation, the tool result that tells the client to relay the saved text and the settings link. Fires with the write, whatever the user does next.";
1097
1256
  readonly properties: import("zod/v4").ZodObject<{
1098
1257
  surface: import("zod/v4").ZodEnum<{
1099
1258
  aia: "aia";
@@ -1109,9 +1268,27 @@ export declare const TELEMETRY_EVENT: {
1109
1268
  } & import("./define").TelemetryEventInput & {
1110
1269
  readonly getValidationError: (properties: unknown) => string | null;
1111
1270
  };
1271
+ readonly USER_SAW_PREFERENCE_CARD: {
1272
+ readonly name: "User saw preference card";
1273
+ readonly description: "The preference card rendered in the chat thread. `Preference confirmation shown` fires with the write, so it counts confirmations offered, not confirmations seen. The gap between the two is a write whose card never reached the screen, which an MCP client without a review form always produces.";
1274
+ readonly properties: import("zod/v4").ZodObject<{
1275
+ scope_type: import("zod/v4").ZodEnum<{
1276
+ instance: "instance";
1277
+ project: "project";
1278
+ user: "user";
1279
+ }>;
1280
+ state: import("zod/v4").ZodEnum<{
1281
+ edited: "edited";
1282
+ saved: "saved";
1283
+ undone: "undone";
1284
+ }>;
1285
+ }, import("zod/v4/core").$strip>;
1286
+ } & import("./define").TelemetryEventInput & {
1287
+ readonly getValidationError: (properties: unknown) => string | null;
1288
+ };
1112
1289
  readonly PREFERENCE_CONFIRMATION_RESOLVED: {
1113
1290
  readonly name: "Preference confirmation resolved";
1114
- readonly description: "The user answered a preference confirmation. A high `rejected` share means the assistant proposes the wrong preferences, and no other number shows that. CONTEXT-138 fires it.";
1291
+ readonly description: "How a preference the assistant saved was settled. `accepted` fires with the write itself: the assistant writes first and silence is agreement, so it is not a user answer. `accepted_after_edit` and `rejected` are the explicit user actions, and either one supersedes the `accepted` already recorded for the same preference: read the last outcome for a preference, not the count of them. A high share of edits and removals means the assistant saves the wrong preferences, and no other number shows that.";
1115
1292
  readonly properties: import("zod/v4").ZodObject<{
1116
1293
  surface: import("zod/v4").ZodEnum<{
1117
1294
  aia: "aia";
@@ -1134,7 +1311,7 @@ export declare const TELEMETRY_EVENT: {
1134
1311
  };
1135
1312
  readonly PREFERENCE_SCOPE_ACCEPTED: {
1136
1313
  readonly name: "Preference scope accepted";
1137
- readonly description: "The scope the user accepted against the scope the assistant offered. Shows whether the assistant reads the difference between a personal habit and a team rule. Fires only on an accepted write. CONTEXT-138 and the scope ticket fire it.";
1314
+ readonly description: "The scope the user accepted against the scope offered. An accepted write from the assistant reports `user` for both, because the tool writes only `user`. A later move reports the scope the row left as `offered_scope`, so `user` appears there only on the first move off the default. Fires on an accepted assistant write, on every move from the chat card, and on a move from MCP: the review form, or `update_user_preference` with a scope.";
1138
1315
  readonly properties: import("zod/v4").ZodObject<{
1139
1316
  surface: import("zod/v4").ZodEnum<{
1140
1317
  aia: "aia";
@@ -1157,7 +1334,7 @@ export declare const TELEMETRY_EVENT: {
1157
1334
  };
1158
1335
  readonly PREFERENCE_WRITE_REJECTED: {
1159
1336
  readonly name: "Preference write rejected";
1160
- readonly description: "A preference write was refused before it reached the database. Separates a rule the code applied from a user saying no, which is `Preference confirmation resolved`. CONTEXT-138 fires it.";
1337
+ readonly description: "A preference write was refused before it reached the database. Separates a rule the code applied from a user saying no, which is `Preference confirmation resolved`.";
1161
1338
  readonly properties: import("zod/v4").ZodObject<{
1162
1339
  surface: import("zod/v4").ZodEnum<{
1163
1340
  aia: "aia";
@@ -1610,8 +1787,15 @@ export declare const TELEMETRY_EVENT: {
1610
1787
  };
1611
1788
  readonly USER_RECEIVED_AI_ASSISTANT_RESPONSE: {
1612
1789
  readonly name: "User received AI Assistant response";
1613
- readonly description: "The initial foreground AI Assistant reply was rendered after a user submitted a chat message. Starts before attachment processing and first-thread creation, then fires once when the initial run completes or pauses for user input. Automated follow-up runs do not create another sample.";
1790
+ readonly description: "The initial foreground AI Assistant reply was rendered after a user submitted a chat message. Starts before attachment processing and first-thread creation, then fires once when the initial run completes or pauses for user input. Automated follow-up runs do not create another sample. Repeats the mention and attachment counts of the message that started the run, so outcome cuts by context need no join back to \"User sent builder message\".";
1614
1791
  readonly properties: import("zod/v4").ZodObject<{
1792
+ mention_counts: import("zod/v4").ZodObject<{
1793
+ total: import("zod/v4").ZodNumber;
1794
+ workflow: import("zod/v4").ZodNumber;
1795
+ node: import("zod/v4").ZodNumber;
1796
+ group: import("zod/v4").ZodNumber;
1797
+ }, import("zod/v4/core").$strip>;
1798
+ attachment_count: import("zod/v4").ZodNumber;
1615
1799
  instance_id: import("zod/v4").ZodString;
1616
1800
  thread_id: import("zod/v4").ZodString;
1617
1801
  run_id: import("zod/v4").ZodString;
@@ -1631,6 +1815,7 @@ export declare const TELEMETRY_EVENT: {
1631
1815
  credentials_list: "credentials_list";
1632
1816
  evals: "evals";
1633
1817
  node_error_view: "node_error_view";
1818
+ onboarding: "onboarding";
1634
1819
  playwright: "playwright";
1635
1820
  "template-view": "template-view";
1636
1821
  unknown: "unknown";
@@ -1851,6 +2036,108 @@ export declare const TELEMETRY_EVENT: {
1851
2036
  } & import("./define").TelemetryEventInput & {
1852
2037
  readonly getValidationError: (properties: unknown) => string | null;
1853
2038
  };
2039
+ readonly USER_OPENED_AI_ASSISTANT_MENTION_PICKER: {
2040
+ readonly name: "User opened AI Assistant mention picker";
2041
+ readonly description: "The user opened the n8n Assistant mention picker by typing an at sign or selecting the composer button. Every open ends in exactly one \"User selected AI Assistant mention\" or one \"User dismissed AI Assistant mention picker\", so the two together give the pick rate per open.";
2042
+ readonly properties: import("zod/v4").ZodObject<{
2043
+ thread_id: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2044
+ source: import("zod/v4").ZodEnum<{
2045
+ button: "button";
2046
+ typed: "typed";
2047
+ }>;
2048
+ }, import("zod/v4/core").$strip>;
2049
+ } & import("./define").TelemetryEventInput & {
2050
+ readonly getValidationError: (properties: unknown) => string | null;
2051
+ };
2052
+ readonly USER_DISMISSED_AI_ASSISTANT_MENTION_PICKER: {
2053
+ readonly name: "User dismissed AI Assistant mention picker";
2054
+ readonly description: "The n8n Assistant mention picker closed without a selection. The list properties describe what was on screen at that moment: a search with result_count 0 is a resource the user could not find, a non-zero ambiguous_result_count is a list the user could not tell apart. Carries interaction metadata but no query text or resource names; the query text of an empty search is on \"User searched AI Assistant mentions without results\".";
2055
+ readonly properties: import("zod/v4").ZodObject<{
2056
+ thread_id: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2057
+ source: import("zod/v4").ZodEnum<{
2058
+ button: "button";
2059
+ typed: "typed";
2060
+ }>;
2061
+ reason: import("zod/v4").ZodEnum<{
2062
+ closed_menu: "closed_menu";
2063
+ deleted_trigger: "deleted_trigger";
2064
+ moved_caret: "moved_caret";
2065
+ unavailable: "unavailable";
2066
+ }>;
2067
+ mode: import("zod/v4").ZodEnum<{
2068
+ browse: "browse";
2069
+ search: "search";
2070
+ }>;
2071
+ query_length: import("zod/v4").ZodNumber;
2072
+ result_count: import("zod/v4").ZodNumber;
2073
+ ambiguous_result_count: import("zod/v4").ZodNumber;
2074
+ submenu_open_count: import("zod/v4").ZodNumber;
2075
+ }, import("zod/v4/core").$strip>;
2076
+ } & import("./define").TelemetryEventInput & {
2077
+ readonly getValidationError: (properties: unknown) => string | null;
2078
+ };
2079
+ readonly USER_SEARCHED_AI_ASSISTANT_MENTIONS_WITHOUT_RESULTS: {
2080
+ readonly name: "User searched AI Assistant mentions without results";
2081
+ readonly description: "The n8n Assistant mention picker showed its empty state for a search query the user let settle for about a second, or closed the picker on. Fires once per distinct settled query within one picker open, so typing straight through a prefix chain like \"S\", \"Sl\", \"Slack\" reports \"Slack\" once. The one mention event that carries the query text, to learn what users try to mention and cannot.";
2082
+ readonly properties: import("zod/v4").ZodObject<{
2083
+ thread_id: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2084
+ source: import("zod/v4").ZodEnum<{
2085
+ button: "button";
2086
+ typed: "typed";
2087
+ }>;
2088
+ query: import("zod/v4").ZodString;
2089
+ query_length: import("zod/v4").ZodNumber;
2090
+ matched_node_type: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2091
+ artifact_count: import("zod/v4").ZodNumber;
2092
+ }, import("zod/v4/core").$strip>;
2093
+ } & import("./define").TelemetryEventInput & {
2094
+ readonly getValidationError: (properties: unknown) => string | null;
2095
+ };
2096
+ readonly USER_SELECTED_AI_ASSISTANT_MENTION: {
2097
+ readonly name: "User selected AI Assistant mention";
2098
+ readonly description: "The user selected a workflow, node, or canvas group from the n8n Assistant mention picker. A pick of a mention that is already staged also counts, so every open ends in this event or in \"User dismissed AI Assistant mention picker\". The event contains interaction metadata but no resource names or IDs.";
2099
+ readonly properties: import("zod/v4").ZodObject<{
2100
+ thread_id: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2101
+ kind: import("zod/v4").ZodEnum<{
2102
+ group: "group";
2103
+ node: "node";
2104
+ workflow: "workflow";
2105
+ }>;
2106
+ mode: import("zod/v4").ZodEnum<{
2107
+ browse: "browse";
2108
+ search: "search";
2109
+ }>;
2110
+ source: import("zod/v4").ZodEnum<{
2111
+ artifacts: "artifacts";
2112
+ workflows: "workflows";
2113
+ }>;
2114
+ result_position: import("zod/v4").ZodNumber;
2115
+ query_length: import("zod/v4").ZodNumber;
2116
+ already_artifact: import("zod/v4").ZodBoolean;
2117
+ artifact_origin: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
2118
+ attached: "attached";
2119
+ built: "built";
2120
+ fetched: "fetched";
2121
+ mentioned: "mentioned";
2122
+ }>>;
2123
+ }, import("zod/v4/core").$strip>;
2124
+ } & import("./define").TelemetryEventInput & {
2125
+ readonly getValidationError: (properties: unknown) => string | null;
2126
+ };
2127
+ readonly USER_REMOVED_AI_ASSISTANT_MENTION: {
2128
+ readonly name: "User removed AI Assistant mention";
2129
+ readonly description: "The user removed workflow, node, or canvas group context that they added through the n8n Assistant mention picker.";
2130
+ readonly properties: import("zod/v4").ZodObject<{
2131
+ thread_id: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2132
+ kind: import("zod/v4").ZodEnum<{
2133
+ group: "group";
2134
+ node: "node";
2135
+ workflow: "workflow";
2136
+ }>;
2137
+ }, import("zod/v4/core").$strip>;
2138
+ } & import("./define").TelemetryEventInput & {
2139
+ readonly getValidationError: (properties: unknown) => string | null;
2140
+ };
1854
2141
  readonly USER_SENT_BUILDER_MESSAGE: {
1855
2142
  readonly name: "User sent builder message";
1856
2143
  readonly description: "The user sent a message to the n8n Assistant. Fires once per message on the optimistic send, before the request is admitted, so a refused send still counts as an attempt. Carries who wrote the text: a pre-fill is an opener n8n composed (a failed execution, a credential modal, a template card, a suggestion chip) that the user accepted or edited, so pre-fill share must be read from prefill_type rather than matched against the message body.";
@@ -1864,6 +2151,13 @@ export declare const TELEMETRY_EVENT: {
1864
2151
  control: "control";
1865
2152
  variant: "variant";
1866
2153
  }>>;
2154
+ mention_counts: import("zod/v4").ZodObject<{
2155
+ total: import("zod/v4").ZodNumber;
2156
+ workflow: import("zod/v4").ZodNumber;
2157
+ node: import("zod/v4").ZodNumber;
2158
+ group: import("zod/v4").ZodNumber;
2159
+ }, import("zod/v4/core").$strip>;
2160
+ attachment_count: import("zod/v4").ZodNumber;
1867
2161
  workflow_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
1868
2162
  pending_credential_count: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
1869
2163
  pending_parameter_count: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
@@ -1880,6 +2174,7 @@ export declare const TELEMETRY_EVENT: {
1880
2174
  credentials_list: "credentials_list";
1881
2175
  evals: "evals";
1882
2176
  node_error_view: "node_error_view";
2177
+ onboarding: "onboarding";
1883
2178
  playwright: "playwright";
1884
2179
  "template-view": "template-view";
1885
2180
  unknown: "unknown";
@@ -1939,6 +2234,144 @@ export declare const TELEMETRY_EVENT: {
1939
2234
  } & import("./define").TelemetryEventInput & {
1940
2235
  readonly getValidationError: (properties: unknown) => string | null;
1941
2236
  };
2237
+ readonly USER_STARTED_AI_ASSISTANT_ONBOARDING: {
2238
+ readonly name: "User started AI Assistant onboarding";
2239
+ readonly description: "An onboarding thread was created: the user arrived from the n8n Cloud signup survey (/assistant?source=onboarding) or opened the onboarding by hand. Fires once per thread, from the backend, when the seeded greeting and question card are stored.";
2240
+ readonly properties: import("zod/v4").ZodObject<{
2241
+ user_id: import("zod/v4").ZodString;
2242
+ thread_id: import("zod/v4").ZodString;
2243
+ team: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2244
+ team_source: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
2245
+ cloud: "cloud";
2246
+ url: "url";
2247
+ }>>;
2248
+ }, import("zod/v4/core").$strip>;
2249
+ } & import("./define").TelemetryEventInput & {
2250
+ readonly getValidationError: (properties: unknown) => string | null;
2251
+ };
2252
+ readonly USER_ANSWERED_AI_ASSISTANT_ONBOARDING_CARD: {
2253
+ readonly name: "User answered AI Assistant onboarding card";
2254
+ readonly description: "The user settled the question card an onboarding thread opens with. Fires once per thread, from the backend, when the answers are stored. Carries the picked apps and the free text as typed.";
2255
+ readonly properties: import("zod/v4").ZodObject<{
2256
+ user_id: import("zod/v4").ZodString;
2257
+ thread_id: import("zod/v4").ZodString;
2258
+ team: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2259
+ team_source: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
2260
+ card: "card";
2261
+ cloud: "cloud";
2262
+ url: "url";
2263
+ }>>;
2264
+ apps: import("zod/v4").ZodArray<import("zod/v4").ZodString>;
2265
+ custom_text: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2266
+ }, import("zod/v4/core").$strip>;
2267
+ } & import("./define").TelemetryEventInput & {
2268
+ readonly getValidationError: (properties: unknown) => string | null;
2269
+ };
2270
+ readonly AI_ASSISTANT_ONBOARDING_ENDED: {
2271
+ readonly name: "AI Assistant onboarding ended";
2272
+ readonly description: "The onboarding flow of a thread ended and the normal chat came back. Fires once per thread, from the browser, on the first build, when the agent calls `leave-onboarding`, or when a run fails.";
2273
+ readonly properties: import("zod/v4").ZodObject<{
2274
+ thread_id: import("zod/v4").ZodString;
2275
+ instance_id: import("zod/v4").ZodString;
2276
+ outcome: import("zod/v4").ZodEnum<{
2277
+ build: "build";
2278
+ left: "left";
2279
+ run_failed: "run_failed";
2280
+ }>;
2281
+ leave_reason: import("zod/v4").ZodNullable<import("zod/v4").ZodString>;
2282
+ }, import("zod/v4/core").$strip>;
2283
+ } & import("./define").TelemetryEventInput & {
2284
+ readonly getValidationError: (properties: unknown) => string | null;
2285
+ };
2286
+ readonly INSTANCE_CONTEXT_TURN: {
2287
+ readonly name: "Instance AI instance-context turn completed";
2288
+ readonly description: "One context result per turn segment, including turns without a block. Group by run_id. Count distinct runs, sum segment tokens, and count a question if any segment asked one.";
2289
+ readonly properties: import("zod/v4").ZodDiscriminatedUnion<[import("zod/v4").ZodObject<{
2290
+ surface: import("zod/v4").ZodEnum<{
2291
+ aia: "aia";
2292
+ mcp: "mcp";
2293
+ }>;
2294
+ user_id: import("zod/v4").ZodString;
2295
+ thread_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
2296
+ run_id: import("zod/v4").ZodString;
2297
+ segment: import("zod/v4").ZodEnum<{
2298
+ resumed: "resumed";
2299
+ suspended: "suspended";
2300
+ whole: "whole";
2301
+ }>;
2302
+ instance_context_enabled: import("zod/v4").ZodBoolean;
2303
+ node_usage_enabled: import("zod/v4").ZodBoolean;
2304
+ context_depth: import("zod/v4").ZodNumber;
2305
+ context_surfaces: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
2306
+ "activity-expand": "activity-expand";
2307
+ "activity-list": "activity-list";
2308
+ "node-usage": "node-usage";
2309
+ "workflow-read": "workflow-read";
2310
+ }>>;
2311
+ asked_clarifying_question: import("zod/v4").ZodBoolean;
2312
+ tool_calls: import("zod/v4").ZodNumber;
2313
+ turn_prompt_tokens: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2314
+ turn_completion_tokens: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2315
+ turn_total_tokens: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2316
+ turn_cost_usd: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2317
+ status: import("zod/v4").ZodEnum<{
2318
+ cancelled: "cancelled";
2319
+ completed: "completed";
2320
+ errored: "errored";
2321
+ suspended: "suspended";
2322
+ }>;
2323
+ block_state: import("zod/v4").ZodLiteral<"absent">;
2324
+ absence_reason: import("zod/v4").ZodEnum<{
2325
+ disabled: "disabled";
2326
+ empty: "empty";
2327
+ failed: "failed";
2328
+ "machine-follow-up": "machine-follow-up";
2329
+ }>;
2330
+ }, import("zod/v4/core").$strict>, import("zod/v4").ZodObject<{
2331
+ surface: import("zod/v4").ZodEnum<{
2332
+ aia: "aia";
2333
+ mcp: "mcp";
2334
+ }>;
2335
+ user_id: import("zod/v4").ZodString;
2336
+ thread_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
2337
+ run_id: import("zod/v4").ZodString;
2338
+ segment: import("zod/v4").ZodEnum<{
2339
+ resumed: "resumed";
2340
+ suspended: "suspended";
2341
+ whole: "whole";
2342
+ }>;
2343
+ instance_context_enabled: import("zod/v4").ZodBoolean;
2344
+ node_usage_enabled: import("zod/v4").ZodBoolean;
2345
+ context_depth: import("zod/v4").ZodNumber;
2346
+ context_surfaces: import("zod/v4").ZodArray<import("zod/v4").ZodEnum<{
2347
+ "activity-expand": "activity-expand";
2348
+ "activity-list": "activity-list";
2349
+ "node-usage": "node-usage";
2350
+ "workflow-read": "workflow-read";
2351
+ }>>;
2352
+ asked_clarifying_question: import("zod/v4").ZodBoolean;
2353
+ tool_calls: import("zod/v4").ZodNumber;
2354
+ turn_prompt_tokens: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2355
+ turn_completion_tokens: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2356
+ turn_total_tokens: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2357
+ turn_cost_usd: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2358
+ status: import("zod/v4").ZodEnum<{
2359
+ cancelled: "cancelled";
2360
+ completed: "completed";
2361
+ errored: "errored";
2362
+ suspended: "suspended";
2363
+ }>;
2364
+ block_state: import("zod/v4").ZodLiteral<"injected">;
2365
+ block_is_update: import("zod/v4").ZodBoolean;
2366
+ block_inventory_rows: import("zod/v4").ZodNumber;
2367
+ block_event_rows: import("zod/v4").ZodNumber;
2368
+ block_run_rows: import("zod/v4").ZodNumber;
2369
+ block_chars: import("zod/v4").ZodNumber;
2370
+ block_tokens_estimated: import("zod/v4").ZodNumber;
2371
+ }, import("zod/v4/core").$strict>]>;
2372
+ } & import("./define").TelemetryEventInput & {
2373
+ readonly getValidationError: (properties: unknown) => string | null;
2374
+ };
1942
2375
  };
1943
2376
  MCP: {
1944
2377
  readonly MCP_NUDGE_VIEWED: {
@@ -2060,6 +2493,7 @@ export declare const TELEMETRY_EVENT: {
2060
2493
  client_brand: import("zod/v4").ZodNullable<import("zod/v4").ZodEnum<{
2061
2494
  claude: "claude";
2062
2495
  cursor: "cursor";
2496
+ mistral: "mistral";
2063
2497
  openai: "openai";
2064
2498
  vscode: "vscode";
2065
2499
  }>>;
@@ -2088,10 +2522,10 @@ export declare const TELEMETRY_EVENT: {
2088
2522
  readonly getValidationError: (properties: unknown) => string | null;
2089
2523
  };
2090
2524
  };
2091
- NODE_TYPE_POLICIES: {
2092
- readonly USER_SAVED_NODE_TYPE_POLICY: {
2093
- readonly name: "User saved node type policy";
2094
- readonly description: "A node type availability policy was saved for one scope through the composed write that the policy UI uses. One event per save, covering both the scope default action and its rules. Rule-level edits through the advanced document and attachment APIs report separately. The type counts and list report what this scope decides on its own, so at project scope they are the project layer before it composes with the instance policy.";
2525
+ TYPE_AVAILABILITY_POLICIES: {
2526
+ readonly USER_SAVED_TYPE_AVAILABILITY_POLICY: {
2527
+ readonly name: "User saved type availability policy";
2528
+ readonly description: "A type availability policy (node types or credential types, per `kind`) was saved for one scope through the composed write that the policy UI uses. One event per save, covering both the scope default action and its rules. Rule-level edits through the advanced document and attachment APIs report separately. The type counts and list report what this scope decides on its own, so at project scope they are the project layer before it composes with the instance policy.";
2095
2529
  readonly properties: import("zod/v4").ZodObject<{
2096
2530
  rule_count: import("zod/v4").ZodNumber;
2097
2531
  allow_rule_count: import("zod/v4").ZodNumber;
@@ -2137,9 +2571,9 @@ export declare const TELEMETRY_EVENT: {
2137
2571
  } & import("./define").TelemetryEventInput & {
2138
2572
  readonly getValidationError: (properties: unknown) => string | null;
2139
2573
  };
2140
- readonly USER_UPDATED_NODE_TYPE_POLICY_DOCUMENT: {
2141
- readonly name: "User updated node type policy document";
2142
- readonly description: "A policy document was created, edited, or deleted through the advanced instance-only document API. The composed save that the policy UI uses reports as \"User saved node type policy\" instead. Rule counts describe the document after the operation, so a delete reports 0 and carries the deleted size in previous_rule_count.";
2574
+ readonly USER_UPDATED_TYPE_AVAILABILITY_POLICY_DOCUMENT: {
2575
+ readonly name: "User updated type availability policy document";
2576
+ readonly description: "A policy document was created, edited, or deleted through the advanced instance-only document API. The composed save that the policy UI uses reports as \"User saved type availability policy\" instead. Rule counts describe the document after the operation, so a delete reports 0 and carries the deleted size in previous_rule_count.";
2143
2577
  readonly properties: import("zod/v4").ZodObject<{
2144
2578
  rule_count: import("zod/v4").ZodNumber;
2145
2579
  allow_rule_count: import("zod/v4").ZodNumber;
@@ -2165,8 +2599,8 @@ export declare const TELEMETRY_EVENT: {
2165
2599
  } & import("./define").TelemetryEventInput & {
2166
2600
  readonly getValidationError: (properties: unknown) => string | null;
2167
2601
  };
2168
- readonly USER_UPDATED_NODE_TYPE_POLICY_ATTACHMENTS: {
2169
- readonly name: "User updated node type policy attachments";
2602
+ readonly USER_UPDATED_TYPE_AVAILABILITY_POLICY_ATTACHMENTS: {
2603
+ readonly name: "User updated type availability policy attachments";
2170
2604
  readonly description: "The set of policy documents attached to one scope was replaced through the advanced instance-only attachment API. Reports the resulting set, not the individual add or remove.";
2171
2605
  readonly properties: import("zod/v4").ZodObject<{
2172
2606
  user_id: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
@@ -2193,6 +2627,116 @@ export declare const TELEMETRY_EVENT: {
2193
2627
  };
2194
2628
  };
2195
2629
  WORKFLOW: {
2630
+ readonly USER_GROUPED_NODES: {
2631
+ readonly name: "User grouped nodes";
2632
+ readonly description: "The user created a node group on the workflow canvas. Empty groups report no node ids because their internal anchor is excluded.";
2633
+ readonly properties: import("zod/v4").ZodObject<{
2634
+ workflow_id: import("zod/v4").ZodString;
2635
+ group_id: import("zod/v4").ZodString;
2636
+ node_ids: import("zod/v4").ZodArray<import("zod/v4").ZodString>;
2637
+ node_count: import("zod/v4").ZodNumber;
2638
+ group_title: import("zod/v4").ZodString;
2639
+ source: import("zod/v4").ZodEnum<{
2640
+ "context-menu": "context-menu";
2641
+ "group-header": "group-header";
2642
+ "group-toolbar": "group-toolbar";
2643
+ "keyboard-shortcut": "keyboard-shortcut";
2644
+ "node-creator": "node-creator";
2645
+ "sub-workflow-extraction": "sub-workflow-extraction";
2646
+ "update-blocked-toast": "update-blocked-toast";
2647
+ }>;
2648
+ push_ref: import("zod/v4").ZodString;
2649
+ is_empty: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
2650
+ node_creator_open_source: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
2651
+ add_evaluation_node_button: "add_evaluation_node_button";
2652
+ add_input_endpoint: "add_input_endpoint";
2653
+ add_node_button: "add_node_button";
2654
+ context_menu: "context_menu";
2655
+ instance_ai: "instance_ai";
2656
+ no_trigger_execution_tooltip: "no_trigger_execution_tooltip";
2657
+ node_connection_action: "node_connection_action";
2658
+ node_connection_drop: "node_connection_drop";
2659
+ node_shortcut: "node_shortcut";
2660
+ notice_error_message: "notice_error_message";
2661
+ plus_endpoint: "plus_endpoint";
2662
+ replace_node_action: "replace_node_action";
2663
+ templates_callout: "templates_callout";
2664
+ trigger_placeholder_button: "trigger_placeholder_button";
2665
+ }>>;
2666
+ }, import("zod/v4/core").$strip>;
2667
+ } & import("./define").TelemetryEventInput & {
2668
+ readonly getValidationError: (properties: unknown) => string | null;
2669
+ };
2670
+ readonly USER_FILLED_EMPTY_GROUP: {
2671
+ readonly name: "User filled empty group";
2672
+ readonly description: "The user added the first real node or node batch to a group that contained only its internal empty-group anchor.";
2673
+ readonly properties: import("zod/v4").ZodObject<{
2674
+ workflow_id: import("zod/v4").ZodString;
2675
+ group_id: import("zod/v4").ZodString;
2676
+ push_ref: import("zod/v4").ZodString;
2677
+ node_count_after: import("zod/v4").ZodNumber;
2678
+ connection_count_before_fill: import("zod/v4").ZodNumber;
2679
+ }, import("zod/v4/core").$strip>;
2680
+ } & import("./define").TelemetryEventInput & {
2681
+ readonly getValidationError: (properties: unknown) => string | null;
2682
+ };
2683
+ readonly USER_DELETED_LAST_NODE_FROM_GROUP: {
2684
+ readonly name: "User deleted last node from group";
2685
+ readonly description: "The user deleted the last real node from a group and the editor replaced it with an internal empty-group anchor.";
2686
+ readonly properties: import("zod/v4").ZodObject<{
2687
+ workflow_id: import("zod/v4").ZodString;
2688
+ group_id: import("zod/v4").ZodString;
2689
+ push_ref: import("zod/v4").ZodString;
2690
+ }, import("zod/v4/core").$strip>;
2691
+ } & import("./define").TelemetryEventInput & {
2692
+ readonly getValidationError: (properties: unknown) => string | null;
2693
+ };
2694
+ readonly USER_DELETED_GROUP: {
2695
+ readonly name: "User deleted group";
2696
+ readonly description: "The user deleted the final member of a group, which removed the group from the workflow.";
2697
+ readonly properties: import("zod/v4").ZodObject<{
2698
+ workflow_id: import("zod/v4").ZodString;
2699
+ group_id: import("zod/v4").ZodString;
2700
+ push_ref: import("zod/v4").ZodString;
2701
+ was_empty: import("zod/v4").ZodBoolean;
2702
+ }, import("zod/v4/core").$strip>;
2703
+ } & import("./define").TelemetryEventInput & {
2704
+ readonly getValidationError: (properties: unknown) => string | null;
2705
+ };
2706
+ readonly USER_CONNECTED_EMPTY_GROUP: {
2707
+ readonly name: "User connected empty group";
2708
+ readonly description: "The user added a connection whose source or target was a group that still contained only its internal empty-group anchor.";
2709
+ readonly properties: import("zod/v4").ZodObject<{
2710
+ workflow_id: import("zod/v4").ZodString;
2711
+ group_id: import("zod/v4").ZodString;
2712
+ push_ref: import("zod/v4").ZodString;
2713
+ was_first_connection: import("zod/v4").ZodBoolean;
2714
+ }, import("zod/v4/core").$strip>;
2715
+ } & import("./define").TelemetryEventInput & {
2716
+ readonly getValidationError: (properties: unknown) => string | null;
2717
+ };
2718
+ readonly USER_ACTIVATED_WORKFLOW: {
2719
+ readonly name: "User activated workflow";
2720
+ readonly description: "A workflow version became active. The empty-group count is calculated from that published version, not from the current draft.";
2721
+ readonly properties: import("zod/v4").ZodObject<{
2722
+ user_id: import("zod/v4").ZodString;
2723
+ workflow_id: import("zod/v4").ZodString;
2724
+ public_api: import("zod/v4").ZodBoolean;
2725
+ source: import("zod/v4").ZodEnum<{
2726
+ api: "api";
2727
+ import: "import";
2728
+ "n8n-ai": "n8n-ai";
2729
+ "n8n-mcp": "n8n-mcp";
2730
+ "review-approval": "review-approval";
2731
+ ui: "ui";
2732
+ }>;
2733
+ private_credentials_count: import("zod/v4").ZodNumber;
2734
+ private_credential_types: import("zod/v4").ZodArray<import("zod/v4").ZodString>;
2735
+ empty_group_count: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
2736
+ }, import("zod/v4/core").$strip>;
2737
+ } & import("./define").TelemetryEventInput & {
2738
+ readonly getValidationError: (properties: unknown) => string | null;
2739
+ };
2196
2740
  readonly USER_REQUESTED_WORKFLOW_TEST: {
2197
2741
  readonly name: "User requested workflow test";
2198
2742
  readonly description: "The user started a manual workflow test from the AI Assistant setup panel. This event does not report execution success.";