> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Doppler as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/doppler > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://us.posthog.com` or `https://app.posthog.com` (app host for links). ## On this page - [Prerequisites](#prerequisites) - [Adding a data source](#adding-a-data-source) - [Sync modes](#sync-modes) - [Configuration](#configuration) - [Supported tables](#supported-tables) - [Troubleshooting](#troubleshooting) ![](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 Doppler connector syncs your secrets management metadata into the PostHog Data warehouse: projects, environments, configs, workplace members, and the activity log of config and access changes. This is useful for audit, change tracking, and compliance reporting. Secret values are never synced. ## Prerequisites You need a Doppler API token with read access to your workplace and the projects you want to sync. A [personal token](https://docs.doppler.com/docs/personal-tokens) or a [service account token](https://docs.doppler.com/docs/service-accounts) both work. Service tokens scoped to a single config are too narrow for this connector. ## Adding a data source 1. In PostHog, go to the [Sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section. 2. Click **\+ New source** and click **Link** next to this source. 3. Enter your credentials (see [Configuration](#configuration) below) and click **Next**. 4. Select the tables you want to sync, choose a sync method and frequency, then click **Import**. Once the syncs are complete, you can start querying this data in PostHog. When linking Doppler, you'll need: - **API token** – create a personal token under **Settings → API** in your [Doppler dashboard](https://dashboard.doppler.com), or create a service account with read access and generate a token for it. ## Sync modes Each table can be synced in one of several modes, depending on what the source supports: - **Webhook** (when available) – the source pushes changes to PostHog in real time. Fastest freshness, lowest ongoing cost, and the only mode that reliably captures updates and deletes. - **Incremental** – only new or updated rows are synced on each run, using a cursor field (such as an `updated_at` timestamp). Cheaper than a full refresh, but deletes aren't captured. - **Append only** – new rows are appended using a cursor field; existing rows are never updated. Ideal for immutable, append-only tables like event logs. - **Full refresh** – the whole table is reloaded on every sync. Use it when a table has no reliable cursor or when you need deletions reflected. See [sync methods](https://posthog.com/docs/data-pipelines/sources.md#sync-methods) for a full explanation of how each mode works and how to choose between them. The activity log is append-only, so incremental sync is recommended for the `activity_logs` table: each sync only fetches entries newer than the last synced one. The remaining tables are small and only support full refresh. ## Configuration | Option | Type | Required | | --- | --- | --- | | `API token` | password | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `projects` | A Doppler project, the top-level grouping of environments and configs for an application or service. | Full refresh | — | — | | `environments` | An environment within a Doppler project (e.g. development, staging, production). | Full refresh | — | — | | `configs` | A config within a Doppler project environment, holding a set of secrets. Secret values are not synced. | Full refresh | — | — | | `activity_logs` | Workplace activity log of project, config, and access changes. Incremental syncs stop paging once they reach already-synced entries. | Incremental, Full refresh | created\_at | — | | `workplace_users` | Users belonging to the Doppler workplace, with their workplace-level access role. | Full refresh | — | — | | `groups` | User groups in the Doppler workplace, used to manage project access in bulk. | Full refresh | — | — | | `service_accounts` | Machine identities in the Doppler workplace used for programmatic access. | Full refresh | — | — | | `invites` | Pending invitations to join the Doppler workplace. | Full refresh | — | — | | `project_members` | Which workplace users, groups, service accounts, and invites can reach each project. | Full refresh | — | — | | `project_roles` | Project role definitions, including the permissions each role grants. | Full refresh | — | — | | `workplace_roles` | Workplace role definitions, including the permissions each role grants. | Full refresh | — | — | | `config_logs` | Per-config change history of secret edits and rollbacks. This table syncs each config separately, so it takes longer than the others. | Full refresh | — | — | | `workplace` | The Doppler workplace the token belongs to, as a single row. | Full refresh | — | — | | `group_members` | Which workplace users and service accounts belong to each group. | Full refresh | — | — | | `change_requests` | Change requests that propose secret changes for review, with the status of each change unit. | Full refresh | — | — | | `secret_names` | The names of the secrets in each config, without their values. This table syncs each config separately, so it takes longer than the others. | Full refresh | — | — | ## Troubleshooting - If you see an authentication error, your API token is invalid or has been revoked. Create a new token in your Doppler dashboard, then reconnect. - If you see a permissions error, the token is missing read access to your workplace or one of its projects. Check the token's access, then reconnect. If your sync is failing or data looks wrong, see the [Data warehouse troubleshooting guide](https://posthog.com/docs/data-warehouse/troubleshooting.md). If that doesn't help, [contact support](https://us.posthog.com/#panel=support%3Asupport%3Adata_warehouse%3A%3Atrue) – we're happy to help.