Publishing

7 minute read

Avo Publishing

Publishing is where you can configure Avo to publish your Tracking Plan to your analytics platform, a production time validation tool or your own custom endpoint via webhook.

Available integrations are:

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

Publishing configuration

Auto publishing

When Auto Publishing is enabled all changes made on a branch will be published to the integration when the branch is merged.

Publishing filter to publish only events sent from Web to Amplitude

Filtering events for publishing

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.

Publishing filter to publish only events sent from Web to Amplitude

Filtering and source specific property presence

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.

Integrations

Segment

Segment Protocols

The integration to Segment Protocols allows for your Tracking Plan to be published into Segment Protocols whenever branches are merged in your workspace or with a push of a button.

Configure the Protocols integration

To enable the direct integration with Segment Protocols, you need to configure it with the following parameters from Segment.

  • Segment Workspace Name: Found in the URL when logged into Segment: https://app.segment.com/{Segment workspace name}/...
  • Protocols Tracking Plan ID: Found in the URL of the tracking plan page: starts with rs_
  • Segment Access Token: Create new API tokens for Avo and limit the scope of its permissions to ‘Protocol Admin’.

Publishing to Protocols

Avo will override all events in the Protocols tracking plan that are being imported from Avo. Any changes made to an event in Protocols between Avo publish will be overridden on next Avo publish.

Avo will not override any events that are only defined in Protocols, or events that have not been added to the Protocols integration in Avo.

Mixpanel

Mixpanel Lexicon

The integration to Mixpanel Lexicon allows for your Tracking Plan to be published into Mixpanel Lexicon whenever a branch is merged in your workspace or with a push of a button.

Configure the Lexicon integration

To enable the direct integration with Mixpanel Lexicon, you need to configure it with the following parameters from Mixpanel.

Publishing to Lexicon

To publish your Avo tracking plan to Lexicon, click the "Publish to Lexicon" button in the integration interface, or enable Auto Publishing to publish the Tracking Plan whenever a branch has been merged.

On publish, Avo will merge your Avo tracking plan with any existing events in Lexicon. Any changes made to an event in Lexicon between Avo publish will be overridden on next Avo publish.

Avo will not impact any events that are only defined in Lexicon, or events that have not been added to the Lexicon integration in Avo.

Amplitude

Amplitude Govern

The integration to Ampltitude Govern allows for your Tracking Plan to be published into Amplitude Govern whenever a branch has been merged. You can also manually trigger a publish by clicking the "Publish to Govern" button on the integration screen or download a CSV file on the Amplitdue Govern format. The events to be published can be filtered by Sources, Destinations and Tags.

Configure the Govern integration

To enable the direct integration with Amplitude Govern, you need to configure it with the following parameters from Amplitude. They can be found from the project settings in Amplitude. From the left sidebar in your Amplitude workspace click: Settings > Projects > [Your Project Name]. The URL should look like this: https://analytics.amplitude.com/{org-name}/settings/projects/{project-id}/general.

  • Amplitude API Key
  • Amplitude Secret Key

Publishing to Govern

To publish your Avo tracking plan to Govern, click the "Publish to Govern" button in the integration interface, or enable Auto Publishing to publish the Tracking Plan whenever a branch has been merged.

On publish, Avo will merge your Avo tracking plan with any existing events in Govern. Any changes made to an event in Govern between Avo publish will be overridden on next Avo publish.

Avo will not impact any events or properties that are only defined in Govern, or events that have not been added to the Govern integration in Avo.

Govern Publishing Errors

The following errors might occur when publishing your tracking to Govern. When publishing errors occur the error message in the Avo UI will contain which items could not be updated along with the error codes.

404 Not Found

We tried to update an event that doesn't exist in your Amplitude Govern Schema. If this error occurs for all of the events you are attempting to publish it might indicate that your Amplitude Govern Schema has not been initialized. Learn more about initializing your Amplitude Govern Schema in the Amplitude Govern docs. If your Govern Schema has been initialized, and the error persists, please contact support.

408 Timeout

The publishing operation took too long. This can happen when publishing large tracking plans for the first time. Click publish again to resume the publish, it will continue from where it left off.

409 Conflict

We tried to update an item that doesn't exist in your Amplitude Govern Schema. We noticed that this error may happen if the entity has a non-default state in your Govern schema, i.e. it is marked as "Unexpected" or "Blocked". Try setting the state to "Expected" in Govern and unblock erroring entities and publish again. If that does not help this might be caused by an internal error. Please reach out to support so we can help you resolve the issue.

429 Too Many Requests

We've exceeded the number of Govern requests we can make per hour for these API credentials. Please wait before trying to publish again. You can learn more about Amplitude Govern request limits in the Amlitude Govern docs.

Webhook

Webhook

The Webhook integration is a way to get updated Tracking Plan delivered to an endpoint of your choice when a branch is merge, or when the publish button is clicked in the integration interface.

Configure the Webhook integration

To enable the Webhook integration you need to configure it with a URL where you want the updated tracking plan to be delivered.

The Tracking Plan will be delivered with a POST request containing the Tracking Plan on a JSON Schema format. The only requirement for this endpoint is to return a 200 response status code when it has successfully received the tracking plan.

Tracking Plan Model

AttributeTypeDescription
namestringThe name of your Avo workspace
eventsarray(Event)Array of Tracking Plan events

Event Model

AttributeTypeDescription
namestringEvent name
descriptionstringEvent description
rulesRulesEvent JSON rules

Rules Model

AttributeTypeDescription
propertiesPropertyRulesProperty JSON rules

PropertyRule Model

AttributeTypeDescription
descriptionstringProperty description
typestringProperty type
?enumarray(string)Allowed enum values