SnowcatCloud, Inc.

Privacy Settings

We use cookies and other tracking technologies to improve your browsing experience on our website, demo our services, and show you personalised content.

By clicking ”Accept,” you agree to SnowcatCloud's Privacy Policy and use of cookies as described in our Cookie Policy .

We do not sell or share your personal information. You can change your cookie settings at any time by clicking “Privacy Settings.” in the footer and removing any existing cookies from your browser.


Authoring Schemas

What are Schemas

Snowplow schemas are self-describing JSONs used to add additional context to events. Think of Google Analytics custom dimensions or Adobe Traffic Variables but nicely grouped under a logical name.

The grouping is essential as it provides a layer of governance, unlike sending Adhoc JSON payloads like other vendors.

Snowplow also enforces that the payload matches the schema specifications; otherwise, the event will be considered invalid.

There are several advantages:

  • You will never run out of space for context
  • Schemas are versioned and can expand/contract with business needs
  • Schemas are reusable
  • Schema variables are easy to read and understand
  • Easier data modeling


Schemas are immutable. Once schemas are in production, they can't be edited or deleted. To alter a schema, you need to increment its version. This ensures compatibility with existing properties that might be sending events with existing schemas.

Authoring Schemas

  1. Download the template schema boilerplate and rename it to iglu-yourcompany-schema-registry.
  2. Version your Iglu schema registry with git
  3. Install igluctl
  4. Use a code editor to author schema (e.g. VSCode)
  5. Validate schemas with igluctl and Snowplow Micro

Best Practices

  • Always validate your schemas with igluctl
  • If your schema has a verb name you're doing it wrong (e.g. feature_click)