LogoLogo
  • Contributing to RudderStack
  • Destination_Name
  • LICENSE
  • RudderStack Docs
  • docs
    • FAQ
    • Identity Resolution
    • Home
    • cloud-extract-sources
      • ActiveCampaign Source
      • Bing Ads
      • Chargebee
      • Common Settings
      • Facebook Ads
      • Freshdesk
      • Google Ads Source
      • Google Analytics
      • Google Search Console
      • Google Sheets
      • Cloud Extract Sources
      • Intercom v2
      • Intercom
      • Mailchimp
      • Marketo
      • Mixpanel
      • NetSuite
      • Pipedrive
      • QuickBooks
      • Salesforce Pardot
      • Sendgrid Source
      • Stripe Source
      • Xero
      • Zendesk Chat
      • Zendesk
      • hubspot
        • HubSpot Data Model and Schema Information
        • HubSpot
      • salesforce
        • Salesforce
        • Schema Comparison: RudderStack vs. Segment
    • connections
      • Connection Modes: Cloud Mode vs. Device Mode
    • data-governance
      • Data Governance
      • RudderTyper
      • Data Governance API
      • RudderTyper
      • tracking-plans
        • Tracking Plans
        • Tracking Plan Spreadsheet
    • data-warehouse-integrations
      • Amazon Redshift
      • Azure Data Lake
      • Azure Synapse
      • ClickHouse
      • Databricks Delta Lake
      • Google Cloud Storage Data Lake
      • Google BigQuery
      • Identity Resolution
      • Warehouse Destinations
      • Microsoft SQL Server
      • PostgreSQL
      • Amazon S3 Data Lake
      • Snowflake
      • FAQ
      • Warehouse Schema
    • destinations
      • Destinations
      • Webhooks
      • advertising
        • Bing Ads
        • Criteo
        • DCM Floodlight
        • Facebook App Events
        • Facebook Custom Audience
        • Facebook Pixel
        • Google Ads (gtag.js)
        • Google AdWords Enhanced Conversions
        • Google Adwords Remarketing Lists (Customer Match)
        • Advertising
        • LinkedIn Insight Tag
        • Lotame
        • Pinterest Tag
        • Reddit Pixel
        • Snap Pixel
        • TikTok Ads
      • analytics
        • Amplitude
        • AWS Personalize
        • Chartbeat
        • Firebase
        • FullStory
        • Google Analytics 360
        • Google Analytics
        • Heap.io
        • Hotjar
        • Analytics
        • Indicative
        • Keen
        • Kissmetrics
        • Kubit
        • Lytics
        • Mixpanel
        • Pendo
        • PostHog
        • Quantum Metric
        • Singular
        • adobe-analytics
          • Adobe Analytics Heartbeat Measurement
          • Mobile Device Mode Settings
          • Web Device Mode Settings
          • E-commerce Events
          • Adobe Analytics
          • Setting Up Adobe Analytics in RudderStack
        • google-analytics-4
          • Cloud Mode
          • Device Mode
          • Google Analytics 4
          • Setting up Google Analytics 4
        • profitwell
          • ProfitWell
          • Cloud Mode
          • Device Mode
      • attribution
        • Adjust
        • AppsFlyer
        • Branch
        • Attribution
        • Kochava
        • TVSquared
      • business-messaging
        • Business Messaging
        • Intercom
        • Kustomer
        • Slack
        • Trengo
      • continuous-integration
        • Visual Studio App Center
        • Continuous Integration
      • crm
        • Delighted
        • HubSpot
        • CRM
        • Salesforce
        • Variance
        • Zendesk
      • customer-data-platform
        • Customer Data Platform
        • Segment
      • error-reporting
        • Bugsnag
        • Error Reporting
        • Sentry
      • marketing
        • ActiveCampaign
        • AdRoll
        • Airship
        • Appcues
        • Autopilot
        • Blueshift
        • Braze
        • CleverTap
        • Customer.io
        • Gainsight PX
        • Gainsight
        • Marketing
        • Iterable
        • Klaviyo
        • Leanplum
        • Mailchimp
        • Marketo Lead Import
        • Marketo
        • MoEngage
        • Ometria
        • Pardot
        • Post Affiliate Pro
        • Qualtrics
        • SendGrid
        • Salesforce Marketing Cloud
        • Userlist
        • drip
          • Cloud Mode
          • Device Mode
          • Drip
          • Setting Up Drip in RudderStack
      • productivity
        • Google Sheets
        • Productivity
      • storage-platforms
        • Amazon S3
        • DigitalOcean Spaces
        • Google Cloud Storage
        • Storage Platforms
        • Azure Blob Storage
        • MinIO
        • Redis
      • streaming-platforms
        • Amazon EventBridge
        • Amazon Kinesis Firehose
        • Amazon Kinesis
        • Azure Event Hubs
        • BigQuery Stream
        • Confluent Cloud
        • Google Pub/Sub
        • Streaming Platforms
        • Apache Kafka
      • tag-managers
        • Google Tag Manager
        • Tag Managers
      • testing-and-personalization
        • Algolia Insights
        • Candu
        • Google Optimize
        • A/B Testing & Personalization
        • LaunchDarkly
        • Monetate
        • Optimizely Full Stack
        • Optimizely Web
        • Split.io
        • Statsig
        • VWO (Visual Website Optimizer)
    • get-started
      • RudderStack Cloud vs. RudderStack Open Source
      • Glossary
      • Get Started
      • RudderStack Architecture
    • reverse-etl
      • Amazon Redshift
      • Amazon S3
      • ClickHouse
      • FAQ
      • Google BigQuery
      • Reverse ETL
      • PostgreSQL
      • Snowflake
      • common-settings
        • Importing Data using Models
        • Importing Data using Tables
        • Common Settings
        • Sync Modes
        • Sync Schedule
      • features
        • Airflow Provider
        • Features
        • Models
        • Visual Data Mapper
    • rudderstack-api
      • Data Regulation API
      • HTTP API
      • RudderStack API
      • Personal Access Tokens
      • Pixel API
      • Test API
      • api-specification
        • Application Lifecycle Events Specification
        • API Specification
        • Video Events Specification
        • rudderstack-ecommerce-events-specification
          • Browsing
          • Coupons
          • E-Commerce Events Specification
          • Ordering
          • Promotions
          • Reviewing
          • Sharing
          • Wishlist
        • rudderstack-spec
          • Alias
          • Common Fields
          • Group
          • Identify
          • RudderStack Event Specification
          • Page
          • Screen
          • Track
    • rudderstack-cloud
      • Audit Logs
      • Dashboard Overview
      • Destinations
      • RudderStack Cloud
      • Live Events
      • Connection Modes: Cloud Mode vs. Device Mode
      • Sources
      • Teammates (User Management)
      • connections
        • Adding a Destination
        • Connections
    • rudderstack-open-source
      • Control Plane Setup
      • RudderStack Open Source
      • installing-and-setting-up-rudderstack
        • Developer Machine Setup
        • Docker
        • Data Plane Setup
        • Kubernetes
        • Sending Test Events
    • stream-sources
      • App Center
      • AppsFlyer
      • Auth0
      • Braze
      • Customer.io
      • Extole
      • Event Stream Sources
      • Iterable
      • Looker
      • PostHog
      • Segment
      • Shopify
      • Webhook Source
      • rudderstack-sdk-integration-guides
        • Client-side Event Filtering
        • SDKs
        • AMP Analytics
        • Cordova
        • .NET
        • Go
        • Java
        • Node.js
        • PHP
        • Python
        • React Native
        • Ruby
        • Rust
        • Unity
        • SDK FAQs
        • rudderstack-android-sdk
          • Adding Application Class
          • Flushing Events Periodically
          • Android
        • rudderstack-flutter-sdk
          • Flutter SDK v1
          • Flutter v2
          • Flutter
        • rudderstack-ios-sdk
          • iOS
          • tvOS
          • watchOS
        • rudderstack-javascript-sdk
          • Data Storage in Cookies
          • Detecting Ad-blocked Pages
          • JavaScript
          • JavaScript SDK Enhancements
          • JavaScript SDK FAQs
          • Querystring API
          • Quick Start Guide
          • Version Migration Guide
          • consent-managers
            • Consent Managers
            • OneTrust
    • transformations
      • Access Token
      • FAQ
      • Transformations
      • Transformations API
    • user-guides
      • User Guides
      • administrators-guide
        • Troubleshooting Guide
        • Alerting Guide
        • Bucket Configuration Settings for Event Backups
        • Configuration Parameters
        • Event Replay
        • High Availability
        • Horizontal Scaling
        • Administrator's Guides
        • Infrastructure Provisioning
        • Monitoring and Metrics
        • Okta SSO Setup
        • OneLogin SSO Setup
        • RudderStack Grafana Dashboard
        • Software Releases
      • how-to-guides
        • How to Use Custom Domains
        • How to Develop Integrations for RudderStack
        • How to Configure a Destination via the Event Payload
        • How to Filter Events using Different Methods
        • How to Filter Selective Destinations
        • How to Submit a Pull Request for a New Integration
        • How-to Guides
        • How to Debug Live Destination Events
        • How to Use AWS Lambda Functions with RudderStack
        • create-a-new-destination-transformer-for-rudder
          • Best Practices for Coding Transformation Functions in JavaScript
          • How to Create a New Destination Transformation for RudderStack
        • implement-native-js-sdk-integration
          • How to Add a Device Mode SDK to RudderStack JavaScript SDK
          • How to Implement a Native JavaScript SDK Integration
        • rudderstack-jamstack-integration
          • How to Integrate RudderStack with Your JAMstack Site
          • How to Integrate Rudderstack with Your Angular App
          • How to Integrate Rudderstack with Your Astro Site
          • How to Integrate Rudderstack with Your Eleventy Site
          • How to Integrate Rudderstack with Your Ember.js App
          • How to Integrate Rudderstack with a Gatsby Website
          • How to Integrate Rudderstack with a Hugo Site
          • How to Integrate Rudderstack with Your Jekyll Site
          • How to Integrate Rudderstack with Your Next.js App
          • How to Integrate Rudderstack with Your Nuxt.js App
          • How to Integrate Rudderstack with Your Svelte App
          • How to Integrate Rudderstack with Your Vue App
      • migration-guides
        • Migrating from Blendo to RudderStack
        • Migrating Your Warehouse Destination from Segment to RudderStack
        • Migration Guides
        • Migrating from Segment to RudderStack
  • src
    • @rocketseat
      • gatsby-theme-docs
        • text
          • Home
