> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Convex as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/convex > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://app.posthog.com` (app host for links). ## On this page - [Prerequisites](#prerequisites) - [Linking Convex to PostHog](#linking-convex-to-posthog) - [Configuration](#configuration) - [Supported tables](#supported-tables) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d) Let AI connect your sources for you Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog. `npx @posthog/wizard warehouse` ![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png) ![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you The Convex connector can sync your Convex database tables to PostHog. > **Note:** Convex streaming exports require the **Convex Professional plan**. See the [Convex pricing page](https://www.convex.dev/pricing) for details. ## Prerequisites You need two things from your Convex project: - **Deploy URL** – must be in the format `.convex.cloud`. Find it in the Convex Dashboard under **Settings** > **URL & Deploy Key**. - **Deploy key** – found in the same location: **Settings** > **URL & Deploy Key**. ## Linking Convex to PostHog 1. Go to the [Data pipeline page](https://app.posthog.com/data-management/sources) and the sources tab in PostHog 2. Click **New source** and select Convex 3. Enter your **Deploy URL** and **Deploy key** 4. Click **Next**, select the tables you want to sync, and then press **Import** Once the syncs are complete, you can start using Convex data in PostHog. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Deployment URL` | text | Yes | | `Deploy key` | password | Yes | ## Supported tables The tables available from this source are discovered from your account when you connect it, so the exact list depends on your data. Once connected, you can pick which tables to sync from the [sources tab](https://app.posthog.com/data-management/sources). ### Component tables Convex lets you install [components](https://docs.convex.dev/components) — self-contained packages (like `betterAuth`) that bring their own tables outside the default app component. PostHog can sync tables from both your root component and any installed components: - **Root component tables** appear with their original name (e.g., `users`, `messages`) - **Component tables** appear with a component prefix using dot notation (e.g., `betterAuth.users`, `betterAuth.sessions`) To sync components in older Convex sources, you currently need to delete the source and re-add it for PostHog to pick up component tables. ### How syncing works Convex uses its streaming export API to sync data: - **Initial sync** – paginates through a full table snapshot using Convex's `/api/list_snapshot` endpoint. - **Incremental sync** – fetches only changed documents using Convex's `/api/document_deltas` endpoint. All tables support incremental sync via the `_ts` field, which is a nanosecond mutation timestamp. - **Partitioning** – data is datetime-partitioned on the `_creationTime` field. > **Note:** If the sync cursor is older than approximately 30 days (Convex's retention window), a full resync is required. #### Inbound IP addresses We use a set of IP addresses to access your instance. To ensure this connector works, add these IPs to your inbound security rules: | US | EU | | --- | --- | | 44.205.89.55 | 3.75.65.221 | | 52.4.194.122 | 18.197.246.42 | | 44.208.188.173 | 3.120.223.253 |