Remove legacy CDP pages + data pipeline sidebar tweaks (#10930)

* Remove legacy CDP pages + data pipeline sidebar tweaks

* Add popular tag to GeoIP

* tidy up vercel.json

* Remove old redirects

* Update vercel.json

* Update vercel.json

* fixed a url

* price schema

---------

Co-authored-by: Eli Kinsey <eli@ekinsey.dev>
This commit is contained in:
Andy Vandervell
2025-03-13 15:12:33 +00:00
committed by GitHub
parent b8015c6204
commit f71f15b0ed
25 changed files with 135 additions and 995 deletions

View File

@@ -1,31 +0,0 @@
---
title: Avo
featuredImage: null
documentation: /docs/cdp/avo-inspector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/avo-logo.png
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Sync PostHog with Avo to maintain data hygiene across your team and ensure consistency as you scale"
size="full"
cols={2}
>
<div>
<h5>Stream schema, not events</h5>
<p>Concerned about privacy? Avo doesn't need to see the events, just the schema - so you're only sharing the data you need to share.</p>
</div>
<div>
<h5>Keep teams and data consistent</h5>
<p>Sending event schema to Avo's data governance platform enables you to track data consistently, at any scale.</p>
</div>
</Section>
<TutorialsSlider topic="avo" />
<Documentation />

View File

@@ -1,35 +0,0 @@
---
title: Customer.io destination
featuredImage: null
documentation: /docs/cdp/customer-io
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/customerio-connector.png
filters:
type:
- data-out
maintainer: official
---
<Section
divider={false}
title="Bring product data from PostHog into Customer.io, enabling better communication with users through email, push notifications and SMS messages."
size="full"
cols={3}
>
<div>
<h5>Keep your systems in perfect sync</h5>
<p>Create customers in Customer.io from PostHog events and identified users, automatically syncing separate systems.</p>
</div>
<div>
<h5>Level-up user communication</h5>
<p>Use PostHog events as triggers in Customer.io workflows to automate your communication.</p>
</div>
<div>
<h5>Personalise your customer comms</h5>
<p>Use event data and emails to personalize messages in Customer.io, driving better engagement with users.</p>
</div>
</Section>
<TutorialsSlider topic="customer-io" />
<Documentation />

View File

@@ -1,32 +0,0 @@
---
title: Downsampling
featuredImage: null
documentation: /docs/cdp/downsampling
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/downsampling.png
description: Limit how many events are ingested into PostHog
filters:
type:
- data-in
maintainer: official
---
<Section
divider={false}
title="Control how many events are ingested into PostHog to gain better control of billing, improve performance and more."
size="full"
cols={2}
>
<div>
<h5>Control your billing</h5>
<p>Worried about big bills? Control how many events PostHog ingests so you avoid unpleasant surprises at the end of the month.</p>
</div>
<div>
<h5>Improve your performance</h5>
<p>Self-hosting on a shoestring? Prevent your systems getting overloaded by limiting how many events they have to handle.</p>
</div>
</Section>
<TutorialsSlider topic="downsampler" />
<Documentation />

View File

@@ -1,31 +0,0 @@
---
title: Engage
featuredImage: null
documentation: /docs/cdp/engage-connector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/engage_logo.png
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Send customer data and events to Engage, to be used for customer segmentation and marketing automation."
size="full"
cols={2}
>
<div>
<h5>Automate customer comms</h5>
<p>With customer data flowing into Engage, you can leave onboarding and retention messages on autopilot by creating targeted customer communication sequences and drip campaigns.</p>
</div>
<div>
<h5>Create new customer segments</h5>
<p>Push data from PostHog in real-time, then harness it in Engage to create segments based on any person property. Improve conversion by reaching customers with messages that address them directly.</p>
</div>
</Section>
<TutorialsSlider topic="engage" />
<Documentation />

View File

@@ -1,31 +0,0 @@
---
title: Filter Out
featuredImage: null
documentation: /docs/cdp/filter-out
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/filter-out.png
filters:
type:
- ingestion-filtering
maintainer: official
---
<Section
divider={false}
title="Set filter conditions so that you only ingest the events you want to track."
size="full"
cols={2}
>
<div>
<h5>Focus on the data you need</h5>
<p>Don't need to drink from the firehose? Filter out events which don't match your specified conditions, so you can focus on what really matters for your product.</p>
</div>
<div>
<h5>Control what data is tracked</h5>
<p>Worried about storing too much data in PostHog? Set filter conditions to weed out any events you don't want to ingest, so they never become an issue.</p>
</div>
</Section>
<TutorialsSlider topic="filter-out" />
<Documentation />

View File

@@ -1,38 +0,0 @@
---
title: GeoIP Enricher
featuredImage: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/images/apps/geoip.png
documentation: /docs/cdp/geoip-enrichment
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/geoip.png
description: Add geographic data to PostHog events and persons using IP addresses
filters:
type:
- data-in
maintainer: official
price: Free
---
<Section
divider={false}
title="Add geographic data to PostHog events and persons using IP addresses, to enhance your insights."
size="full"
cols={3}
>
<div>
<h5>Locate your users</h5>
<p>Wondering where your customers are? Breakdown their IP information in PostHog using the Trends tool.</p>
</div>
<div>
<h5>Correlate by geography</h5>
<p>How does location impact user experience? Correlate geographic data against other metrics, such as rageclicks.</p>
</div>
<div>
<h5>Discard extraneous data</h5>
<p>Dont want to pry? Combine the GeoIP User Enricher with the Property Filter to take out the details you dont need.</p>
</div>
</Section>
<TutorialsSlider topic="geoip" />
<Documentation />

View File

@@ -1,36 +0,0 @@
---
title: Hubspot
featuredImage: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/images/apps/hubspot.png
documentation: /docs/cdp/hubspot-connector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/hubspot.svg
filters:
type:
- data-out
maintainer: official
---
<Section
divider={false}
title="Get customer data into Hubspot whenever a user is identified in PostHog, creating a cohesive view of every lead."
size="full"
cols={3}
>
<div>
<h5>Centralize customer info</h5>
<p>Send names, emails, company names and more to Hubspot so you have a single source of truth for customer info.</p>
</div>
<div>
<h5>Maximize leads</h5>
<p>With data centralized in your CRM, it becomes trivial to maximize sales and marketing activities in Hubspot.</p>
</div>
<div>
<h5>Prioritize B2B leads</h5>
<p>Send company names and URLs to Hubspot, so your sales team can prioritize large organizations.</p>
</div>
</Section>
<TutorialsSlider topic="hubspot" />
<Documentation />

View File

@@ -1,31 +0,0 @@
---
title: Intercom
featuredImage: null
documentation: /docs/cdp/intercom
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/intercom.png
filters:
type:
- data-out
maintainer: official
---
<Section
divider={false}
title="Send event data to Intercom whenever selected events happen for users who are identified by email address."
size="full"
cols={2}
>
<div>
<h5>Level-up your messaging</h5>
<p>Make customer comms more relevant and impactful than ever before by incorporating info from how users have actually engaged with your products.</p>
</div>
<div>
<h5>Automate your comms</h5>
<p>Don't waste time creating manual communications. Integrate event data into more scalable channels for reaching users, such as Intercom's chatbots.</p>
</div>
</Section>
<TutorialsSlider topic="intercom" />
<Documentation />

View File

@@ -1,36 +0,0 @@
---
title: Laudspeaker
featuredImage: null
documentation: /docs/cdp/laudspeaker-connector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/laudspeaker-connector.png
description: Use PostHog events to trigger omni-channel customer messaging
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Use PostHog events to trigger omni-channel customer messaging with Laudspeaker, an open-source alternative to Braze."
size="full"
cols={3}
>
<div>
<h5>Send comms across multiple channel</h5>
<p>Use PostHog events to trigger customer communications across Slack or email in just 15 minutes.</p>
</div>
<div>
<h5>Use PostHog events to trigger comms</h5>
<p>Ingest PostHog events into Laudspeaker to trigger customer communications immediately, or on a delay.</p>
</div>
<div>
<h5>Open source and developer friendly</h5>
<p>Like PostHog, Laudspeaker is entirely open source and can be hosted in the Cloud, or on your own infrastructure.</p>
</div>
</Section>
<TutorialsSlider topic="laudspeaker-connector" />
<Documentation />

View File

@@ -1,31 +0,0 @@
---
title: Pace
featuredImage: null
documentation: /docs/cdp/pace-integration
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/pace-integration.png
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Forwards any event from PostHog to Pace's internal ingestion endpoint to create insights and metrics."
size="full"
cols={2}
>
<div>
<h5>Equip sellers with insights</h5>
<p>Give teams the insights they need to identify and prioritize the right customers, using events captured by PostHog.</p>
</div>
<div>
<h5>Finish setup in 10 seconds</h5>
<p>Move data from PostHog to Pace effortless, with only a single variable in the config. Less time configuring flows; more time using data.</p>
</div>
</Section>
<TutorialsSlider topic="pace" />
<Documentation />

View File

@@ -1,46 +0,0 @@
---
title: Property Filter
featuredImage: null
documentation: /docs/cdp/property-filter
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/property-filter.png
description: Remove unwanted information from PostHog properties
filters:
type:
- data-in
maintainer: community
---
<Section
divider={false}
title="Remove unwanted information from PostHog properties to protect user privacy, comply with regulations or just eliminate noise."
size="full"
cols={3}
>
<div>
<h5>Protect your users</h5>
<p>Prevent PostHog from storing identifying information, such as an IP-based location, to guard user privacy.</p>
</div>
<div>
<h5>Achieve compliance</h5>
<p>Remove PII from PostHog events before they are stored, making it easier to comply with regulations such as HIPAA.</p>
</div>
<div>
<h5>Reduce data noise</h5>
<p>Filter out info you won't need, so it's easier to focus on the data that actually matters when building insights.</p>
</div>
</Section>
<BorderWrapper>
<Quote
imageSource="/images/customers/lukas-witty.jpeg"
size="md"
name="Lukas Smith"
title="CTO & Co-founder, Witty Works"
quote={`“I have a long history in open source. I found the community very responsive and open to both feedback and code changes. That gave me assurance that, if PostHog cant do something, theres a realistic path to building it myself.”`}
/>
</BorderWrapper>
<TutorialsSlider topic="property-filter" />
<Documentation />

View File

@@ -1,35 +0,0 @@
---
title: RudderStack (Export)
featuredImage: null
documentation: /docs/cdp/rudderstack-export
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/rudderstack.png
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Export events from PostHog to RudderStack and use PostHog as a RudderStack source, to send data elsewhere effortlessly."
size="full"
cols={3}
>
<div>
<h5>Send to your data warehouse</h5>
<p>Whether you use a data warehouse or a data lake, use RudderStack to format and stream your data correctly.</p>
</div>
<div>
<h5>Send to your CRM and marketing platforms</h5>
<p>Route events to Salesforce, Marketo, Braze and more to centralize customer info and build automated workflows.</p>
</div>
<div>
<h5>Send to your error and performance monitors</h5>
<p>Send PostHog data to Bugsnag, Sentry, Pingform and more to discover performance issues hiding in plain sight.</p>
</div>
</Section>
<TutorialsSlider topic="rudderstack" />
<Documentation />

View File

@@ -1,34 +0,0 @@
---
title: Salesforce
featuredImage: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/images/apps/salesforce.png
documentation: /docs/cdp/salesforce-connector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/salesforce.svg
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Send events to Salesforce, creating a more powerful CRM which gives teams a holistic view of customers."
size="full"
cols={3}
>
<div>
<h5>Centralize info in Salesforce</h5>
<p>Tired of outdated data? Send everything to Salesforce to create a single source of truth for your teams.</p>
</div>
<div>
<h5>Create and share reports</h5>
<p>Connect Salesforce to easily report on PostHog data and share results with anyone in your organization.</p>
</div>
<div>
<h5>Discover trends, maximize sales</h5>
<p>Sharing data from PostHog with Salesforce makes it easier to spot trends and trivial to maximize sales activities.</p>
</div>
</Section>
<Documentation />

View File

@@ -1,32 +0,0 @@
---
title: Schema Enforcer
documentation: /docs/cdp/schema-enforcer
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/schema-enforcer.png
filters:
type:
- ingestion-filtering
maintainer: official
---
<Section
divider={false}
title="Shape what data is available in your PostHog instance by enforcing a schema and blocking events that don't match."
size="full"
cols={3}
>
<div>
<h5>Control sensitive data</h5>
<p>Worried about leaks? Block ingestion for data you don't want teams to have.</p>
</div>
<div>
<h5>Limit expenditure</h5>
<p>Worried about overspending? Limit event ingestion to just the events you know you need.</p>
</div>
<div>
<h5>Reduce the noise</h5>
<p>Worried about separating the noise from the signal? Simplify analytics by limiting ingestion.</p>
</div>
</Section>
<Documentation />

View File

@@ -1,31 +0,0 @@
---
title: SemVer Flattener
featuredImage: null
documentation: /docs/cdp/semver-flattener
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/semver-flattener.png
filters:
type:
- ingestion-filtering
maintainer: official
---
<Section
divider={false}
title="Sometimes you want to compare versions when filtering in PostHog insights. This app splits a valid SemVer string, to make that easier."
size="full"
cols={2}
>
<div>
<h5>Make comparisons easier</h5>
<p>It isn't possible to use string comparison for comparing versions. So, this app splits valid SemVer version strings and flattens them to make comparative insights better.</p>
</div>
<div>
<h5>Make comparisons accurate</h5>
<p>With the SemVer Flattener, you can more accurately compare versions when filtering insights in PostHog and avoid tricky, hard-to-spot errors.</p>
</div>
</Section>
<TutorialsSlider topic="semver-flattener" />
<Documentation />

View File

@@ -1,36 +0,0 @@
---
title: Sendgrid
featuredImage: null
documentation: /docs/cdp/sendgrid-connector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/sendgrid-connector.png
filters:
type:
- data-out
maintainer: official
---
<Section
divider={false}
title="Connect your Sendgrid account, sending emails and user data whenever a user is identified in PostHog."
size="full"
cols={3}
>
<div>
<h5>No imports needed</h5>
<p>Streamline the way you work by sending user data to Sendgrid automatically, without manual imports.</p>
</div>
<div>
<h5>More relevant workflows</h5>
<p>Use PostHog events as triggers in more powerful workflows to give users better, more relevant emails.</p>
</div>
<div>
<h5>Tailor your comms</h5>
<p>Use event data and emails to personalize messages in Sendgrid, driving better engagement with users.</p>
</div>
</Section>
<TutorialsSlider topic="sendgrid" />
<Documentation />

View File

@@ -1,36 +0,0 @@
---
title: Taxonomy Standardizer
featuredImage: null
documentation: /docs/cdp/taxonomy-standardizer
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/taxonomy-standardizer.png
filters:
type:
- ingestion-filtering
maintainer: official
---
<Section
divider={false}
title="Tired of InConsistent_Spelling event taxonomies? Standardize event names into one matching style!"
size="full"
cols={3}
>
<div>
<h5>Increase accessibility</h5>
<p>Struggling to read Camel Case? Whether it's a matter of accessibility or preference, your struggles are gone.</p>
</div>
<div>
<h5>"It just looks nicer"</h5>
<p>Whether you prefer Pascal Case, Snake Case or just plain old everyday spaces, this makes PostHog +10% nicer.</p>
</div>
<div>
<h5>Reduce inconsistency</h5>
<p>Using PostHog as a pipeline? Standardize event formatting before you send, to reduce errors in other systems.</p>
</div>
</Section>
<TutorialsSlider topic="taxonomy-standardizer" />
<Documentation />

View File

@@ -1,36 +0,0 @@
---
title: Timestamp Parser
featuredImage: null
documentation: /docs/cdp/timestamp-parser
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/timestamp-parser.png
filters:
type:
- ingestion-filtering
maintainer: official
---
<Section
divider={false}
title="Enhance event data by parsing standard timestamps into unique properties, enabling you to investigate time-based data fully."
size="full"
cols={3}
>
<div>
<h5>Identify virality</h5>
<p>Gone viral? Hone in on the exact minute the traffic picked up, so you can identify the specific causes.</p>
</div>
<div>
<h5>Investigate patterns</h5>
<p>How does the day of the week affect user behavior? What about time of day? Find out with timestamps!</p>
</div>
<div>
<h5>Explore seasonal events</h5>
<p>Do irregular or rare events, such as holidays, have an impact? Query data on any timescale to find out.</p>
</div>
</Section>
<TutorialsSlider topic="timestamp-parser" />
<Documentation />

View File

@@ -1,31 +0,0 @@
---
title: URL Normalizer
documentation: /docs/cdp/url-normalizer
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/url_normalizer.png
description: Normalize the format of URLs in events
filters:
type:
- data-in
maintainer: official
---
<Section
divider={false}
title="Normalize the format of URLs, so that you can more easily study them in PostHog without worrying about inconsistent casing!"
size="full"
cols={2}
>
<div>
<h5>Build prettier insights</h5>
<p>Remove trailing slashes and reduce all URLs to lowercase, so insights involving URLs are a little easier on the eye.</p>
</div>
<div>
<h5>Create consistency</h5>
<p>What's the easiest way to get your team to format URLs consistently? Not giving them a choice!</p>
</div>
</Section>
<TutorialsSlider topic="normalizer" />
<Documentation />

View File

@@ -1,32 +0,0 @@
---
title: URL query parameter convert
featuredImage: null
documentation: /docs/cdp/url-query
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/url-query.png
filters:
type:
- data-in
maintainer: community
---
<Section
divider={false}
title="Convert URL query parameters into event properties, to enable simple URL comparisons"
size="full"
cols={2}
>
<div>
<h5>Turn queries into properties</h5>
<p>Automatically convert URL search parameters into event properties by allowlisting them in the app.</p>
</div>
<div>
<h5>Track how queries convert with insights</h5>
<p>Use tools such as PostHog funnel and trend insights to see how your content performs when compares a</p>
</div>
</Section>
<TutorialsSlider topic="url-query" />
<Documentation />

View File

@@ -1,33 +0,0 @@
---
title: User Agent Populator
featuredImage: null
documentation: /docs/cdp/user-agent-populator
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/user-agent-enhancer.png
description: Include browser details whenever a user agent is detected.
filters:
type:
- data-in
maintainer: community
---
<Section
divider={false}
title="Enhance event data in PostHog by including browser details whenever the $useragent property is detected."
size="full"
cols={2}
>
<div>
<h5>Add more data to PostHog</h5>
<p>Want to know more about users? Collect additional browser information, then analyze it using any PostHog app.</p>
</div>
<div>
<h5>Send data anywhere</h5>
<p>Need this info in other systems? Use PostHog as a data pipeline by connecting to BigQuery, S3, Redshift and more.</p>
</div>
</Section>
<TutorialsSlider topic="user-agent" />
<Documentation />

View File

@@ -1,36 +0,0 @@
---
title: Variance
featuredImage: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/images/apps/variance.png
documentation: /docs/cdp/variance-connector
thumbnail: >-
https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/cdp/thumbnails/variance.png
filters:
type:
- data-out
maintainer: community
---
<Section
divider={false}
title="Send event data to Variance, so you can define product-qualified leads, sync with your CRM, and build authentic buyer personas. "
size="full"
cols={3}
>
<div>
<h5>Define PQLs with data</h5>
<p>Channel usage data into Variance to notify teams about new PQLs and automate conversion.</p>
</div>
<div>
<h5>Sync data with your CRM</h5>
<p>Pass data to your CRM so your revenue team can create incredibly accurate forecasts.</p>
</div>
<div>
<h5>Build buyer personas</h5>
<p>Create buyer personas based on actual usage data, rather than assumptions and intuition.</p>
</div>
</Section>
<TutorialsSlider topic="variance" />
<Documentation />

View File

@@ -51,6 +51,7 @@ export const createSchemaCustomization: GatsbyNode['createSchemaCustomization']
badge: String
seo: FrontmatterSEO
hideFromIndex: Boolean
price: String
}
type TeamData {
name: String

View File

@@ -3051,10 +3051,18 @@ export const docsMenu = {
{
name: 'Slack',
url: '/docs/cdp/destinations/slack',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Webhook',
url: '/docs/cdp/destinations/webhook',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'ActiveCampaign',
@@ -3087,10 +3095,18 @@ export const docsMenu = {
{
name: 'Customer.io',
url: '/docs/cdp/destinations/customerio',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Discord',
url: '/docs/cdp/destinations/discord',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Engage.so',
@@ -3111,10 +3127,18 @@ export const docsMenu = {
{
name: 'Hubspot',
url: '/docs/cdp/destinations/hubspot',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Intercom',
url: '/docs/cdp/destinations/intercom',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'June',
@@ -3131,6 +3155,10 @@ export const docsMenu = {
{
name: 'Loops',
url: '/docs/cdp/destinations/loops',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Mailchimp',
@@ -3151,6 +3179,10 @@ export const docsMenu = {
{
name: 'Meta Ads',
url: '/docs/cdp/destinations/meta-ads',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Microsoft Teams',
@@ -3183,6 +3215,10 @@ export const docsMenu = {
{
name: 'Zapier',
url: '/docs/cdp/destinations/zapier',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
name: 'Zendesk',
@@ -3230,45 +3266,53 @@ export const docsMenu = {
color: 'yellow',
featured: true,
children: [
{
url: '/docs/cdp/geoip-enrichment',
name: 'GeoIP Enricher',
},
{
url: '/docs/cdp/timestamp-parser',
name: 'Timestamp Parser',
},
{
url: '/docs/cdp/url-normalizer',
name: 'URL Normalizer',
},
{
url: '/docs/cdp/user-agent-populator',
name: 'User Agent Populator',
},
{
url: '/docs/cdp/event-sequence-timer',
name: 'Event Sequence Timer',
},
{
url: '/docs/cdp/property-filter',
name: 'Property Filter',
},
{
url: '/docs/cdp/taxonomy-standardizer',
name: 'Taxonomy Standardizer',
},
{
url: '/docs/cdp/downsampling',
name: 'Downsampler',
},
{
url: '/docs/cdp/event-sequence-timer',
name: 'Event sequence timer',
},
{
url: '/docs/cdp/filter-out',
name: 'Filter Out',
name: 'Filter out',
},
{
url: '/docs/cdp/geoip-enrichment',
name: 'GeoIP enricher',
badge: {
title: 'Popular',
className: '!bg-blue/10 !text-blue !dark:text-white !dark:bg-blue/50',
},
},
{
url: '/docs/cdp/property-filter',
name: 'Property filter',
},
{
url: '/docs/cdp/schema-enforcer',
name: 'Schema Enforcer',
name: 'Schema enforcer',
},
{
url: '/docs/cdp/taxonomy-standardizer',
name: 'Taxonomy standardizer',
},
{
url: '/docs/cdp/timestamp-parser',
name: 'Timestamp parser',
},
{
url: '/docs/cdp/user-agent-populator',
name: 'User agent populator',
},
{
url: '/docs/cdp/url-normalizer',
name: 'URL normalizer',
},
{
url: '/docs/cdp/url-query',
name: 'URL query',
},
],
},

View File

@@ -7,10 +7,7 @@
{ "source": "/posts/:path*", "destination": "/posts/[slug]/index.html" }
],
"redirects": [
{
"source": "/youreastar",
"destination": "https://www.youtube.com/watch?v=SD7B2teuLXk"
},
{ "source": "/youreastar", "destination": "https://www.youtube.com/watch?v=SD7B2teuLXk" },
{
"source": "/handbook/growth/marketing/product-announcements",
"destination": "/handbook/words-and-pictures/product-announcements"
@@ -175,16 +172,11 @@
"source": "/handbook/engineering/enterprise-prioritization",
"destination": "/handbook/product/enterprise-features-prioritization"
},
{ "source": "/blog/titles", "destination": "/blog/startup-job-titles" },
{
"source": "/handbook/growth/marketing/Customer-personas",
"destination": "/handbook/growth/marketing/customer-personas"
},
{ "source": "/handbook/engineering/product-team", "destination": "/handbook/product/product-team" },
{
"source": "/blog/Building-the-future-of-game-analytics-pureskill",
"destination": "/blog/building-the-future-of-game-analytics-pureskill"
},
{
"source": "/handbook/product/scale-features-prioritization",
"destination": "/handbook/product/enterprise-features-prioritization"
@@ -197,10 +189,6 @@
{ "source": "/docs/user-guides/session-recording", "destination": "/docs/user-guides/recordings" },
{ "source": "/blog/sessions-deprecation", "destination": "/blog/sessions-removal" },
{ "source": "/docs/self-host/runbook/overview", "destination": "/docs/self-host/runbook" },
{
"source": "/blog/aarrr-how-to-build-pirate-funnel-posthog-with-posthog",
"destination": "/docs/tutorials/aarrr-how-to-build-pirate-funnel-posthog-with-posthog"
},
{ "source": "/docs/user-guides/users", "destination": "/docs/user-guides/persons" },
{ "source": "/docs/integrations/api", "destination": "/docs/api" },
{ "source": "/docs/features/sso", "destination": "/docs/user-guides/sso" },
@@ -230,10 +218,6 @@
"source": "/docs/self-host/docs/self-host/postgres-vs-clickhouse",
"destination": "/docs/self-host/postgres-vs-clickhouse"
},
{ "source": "/blog/the-posthog-array-1-29-1", "destination": "/blog/the-posthog-array-1-29-0" },
{ "source": "/blog/the-posthog-array-1-28-1", "destination": "/blog/the-posthog-array-1-28-0" },
{ "source": "/blog/the-posthog-array-1-23-1", "destination": "/blog/the-posthog-array-1-23-0" },
{ "source": "/blog/the-posthog-array-1-15-1", "destination": "/blog/the-posthog-array-1-15-0" },
{ "source": "/handbook/people/team-structure/design", "destination": "/handbook/design/philosophy" },
{ "source": "/handbook/design/about-design", "destination": "/handbook/design/philosophy" },
{ "source": "/product-features/self-hosted", "destination": "/product-os" },
@@ -259,27 +243,7 @@
{ "source": "/ab-testing", "destination": "/experiments" },
{ "source": "/product/heatmaps", "destination": "/tutorials/toolbar", "statusCode": 301 },
{ "source": "/heatmaps", "destination": "/tutorials/toolbar" },
{ "source": "/docs/tutorials/aarrr-framework", "destination": "/tutorials/aarrr-framework" },
{
"source": "/docs/tutorials/aarrr-how-to-build-pirate-funnel-posthog-with-posthog",
"destination": "/tutorials/aarrr-how-to-build-pirate-funnel-posthog-with-posthog"
},
{ "source": "/docs/tutorials/b2b", "destination": "/tutorials/b2b" },
{ "source": "/docs/tutorials/deleting-data", "destination": "/tutorials/deleting-data" },
{ "source": "/docs/tutorials/event-tracking-guide", "destination": "/tutorials/event-tracking-guide" },
{ "source": "/docs/tutorials/feature-flags", "destination": "/manual/feature-flags" },
{ "source": "/docs/tutorials/funnels", "destination": "/tutorials/funnels" },
{
"source": "/docs/tutorials/how-to-embed-shared-dashboard",
"destination": "/tutorials/how-to-embed-shared-dashboard"
},
{
"source": "/docs/tutorials/nextjs-supabase-signup-funnel",
"destination": "/tutorials/nextjs-supabase-signup-funnel"
},
{ "source": "/docs/tutorials/spa", "destination": "/tutorials/spa" },
{ "source": "/docs/tutorials/survey", "destination": "/tutorials/survey" },
{ "source": "/docs/tutorials/toolbar", "destination": "/tutorials/toolbar" },
{ "source": "/handbook/company/branding", "destination": "/handbook/company/brand-assets" },
{ "source": "/docs/tutorials/:path*", "destination": "/tutorials/:path*" },
{ "source": "/docs/self-host/hobby-deployment", "destination": "/docs/self-host/deploy/hobby" },
@@ -319,10 +283,6 @@
{ "source": "/integrations/:path*", "destination": "/apps/:path*" },
{ "source": "/docs/user-guides/plugins", "destination": "/docs/apps" },
{ "source": "/support", "destination": "/questions" },
{
"source": "/customers/why-i-ditched-mixpanel-for-posthog",
"destination": "/blog/why-i-ditched-google-analytics-for-posthog"
},
{ "source": "/handbook/company/1-1s", "destination": "/handbook/company/management" },
{ "source": "/lenny", "destination": "/?utm_source=lenny&?utm_campaign=lenny" },
{ "source": "/zizyo", "destination": "/?utm_campaign=zizyo" },
@@ -349,8 +309,6 @@
{ "source": "/jesseshowalter", "destination": "/?utm_source=jesseshowalter&utm_campaign=jesseshowalter" },
{ "source": "/benjamincode", "destination": "/?utm_source=benjamincode&utm_campaign=benjamincode" },
{ "source": "/travismedia", "destination": "/?utm_source=travismedia&utm_campaign=travismedia" },
{ "source": "/blog/the-posthog-array-1-36-1", "destination": "/blog/the-posthog-array-1-36-0" },
{ "source": "/tutorials/b2b", "destination": "/blog/b2b-saas-product-metrics" },
{ "source": "/docs/self-host/migrate-to-cloud", "destination": "/docs/migrate/migrate-to-cloud" },
{ "source": "/tutorials/categories/plugins", "destination": "/tutorials/categories/apps" },
{ "source": "/trial", "destination": "/pricing" },
@@ -560,10 +518,7 @@
"source": "/handbook/people/team-structure/session-recording",
"destination": "/handbook/small-teams/replay"
},
{
"source": "/handbook/small-teams/monitoring",
"destination": "/handbook/small-teams/replay"
},
{ "source": "/handbook/small-teams/monitoring", "destination": "/handbook/small-teams/replay" },
{
"source": "/handbook/people/team-structure/website-docs",
"destination": "/handbook/small-teams/website-docs"
@@ -587,14 +542,8 @@
"destination": "/handbook/small-teams/product-analytics"
},
{ "source": "/docs/self-host/postgres-vs-clickhouse", "destination": "/blog/clickhouse-vs-postgres" },
{
"source": "/handbook/people/team-structure/team-structure",
"destination": "/handbook/team-structure"
},
{
"source": "/handbook/small-teams/team-structure",
"destination": "/handbook/team-structure"
},
{ "source": "/handbook/people/team-structure/team-structure", "destination": "/handbook/team-structure" },
{ "source": "/handbook/small-teams/team-structure", "destination": "/handbook/team-structure" },
{ "source": "/eu-cloud", "destination": "/eu" },
{ "source": "/handbook/strategy/roadmap", "destination": "/roadmap" },
{ "source": "/handbook/company/diversity", "destination": "/handbook/company/grown-ups" },
@@ -643,14 +592,8 @@
"source": "/docs/product-analytics/user-properties",
"destination": "/docs/product-analytics/person-properties"
},
{
"source": "/docs/product-analytics/start",
"destination": "/docs/getting-started/send-events"
},
{
"source": "/docs/product-analytics/web-vitals",
"destination": "/docs/web-analytics/web-vitals"
},
{ "source": "/docs/product-analytics/start", "destination": "/docs/getting-started/send-events" },
{ "source": "/docs/product-analytics/web-vitals", "destination": "/docs/web-analytics/web-vitals" },
{ "source": "/docs/getting-started/user-properties", "destination": "/docs/getting-started/person-properties" },
{
"source": "/docs/feature-flags/multivariate-flags",
@@ -922,7 +865,6 @@
{ "source": "/lottie", "destination": "/community/profiles/27881" },
{ "source": "/joe", "destination": "/community/profiles/29070" },
{ "source": "/cory", "destination": "/community/profiles/30200" },
{ "source": "/docs/surveys/manual", "destination": "/docs/surveys" },
{ "source": "/docs/surveys/setup", "destination": "/docs/surveys/installation" },
{ "source": "/docs/surveys/new", "destination": "/docs/surveys/creating-surveys" },
@@ -930,15 +872,10 @@
{ "source": "/docs/surveys/events", "destination": "/docs/surveys/implementing-custom-surveys" },
{ "source": "/blog/how-we-do-hiring-and-hr-at-posthog", "destination": "/handbook/people/hiring-process" },
{ "source": "/api", "destination": "/docs/api" },
{
"source": "/tutorials/experiments",
"destination": "/docs/experiments/running-experiments-without-feature-flags"
},
{ "source": "/docs/data/subscriptions", "destination": "/docs/product-analytics/subscriptions" },
{ "source": "/docs/apps/feedback-widget", "destination": "/templates/in-app-feedback-survey" },
{ "source": "/apps/feedback-widget", "destination": "/templates/in-app-feedback-survey" },
{ "source": "/apps/user-interviewer", "destination": "/templates/user-interview" },
{ "source": "/jobs", "destination": "/careers" },
{
"source": "/docs/getting-started/estimating-usage-costs",
"destination": "/docs/billing/estimating-usage-costs"
@@ -1032,10 +969,7 @@
"source": "/blog/churn-rate-vs-retention-rate",
"destination": "/product-engineers/churn-rate-vs-retention-rate"
},
{
"source": "/product-engineers/ab-testing",
"destination": "/product-engineers/experiments"
},
{ "source": "/product-engineers/ab-testing", "destination": "/product-engineers/experiments" },
{
"source": "/blog/feature-flag-benefits-use-cases",
"destination": "/product-engineers/feature-flag-benefits-use-cases"
@@ -1067,7 +1001,6 @@
"destination": "/product-engineers/running-group-targeted-ab-tests"
},
{ "source": "/blog/sql-for-analytics", "destination": "/product-engineers/sql-for-analytics" },
{ "source": "/docs/cdp/unduplicator", "destination": "/docs/cdp" },
{ "source": "/cdp/unduplicator", "destination": "/docs/cdp" },
{ "source": "/handbook/strategy/overview", "destination": "/handbook/future" },
@@ -1139,7 +1072,6 @@
{ "source": "/handbook/growth/marketing/blog", "destination": "/handbook/growth/marketing/content" },
{ "source": "/handbook/small-teams/website-docs/community", "destination": "/handbook/community" },
{ "source": "/logo", "destination": "/handbook/company/brand-assets" },
{ "source": "/docs/getting-started/next-steps", "destination": "/tutorials/next-steps-after-installing" },
{ "source": "/blog/tags/product-engineer", "destination": "/product-engineers/all" },
{ "source": "/blog/categories/company-and-culture", "destination": "/founders/culture" },
{ "source": "/docs/runbook/upgrading-posthog", "destination": "/docs/self-host" },
@@ -1225,10 +1157,7 @@
{ "source": "/docs/cdp/build/tutorial", "destination": "/docs/cdp/destinations" },
{ "source": "/blog/learnings-from-elon", "destination": "/founders/learnings-from-elon" },
{ "source": "/docs/data/application-settings", "destination": "/docs" },
{
"source": "/docs/data/organizations-and-projects",
"destination": "/docs/settings/organizations"
},
{ "source": "/docs/data/organizations-and-projects", "destination": "/docs/settings/organizations" },
{ "source": "/docs/data/role-based-access", "destination": "/docs/settings/role-based-access" },
{ "source": "/docs/data/sso", "destination": "/docs/settings/sso" },
{ "source": "/docs/ab-testing", "destination": "/docs/experiments" },
@@ -1259,10 +1188,7 @@
},
{ "source": "/docs/product-analytics/llms", "destination": "/docs/ai-engineering" },
{ "source": "/docs/ai-engineering/llms", "destination": "/docs/ai-engineering/llm-insights" },
{
"source": "/docs/product-analytics/trends",
"destination": "/docs/product-analytics/trends/overview"
},
{ "source": "/docs/product-analytics/trends", "destination": "/docs/product-analytics/trends/overview" },
{ "source": "/book-a-demo", "destination": "/demo" },
{ "source": "/contact-sales", "destination": "/talk-to-a-human" },
{ "source": "/teams/customer-success", "destination": "/teams/sales-cs" },
@@ -1292,18 +1218,9 @@
"destination": "/surveys#pricing",
"has": [{ "type": "query", "key": "product", "value": "surveys" }]
},
{
"source": "/handbook/growth/sales/icp",
"destination": "/handbook/growth/marketing/icp"
},
{
"source": "/teams/pipeline",
"destination": "/teams/cdp"
},
{
"source": "/teams/feature-success",
"destination": "/teams/feature-flags"
},
{ "source": "/handbook/growth/sales/icp", "destination": "/handbook/growth/marketing/icp" },
{ "source": "/teams/pipeline", "destination": "/teams/cdp" },
{ "source": "/teams/feature-success", "destination": "/teams/feature-flags" },
{ "source": "/docs/cdp/airbyte-export", "destination": "/docs/cdp/batch-exports" },
{ "source": "/docs/cdp/avo-inspector", "destination": "/docs/cdp/destinations/avo" },
{ "source": "/docs/cdp/customer-io", "destination": "/docs/cdp/destinations/customerio" },
@@ -1363,107 +1280,35 @@
"source": "/docs/session-replay/react-native",
"destination": "/docs/session-replay/installation?tab=React+Native"
},
{
"source": "/teams/comms",
"destination": "/teams/support"
},
{
"source": "/docs/session-replay/flutter",
"destination": "/docs/session-replay/installation?tab=Flutter"
},
{
"source": "/teams/customer-comms",
"destination": "/teams/support"
},
{ "source": "/teams/comms", "destination": "/teams/support" },
{ "source": "/docs/session-replay/flutter", "destination": "/docs/session-replay/installation?tab=Flutter" },
{ "source": "/teams/customer-comms", "destination": "/teams/support" },
{ "source": "/apps", "destination": "/cdp", "statusCode": 302 },
{
"source": "/docs/data-warehouse/setup/azure-blob",
"destination": "/docs/cdp/sources/azure-blob"
},
{
"source": "/docs/data-warehouse/setup/azure-db",
"destination": "/docs/cdp/sources/azure-db"
},
{
"source": "/docs/data-warehouse/setup/chargebee",
"destination": "/docs/cdp/sources/chargebee"
},
{
"source": "/docs/data-warehouse/setup/gcs",
"destination": "/docs/cdp/sources/gcs"
},
{
"source": "/docs/data-warehouse/setup/hubspot",
"destination": "/docs/cdp/sources/hubspot"
},
{
"source": "/docs/data-warehouse/setup/index",
"destination": "/docs/cdp/sources"
},
{
"source": "/docs/data-warehouse/setup/mysql",
"destination": "/docs/cdp/sources/mysql"
},
{
"source": "/docs/data-warehouse/setup/postgres",
"destination": "/docs/cdp/sources/postgres"
},
{
"source": "/docs/data-warehouse/setup/r2",
"destination": "/docs/cdp/sources/r2"
},
{
"source": "/docs/data-warehouse/setup/s3",
"destination": "/docs/cdp/sources/s3"
},
{
"source": "/docs/data-warehouse/setup/salesforce",
"destination": "/docs/cdp/sources/salesforce"
},
{
"source": "/docs/data-warehouse/setup/snowflake",
"destination": "/docs/cdp/sources/snowflake"
},
{
"source": "/docs/data-warehouse/setup/stripe",
"destination": "/docs/cdp/sources/stripe"
},
{
"source": "/docs/data-warehouse/setup/vitally",
"destination": "/docs/cdp/sources/vitally"
},
{
"source": "/docs/data-warehouse/setup/zendesk",
"destination": "/docs/cdp/sources/zendesk"
},
{
"source": "/docs/data-warehouse/setup/",
"destination": "/docs/data-warehouse/query/"
},
{
"source": "/handbook/growth/marketing/content",
"destination": "/handbook/content-and-docs"
},
{
"source": "/handbook/company/docs",
"destination": "/handbook/content-and-docs/docs"
},
{
"source": "/handbook/growth/marketing/newsletter",
"destination": "/handbook/content-and-docs/newsletter"
},
{
"source": "/handbook/growth/marketing/youtube",
"destination": "/handbook/content-and-docs/youtube"
},
{ "source": "/docs/data-warehouse/setup/azure-blob", "destination": "/docs/cdp/sources/azure-blob" },
{ "source": "/docs/data-warehouse/setup/azure-db", "destination": "/docs/cdp/sources/azure-db" },
{ "source": "/docs/data-warehouse/setup/chargebee", "destination": "/docs/cdp/sources/chargebee" },
{ "source": "/docs/data-warehouse/setup/gcs", "destination": "/docs/cdp/sources/gcs" },
{ "source": "/docs/data-warehouse/setup/hubspot", "destination": "/docs/cdp/sources/hubspot" },
{ "source": "/docs/data-warehouse/setup/index", "destination": "/docs/cdp/sources" },
{ "source": "/docs/data-warehouse/setup/mysql", "destination": "/docs/cdp/sources/mysql" },
{ "source": "/docs/data-warehouse/setup/postgres", "destination": "/docs/cdp/sources/postgres" },
{ "source": "/docs/data-warehouse/setup/r2", "destination": "/docs/cdp/sources/r2" },
{ "source": "/docs/data-warehouse/setup/s3", "destination": "/docs/cdp/sources/s3" },
{ "source": "/docs/data-warehouse/setup/salesforce", "destination": "/docs/cdp/sources/salesforce" },
{ "source": "/docs/data-warehouse/setup/snowflake", "destination": "/docs/cdp/sources/snowflake" },
{ "source": "/docs/data-warehouse/setup/stripe", "destination": "/docs/cdp/sources/stripe" },
{ "source": "/docs/data-warehouse/setup/vitally", "destination": "/docs/cdp/sources/vitally" },
{ "source": "/docs/data-warehouse/setup/zendesk", "destination": "/docs/cdp/sources/zendesk" },
{ "source": "/docs/data-warehouse/setup/", "destination": "/docs/data-warehouse/query/" },
{ "source": "/handbook/growth/marketing/content", "destination": "/handbook/content-and-docs" },
{ "source": "/handbook/company/docs", "destination": "/handbook/content-and-docs/docs" },
{ "source": "/handbook/growth/marketing/newsletter", "destination": "/handbook/content-and-docs/newsletter" },
{ "source": "/handbook/growth/marketing/youtube", "destination": "/handbook/content-and-docs/youtube" },
{
"source": "/handbook/growth/marketing/writing-for-posthog",
"destination": "/handbook/content-and-docs/writing-for-posthog"
},
{
"source": "/handbook/growth/marketing/seo-guide",
"destination": "/handbook/content-and-docs/seo-guide"
},
{ "source": "/handbook/growth/marketing/seo-guide", "destination": "/handbook/content-and-docs/seo-guide" },
{
"source": "/handbook/growth/marketing/posthog-style-guide",
"destination": "/handbook/content-and-docs/posthog-style-guide"
@@ -1472,29 +1317,29 @@
"source": "/handbook/growth/marketing/tags-and-categories",
"destination": "/handbook/content-and-docs/tags-and-categories"
},
{
"source": "/handbook/growth/marketing/components",
"destination": "/handbook/content-and-docs/components"
},
{
"source": "/handbook/growth/marketing/paid",
"destination": "/handbook/words-and-pictures/paid"
},
{
"source": "/features/self-hosted",
"destination": "/docs/self-host"
},
{
"source": "/docs/settings/organizations-and-projects",
"destination": "/docs/settings/organizations"
},
{
"source": "/docs/settings/role-based-access",
"destination": "/docs/settings/access-control"
},
{
"source": "/community/profiles/59",
"destination": "/community/profiles/29070"
}
{ "source": "/handbook/growth/marketing/components", "destination": "/handbook/content-and-docs/components" },
{ "source": "/handbook/growth/marketing/paid", "destination": "/handbook/words-and-pictures/paid" },
{ "source": "/features/self-hosted", "destination": "/docs/self-host" },
{ "source": "/docs/settings/organizations-and-projects", "destination": "/docs/settings/organizations" },
{ "source": "/docs/settings/role-based-access", "destination": "/docs/settings/access-control" },
{ "source": "/community/profiles/59", "destination": "/community/profiles/29070" },
{ "source": "/cdp/avo-inspector", "destination": "/docs/cdp/destinations/avo" },
{ "source": "/cdp/customer-io", "destination": "/docs/cdp/destinations/customerio" },
{ "source": "/cdp/downsampling", "destination": "/docs/cdp/downsampling" },
{ "source": "/cdp/engage-connector", "destination": "/docs/cdp/destinations/engage" },
{ "source": "/cdp/filter-out", "destination": "/docs/cdp/filter-out" },
{ "source": "/cdp/geoip-enrichment", "destination": "/docs/cdp/geoip-enrichment" },
{ "source": "/cdp/hubspot-connector", "destination": "/docs/cdp/sources/hubspot" },
{ "source": "/cdp/intercom", "destination": "/docs/cdp/destinations/intercom" },
{ "source": "/cdp/property-filter", "destination": "/docs/cdp/property-filter" },
{ "source": "/cdp/rudderstack-export", "destination": "/docs/cdp/destinations/rudderstack" },
{ "source": "/cdp/salesforce-connector", "destination": "/docs/cdp/destinations/salesforce" },
{ "source": "/cdp/schema-enforcer", "destination": "/docs/cdp/schema-enforcer" },
{ "source": "/cdp/sendgrid-connector", "destination": "/docs/cdp/destinations/sendgrid" },
{ "source": "/cdp/taxonomy-standardizer", "destination": "/docs/cdp/taxonomy-standardizer" },
{ "source": "/cdp/timestamp-parser", "destination": "/docs/cdp/timestamp-parser" },
{ "source": "/cdp/url-normalizer", "destination": "/docs/cdp/url-normalizer" },
{ "source": "/cdp/url-query", "destination": "/docs/cdp/url-query" },
{ "source": "/cdp/user-agent-populator", "destination": "/docs/cdp/user-agent-populator" }
]
}