Powered by GitBook
On this page
  • Spreadsheet overview
  • Creating a Tracking Plan from existing event data
  • Getting the Tracking Plans
  • Downloading existing Tracking Plans from RudderStack
  • Uploading a Tracking Plan to RudderStack
  • Linking Tracking Plan to a source
  • Other spreadsheet settings
  • API key settings (Global)
  • Advanced settings
  • Google Apps permissions
  • Server-side validation
  • Contact us

Was this helpful?

  1. docs
  2. data-governance
  3. tracking-plans

Tracking Plan Spreadsheet

Detailed technical description of the Tracking Plan spreadsheet for configuring your Tracking Plan.

PreviousTracking PlansNextdata-warehouse-integrations

Last updated 3 years ago

Was this helpful?

By default, the Tracking Plan configuration is in JSON format. The is a no-code, spreadsheet representation of your Tracking Plan configuration. It lets you easily create or use an existing Tracking Plan.

This guide details the various options and spreadsheet settings that let you configure your Tracking Plan.

Spreadsheet overview

The Tracking Plan spreadsheet uses the Google Sheets' scripts functionality to integrate with the Rudderstack Tracking Plan API.

The configuration settings for your Tracking Plan are listed in the Homepage and Additional Features tabs of the Tracking Plan spreadsheet. They are linked to the actions listed in the RudderStack Tracking Plan menu in the Google Sheets top bar, as shown:

