Learn about how to publish your Tracking Plan to analytics platforms and APIs
Event schemas are important in many layers of your data stack. Keeping schema registries in sync across the stack can be a challenge, especially since stakeholders involved vary from non-technical folks with a preference for human readable tools like spreadsheets, to technical folks with a preference for computer readable schemas like JSON.
Publishing is a way to push your tracking plan specs from Avo into your other schema registries and downstream tools, including analytics platforms like Amplitude or Mixpanel, ingestion time validation tools like Segment Protocols, RudderStack or Snowplow, or connect to any tool or internal system via webhook. See publishing use cases and publishing integrations below.
Avo allows you to maintain a single source of truth for your schemas and keep your schema registries in sync, serving both your technical and non-technical stakeholders.
Push or pull your schemas: To keep your Avo tracking plan in sync with your downstream schema registries you can either push your schema from Avo via Avo Publishing or pull your Avo schema via Avo CLI. We recommend leveraging push since you can configure that to make sure your downstream schema registries get updated when your main Avo schema gets updated.
Push: Publishing your schema: You can set up Publishing integrations where you publish your Avo schema into other schema registries. For example as JSON into a Webhook. We recommend leveraging auto-publishing for those integrations, where your schema will get published upon Avo branch merge (you can also manually publish a schema at any point). See use cases.
Pull: Pull JSON schema via CLI: An alternative to Avo Publishing integrations is pulling a JSON schema via the CLI. This way you can add a schema pull into a CI/CD. See docs to pull schema via CLI .
Available integrations are:
- Segment Protocols
- Mixpanel Lexicon
- Snowplow Data Structures
- mParticle Data Master
- Amplitude Data
Publishing enables your Tracking Plan to be:
- Published whenever a branch is merged with Auto Publishing
- Published with a push of a button
- Downloaded from your Avo workspace on relevant format
To create a new publishing integration, find the Publishing part of the tracking plan in the left side navigation bar. From there you can click the "Add Integration" button to create a new publishing integration.
Then you can select the type of integration you want to create and give it a name.
Note that the publishing integrations are independent of the destinations defined in the "Sources" tab. However the publishing integration can use those destinations to filter which events should be included in the publishing integration. See more below in Filtering events for publishing .
When Auto Publishing is enabled all changes made on a branch will be published to the integration when the branch is merged.
You can customize which events in Avo are published to which integrations by using the events filter. Events can be filtered by Sources, Destinations and Tags. For example the following integration will only publish events sent from Web to Amplitude.
How is source specific property presence published?
- If you don't filter the integration by any source, the property presence is set to the "lowest common denominator" for all sources the property is sent from
- If you filter the integration with one source, the property presence is set to the presence configured for that source on the property
- If you filter by more than one source, the property presence is set to the "lowest common denominator" for the sources you're filtering by and are sending the property
What does the "lowest common denominator" mean?
- If the property is "Always sent" on all sources being published, the property presence is set to "Always sent" (required)
- If the property is "Sometimes sent" on one or more sources being published, the property presence is set to "Sometimes sent" (optional)
- If property is "Never sent" on all sources being published, the property is not included in the publishing
You can learn more on configuring when Properties are required or optional here .