Start here
Contents
Data pipelines has three moving parts, and you rarely need all of them at once. Start with the one that matches the problem you have, then add the others as you go.
1. Decide what you're building
Getting data out of PostHog is the most common starting point. If you want events delivered as they happen – to Slack, a webhook, a CRM, an ad platform – use a realtime destination. If you want reliable, scheduled delivery of large volumes into a warehouse, use a batch export instead.
Getting data into PostHog means linking a source. PostHog syncs from hundreds of tools, and you can also push data in yourself with an incoming webhook. Once a source is linked, you can join it to your event and person data in the data warehouse.
Changing events before they're stored is a transformation. Transformations run during ingestion, so they can add properties, rewrite them, or drop events entirely.
2. Create it from a template
In the PostHog web app, open the pipeline section for what you're building and pick a template. Most templates only need credentials and a filter for which events should trigger them. Every template is a Hog function underneath, so you can open the code and edit it if the defaults don't fit.
If nothing matches, describe what you want and let PostHog AI write the function.
3. Test before you enable it
Every function has a test-invoke step that runs it against a real recent event and shows you the request it would send, without delivering anything. Use it to confirm your filters match and your payload looks right.
4. Enable it and watch the logs
Turn the function on, then check its logs and metrics for the first few minutes. Successes, failures, and filtered-out events are all counted separately, so you can tell "nothing matched" apart from "the destination rejected it." If something looks wrong, see troubleshooting.