n8n:telemetry

Guide telemetry event registration, emission, and validation across the n8n codebase.

203k|60.5k|Updated Jun 22, 2019
One-click install
npx skills add https://github.com/n8n-io/n8n --skill n8n-telemetry
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: n8n:telemetry
Source: https://github.com/n8n-io/n8n/tree/main/.agents/skills/telemetry
Command: npx skills add https://github.com/n8n-io/n8n --skill n8n-telemetry

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers adding or modifying telemetry events in n8n risk breaking downstream analytics by renaming events, duplicating names, or changing property types. This Skill enforces a centralized registry with strict naming, typing, and migration rules so product analytics remain consistent across frontend and backend.

Core Features & Use Cases

  • Registry-Based Event Discovery: Query the @n8n/telemetry catalog to find existing events, their meanings, and property schemas before adding new ones.
  • Strict Naming and Typing Conventions: Apply house grammar for event names and zod schemas for properties, with CI-enforced uniqueness and JSON-Schema compatibility.
  • Cross-Surface Emission Guidance: Place track() calls correctly in frontend (useTelemetry) and backend (Telemetry.track or RelayEventMap) using shared registry entries.
  • Use Case: When adding a new "User pinned node data" event, check the catalog for duplicates, register it under the correct domain with a zod schema, and emit it from both UI and CLI surfaces using the same entry.

Quick Start

Use the n8n telemetry skill to register a new product event called "User pinned node data" under the WORKFLOW domain with a typed zod schema.

Frequently Asked Questions about n8n:telemetry

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new telemetry event in n8n?

Check the catalog with `pnpm --filter @n8n/telemetry catalog`, pick a domain by the event's subject, write a zod-typed entry in `packages/@n8n/telemetry/src/events/`, then emit it via `useTelemetry().track` on the frontend or `Telemetry.track` on the backend using the registry entry.

What is the n8n telemetry event registry?

The registry in `packages/@n8n/telemetry` defines one entry per event with its emitted name, description, and zod property schema. Entries are composed into `TELEMETRY_EVENT.<DOMAIN>.<EVENT>` and passed to `track()` for compile-time checks and runtime validation.

Can I rename an existing telemetry event in n8n?

No. Renaming an emitted event orphans the BigQuery table that materializes from it. Treat renames as delete-plus-create, never reuse names, and coordinate removals with the data team before deleting the registry entry.

Does the n8n telemetry registry support backend event-bus emissions?

Yes. Backend events can be emitted either through a `RelayEventMap` handler in `packages/cli/src/events/relays/telemetry.event-relay.ts` or a direct `Telemetry.track(...)` call, both referencing the same registry entry.

Why does my telemetry event fail typecheck in n8n?

Typecheck fails when properties are typo'd, missing, or wrongly typed against the registry entry's zod schema. Use the registry entry itself rather than a string literal so TypeScript catches mismatches at compile time.

What telemetry events are not yet in the n8n registry?

Events not yet migrated to the registry do not appear in the catalog. For these, search `track()` call sites directly in `packages/frontend/editor-ui/src/app/plugins/telemetry/index.ts` and `packages/cli/src/telemetry/index.ts`.