The Tracking Plan spreadsheet currently supports only simple datatypes (strings, numbers, Boolean, arrays, and objects).

You can create, delete, or update the events or the properties within these events. Once you upload the changes, RudderStack creates a new version of the Tracking Plan to keep track of your changes.

Creating a Tracking Plan from existing event data

RudderStack lets you create a Tracking Plan from an existing event data source. This option uses the Data Governance API and the Tracking API features to generate an initial plan.

This is the easiest way to kickstart your Tracking Plan program without having to start from scratch.

To create a Tracking Plan from an existing RudderStack source, follow these steps:

  1. Go to the Additional Features tab of your Tracking Plan spreadsheet.

  2. Under Create Tracking Plan from Existing Source, enter the following settings:

    • Data Plane URL: Enter the data plane URL of your workspace or where the data plane is hosted.

    • Write key: Enter the write key for the RudderStack source. You can find it in the Sources page.

    • Username: Enter your admin username.

    • Password: Enter your admin password.

    • Tracking Plan Name: Assign a name to this Tracking Plan.

The Username and Password are your Grafana dashboard credentials and not your RudderStack account credentials. If you are unsure, contact your Account Manager.

  1. Click on the RudderStack Tracking Plan > Create Tracking Plan from Existing Source Events option in the top bar to create a new Tracking Plan.

Getting the Tracking Plans

To get a list of all your existing Tracking Plans, go to RudderStack Tracking Plan > Show All Tracking Plans.

This option lists all your existing Tracking Plans along with their respective Tracking Plan IDs in the List of Tracking Plans sheet.

Downloading existing Tracking Plans from RudderStack

To download existing Tracking Plans from RudderStack, follow these steps:

  1. Get a list of all your Tracking Plans by going to RudderStack Tracking Plan > Show All Tracking Plans. Note the Tracking Plan ID.

  2. Go to the Download Tracking Plan from RudderStack option in the spreadsheet and enter the Tracking Plan ID, as shown:

  1. Click on RudderStack Tracking Plan > Download Tracking Plan from RudderStack in the top bar.

