> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Data pipelines Canonical URL: https://posthog.com/docs/data-pipelines ## On this page - [Where you can use it](#where-you-can-use-it) - [What's included](#whats-included) - [Common use cases](#common-use-cases) Data pipelines is how you move data from one place to another. You can move data independently without it touching any other PostHog tools, or in and out of PostHog. It works with both your PostHog data – events, persons, sessions, and groups – and data from external tools like Stripe, HubSpot, or your own Postgres database. It's made up of three parts: - **[Sources](https://posthog.com/docs/data-pipelines/sources.md)** move data from anywhere to anywhere, including syncing data from external tools and databases into PostHog, so you can query it alongside your product data. - **[Transformations](https://posthog.com/docs/data-pipelines/transformations.md)** add, edit, or drop event properties as events are ingested. - **[Destinations](https://posthog.com/docs/data-pipelines/destinations.md)** send data out of PostHog – events to tools like Slack or HubSpot in realtime, [batch exports](https://posthog.com/docs/data-pipelines/batch-exports.md) of your PostHog data to a warehouse, or synced source data written to [your own database](https://posthog.com/docs/data-pipelines/destinations/elt-destinations.md). Realtime destinations and transformations are built from [Hog functions](https://posthog.com/docs/hog.md), which you can configure from a template, write yourself, or have [PostHog AI](https://posthog.com/docs/data-pipelines/hog-functions-ai.md) write for you. [Get started](https://posthog.com/docs/data-pipelines/start-here.md) ## Where you can use it Build and monitor pipelines in the PostHog web app, or create and debug functions from an MCP client or your own systems. PostHog Web Configure sources, transformations, and destinations, then watch logs and metrics for each one. [Build a pipeline →](https://posthog.com/docs/data-pipelines/surfaces/web-app.md) PostHog MCP Create, update, test-invoke, and debug pipeline functions from any MCP client or AI editor. [Manage pipelines →](https://posthog.com/docs/data-pipelines/surfaces/mcp.md) API Manage Hog functions and batch exports programmatically, so pipelines live in your own config. [Use the API →](https://posthog.com/docs/data-pipelines/surfaces/api.md) ## What's included Data pipelines covers the data already in your PostHog project and anything you connect from outside it. Sources bring external data in, transformations reshape events during ingestion, and destinations send both PostHog and source data back out. Sources Sync data from hundreds of tools and databases, upload a file, or push it in yourself with an incoming webhook. [Link a source →](https://posthog.com/docs/data-pipelines/sources.md) Transformations Add, edit, or drop event properties during ingestion, before anything is stored. [Transform events →](https://posthog.com/docs/data-pipelines/transformations.md) Destinations Send events to other tools as they happen, batch export PostHog data to your warehouse, or write source data to your own database. [Send data out →](https://posthog.com/docs/data-pipelines/destinations.md) ## Common use cases Teams most often use data pipelines to bring revenue and CRM data from tools like [Stripe](https://posthog.com/docs/data-pipelines/sources/stripe.md) and [HubSpot](https://posthog.com/docs/data-pipelines/sources/hubspot.md) into PostHog, to keep a warehouse in sync with product data, to push events into tools like [Slack](https://posthog.com/docs/data-pipelines/destinations/slack.md), [HubSpot](https://posthog.com/docs/data-pipelines/destinations/hubspot.md), or [Intercom](https://posthog.com/docs/data-pipelines/destinations/intercom.md) over [webhooks](https://posthog.com/docs/data-pipelines/destinations/webhook.md), and to enforce a schema at ingestion so bad events never make it into analytics. Transformations also help you label events on the way in – setting a property like `user_tier` or `page_category` – which makes downstream metrics and [SQL queries](https://posthog.com/docs/data-warehouse/sql.md) much easier to write.