> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Optimizely as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/optimizely > **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 - [Adding a data source](#adding-a-data-source) - [Available tables](#available-tables) - [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 Optimizely connector syncs your experimentation configuration data – projects, experiments, audiences, events, pages, and campaigns – into PostHog. ## Adding a data source 1. Go to the [sources tab](https://app.posthog.com/data-management/sources) of the data pipeline section in PostHog. 2. Click **\+ New source** and then click **Link** next to Optimizely. 3. You need a personal access token from Optimizely. In your Optimizely account, go to **Account Settings** > **API Access** and generate a personal access token. Tokens are non-expiring. See the [Optimizely personal access token docs](https://docs.developers.optimizely.com/web-experimentation/docs/personal-access-tokens) for details. 4. Back in PostHog, paste the token into the **Personal access token** field and click **Next**. 5. Select the tables you want to sync, set the sync frequency, then click **Import**. Project-scoped tables (experiments, audiences, events, pages, campaigns) sync data across all projects the token can access. If a project doesn't support a particular feature surface (for example, campaigns on a non-Web project), that project is skipped automatically. ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `projects` | Top-level Optimizely projects | Full refresh | | `experiments` | A/B tests and experiment configurations | Full refresh | | `audiences` | Audience targeting definitions | Full refresh | | `events` | Custom conversion event definitions | Full refresh | | `pages` | Page definitions for web experiments | Full refresh | | `campaigns` | Web campaign configurations | Full refresh | All tables use **full refresh** sync. Optimizely's REST API v2 doesn't expose updated-since filters, and these are low-volume configuration entities, so a full refresh on each sync is the correct approach. Raw event-level data is only available through Optimizely's separate S3 Enriched Events Export and isn't covered by this connector. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Personal access token` | password | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `projects` | A container for experiments, audiences, events, and pages within an Optimizely account. | Full refresh | — | — | | `experiments` | An A/B test or experiment that splits traffic across variations to measure impact. | Full refresh | — | — | | `audiences` | A targetable segment of visitors defined by attribute and behavior conditions. | Full refresh | — | — | | `events` | A tracked visitor action (click, pageview, or custom event) used as an experiment metric. | Full refresh | — | — | | `pages` | A definition of a page or set of URLs where experiments and events can run. | Full refresh | — | — | | `campaigns` | A personalization campaign that delivers experiences to targeted audiences across pages. | Full refresh | — | — |