This will create a new sheet with your Tracking Plan.

Uploading a Tracking Plan to RudderStack

You can use this option to create or update a Tracking Plan.

To upload a Tracking Plan to RudderStack, follow these steps:

  1. Go to the Upload Tracking Plan to RudderStack section in the Homepage tab of your spreadsheet.

  1. Enter the following settings:

    • Sheet Name (for Upload): Enter the tab name of the sheet containing the Tracking Plan.

    • Tracking Plan name: Enter the name of the Tracking Plan you want to upload to RudderStack.

RudderStack will create a new Tracking Plan if the name does not exist.

  1. Upload the Tracking Plan by going to RudderStack Tracking Plan > Upload Tracking Plan to RudderStack in the top bar.

Linking Tracking Plan to a source

When you link a Tracking Plan to a source, all the events will be processed in accordance with that plan.

This option lets you define the events that will be allowed to pass through or dropped by RudderStack, and the permissible errors in the event's context field.

To link a Tracking Plan to a source, follow these steps:

  1. In the Additional Features tab, go to the Link Tracking Plan to Source and enter the following settings:

    • Source ID: Enter your source ID. The following image highlights the source ID's location in the RudderStack dashboard:

A source ID uniquely identifies a RudderStack source. It is different to the source write key which is used by RudderStack to send events from the source to your specified destinations.

  1. Specify the following settings under Global Settings (applicable for all events):

    • Allow unplanned events: This setting has the following options:

    Option
    Description

    TRUE

    RudderStack will not drop the events not defined in your Tracking Plan

    FALSE

    RudderStack will drop the events not defined in the Tracking Plan.

    • Unplanned Properties: This setting has the following options:

    Option
    Description

    FORWARD

    The event's context field will be updated with the erroneous/unplanned property and forwarded to RudderStack.

    DROP

    RudderStack will drop the event containing the unplanned properties.

    • Other Violations: These violations include discrepancies such as type mismatch, missing required properties, etc.

    Option
    Description

    FORWARD

    The event's context field will be updated with these violations and forwarded to RudderStack.

    DROP

    RudderStack will drop the event containing the violations.

    • Propagate Errors: This setting has the following options:

    Option
    Description

    TRUE

    The validation errors are captured in the event's context and sent downstream (user transformations, destinations)

    FALSE

    RudderStack will drop the event containing the validation errors.

You can use Settings for track to explicitly define the Tracking Plan rules for track events.

  1. After finalizing the settings, go to RudderStack Tracking Plan > Link Tracking Plan to Source in the top bar.

Other spreadsheet settings

This section contains the noteworthy spreadsheet settings required to interact with your Tracking Plan.

API key settings (Global)

  • API Personal Access Token: Enter your Personal Access Token obtained from the RudderStack dashboard.

  • Email: Enter the email ID associated with your RudderStack account.

Advanced settings

These settings define how RudderStack should pick the data (event/property values) from the Tracking Plan.

Do not change these settings unless absolutely necessary as it may impact the entire Tracking Plan workflow.

Google Apps permissions

When you run the RudderStack Tracking Plan menu options for the first time, Google Apps will prompt you to authorize the scripts using the Tracking Plan API.

Click on Allow to set the permissions required for the script to work.

Server-side validation

The validation adds two new columns for each table and each row that specify:

  • Which Tracking Plan was used

  • The error message associated with the Plan

These columns will then propagate to both your data warehouse as well as cloud destinations. This lets you monitor the state of your violations and choose to act on them through manual operations or through the transformations.

Contact us

For the first time you use the Tracking Plan spreadsheet, you will be prompted with an approval request. Select Allow to permit Google Apps to execute the scripts. Refer to the section below for more information.

To verify if the Tracking Plan is created, refer to the section below.

Refer to the section below for more information on how RudderStack enforces the Tracking Plans on your source events.

Tracking Plan ID: Enter the Tracking Plan ID. Refer to the section for more information.

For more information, refer to the documentation.

RudderStack uses server-side validation to enforce your Tracking Plans. When you , RudderStack will check all the new events against the Tracking Plan.

For queries on any of the sections covered in this guide, you can or get in touch with your Account Manager.

Personal Access Token
contact us
Google Apps Permissions
Getting the Tracking Plans
Server-side validation
Getting the Tracking Plans
link a Tracking Plan to a source
Tracking Plan spreadsheet
Source ID
Personal Access Token
Download Tracking Plan
Upload Tracking Plan
Tracking Plan menu
Google Apps permissions