Agent skill · data analytics · n8n-io
n8n:telemetry
Guides adding, changing, and reviewing telemetry through the `@n8n/telemetry` event registry. Use when working on telemetry, analytics, tracking, product events, `track()` calls, or RudderStack/PostHog product events, in frontend or backend code — and whenever you need to find which registered telemetry events exist, what an event means, or what properties it carries.
Why this skill is useful
Provides detailed guidance on adding and managing telemetry events, including specific naming conventions and validation schemas that the AI wouldn't reliably generate on its own.
What it needs
About 3k tokens when loaded. Last updated 2026-08-07. 199,638 stars on the source repository.
What this skill does
Telemetry The registry Events migrated to the registry live in packages/@n8n/telemetry as one entry per event — its exact emitted name, a description, and a zod schema typing its properties — organized per product domain in src/events/ and composed into TELEMETRYEVENT.<DOMAIN>.<EVENT>. The package defines registered events and never depends on transport SDKs. To find which events are registered, what they mean, or what properties they carry, run the catalog first: The registry is being adopted incrementally. Events not yet registered do not appear in the catalog, so search track() call sites when the catalog has no match. Pass the entry itself to track() — it resolves the emitted name internally: Both track() implementations accept registry entries and plain strings. Plain strings remain supported for events that have not yet migrated: Frontend: packages/frontend/editor-ui/src/app/plugins/telemetry/index.ts Backend: packages/cli/src/telemetry/index.ts Entries get property autocomplete and compile-time checks — typo'd, missing, or wrongly typed properties fail typecheck. When the telemetry transport is initialized, track() additionally validates registered-event payloads via getEventValidationError (shared from @n8n/telemetry) and logs a warning on mismatch, including unrecognized properties that slipped past structural typing. A validation warning does not stop the event from being emitted. Adding an event 1. Check the catalog first (pnpm --filter @n8n/telemetry catalog). If an existing event covers the same user action from another surface, augment it with a property instead of adding a near-duplicate event. 2. Pick the domain by the event's subject — what the event is about, never the surface that triggered it. User opened Credential modal is CREDENTIALS whether opened from the NDV, template setup, or chat. The trigger context goes into a source property. 3. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills n8n-io/telemetry