Sources

PostHog

Connect one PostHog Cloud project with scoped OAuth, choose the history window and modules, and verify every warehouse table.

Connect a PostHog Cloud project in about five minutes. Embrasure uses PostHog OAuth and asks you to authorize exactly one project. You do not create a PostHog app, wait for Marketplace approval, copy an API key, or provide a storage bucket.

Have an agent set it up instead:

No app approval is required

Embrasure uses PostHog's recommended Client ID Metadata Document flow. PostHog says this flow has no client-registration wait, and verification is optional. An unverified notice on PostHog's authorization screen does not block the connection.

Before you start

You need:

  • An Embrasure workspace administrator
  • A PostHog member who can authorize the project you want to sync
  • The project's PostHog Cloud region, visible in its browser address

Only PostHog US Cloud and EU Cloud are supported. Self-hosted PostHog is not supported by this connector.

Connect PostHog

Open the PostHog source

In Embrasure, open WarehouseIngestion. Select Connect warehouse source for the first source, or New sync if the workspace already has ingestion syncs. Find PostHog under Add a warehouse source.

Choose the region

Match the selector to the address where you use PostHog:

PostHog addressEmbrasure region
https://us.posthog.comUS
https://eu.posthog.comEU

PostHog uses these private API domains for US and EU Cloud. See PostHog's API domain reference.

Choose history and optional data

Initial history controls the first scan of events, persons, sessions, and survey responses.

ChoiceUse it when
Last 90 daysRecommended default for a fast, useful first sync.
Last 365 daysYou need annual comparisons or seasonality.
Full historyYou need everything since the PostHog project was created and can wait for the larger first sync.

The history choice affects the initial scan only. Later syncs continue from PostHog's ingestion timestamp, so delayed client events are not skipped.

Optional modules add specialized tables:

ModuleTablesWhat is included
Surveyssurveys, survey_responsesSurvey definitions and response rows.
Session recording metadatasession_recordingsRecording duration, activity counts, URLs, person summary, and other metadata. Raw replay snapshots and video are not included.

PostHog's session recording API reference confirms that the API does not return raw replay JSON.

Authorize exactly one project

Select Connect. PostHog opens its authorization screen and shows Embrasure's requested scopes. Choose exactly one project, review the access, and approve it.

Embrasure requests the complete connector scope set on every connection. Turning an optional module off controls which tables are ingested, but does not reduce the scopes shown during authorization.

ScopeWhy Embrasure needs it
batch_export:read, batch_export:writeCreate, check, and download file-export jobs for events, persons, and sessions. The write scope creates export jobs; it does not edit product analytics rows.
project:readVerify the one project you authorized.
event_definition:read, property_definition:read, action:readRead the project's event taxonomy and reusable actions.
group:readRead group types and group properties.
feature_flag:read, experiment:readRead rollout and experiment definitions.
survey:read, query:readRead survey definitions and response rows.
session_recording:readRead recording metadata, not replay contents.

These are scoped OAuth permissions, not a project token or personal API key. PostHog documents the same least-privilege model in its OAuth guide and API reference.

Validate and run the first sync

PostHog returns you to Embrasure. Catalog discovery should list the core tables and any optional tables you selected. Choose the tables, confirm the destination database, run validation, then select Start sync.

Do not call setup complete until:

  1. Authorization returns without a missing-scope warning.
  2. Catalog discovery lists the expected tables.
  3. Validation reports no blocked tables.
  4. The first run succeeds and the destination contains PostHog rows.
  5. A second run succeeds without duplicating existing rows.

Tables

The connector always makes these ten core tables available:

AreaTables
Product usageevents, persons, sessions
Taxonomy and audiencesevent_definitions, property_definitions, actions, groups, group_types
Delivery and learningfeature_flags, experiments

Selecting both optional modules adds surveys, survey_responses, and session_recordings for a total of thirteen tables.

Troubleshooting

SymptomWhat to do
PostHog says the grant is missing scopesReconnect and approve every scope shown. Existing connections made before a scope expansion must be authorized again.
No project is availableConfirm the US or EU region, then confirm your PostHog user can access the intended project.
Embrasure asks you to choose a projectAuthorize exactly one project. A grant with zero or several projects cannot be stored safely.
The authorization screen says the application is unverifiedContinue after reviewing the name, project, and scopes. PostHog verification is optional and is not Marketplace approval.
The first sync takes a long timeA 365-day or full backfill is much larger. Use the 90-day default unless older history is required.
Session recordings have no replay contentThis is expected. The connector imports recording metadata only because PostHog's API does not expose raw replay snapshots.
An optional table is missingConfirm the module was selected before OAuth, then run catalog discovery. If it was not selected, create a new PostHog connection with that module enabled.

Security boundary

Embrasure stores the short-lived OAuth access token, long-lived refresh token, selected project ID, region, and source options with the connector's encrypted credentials. It does not store your PostHog password, project token, or personal API key.

The connector creates read-oriented export jobs and calls private read endpoints. It does not install code in PostHog, modify feature flags or experiments, or require a PostHog Marketplace app.