setting-up-warehouse-properties

Maps warehouse table columns to PostHog person or group properties via reverse ETL.

713|118|Updated Aug 11, 2020
One-click install
npx skills add https://github.com/PostHog/posthog-foss --skill setting-up-warehouse-properties
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: setting-up-warehouse-properties
Source: https://github.com/PostHog/posthog-foss/tree/main/products/customer_analytics/skills/setting-up-warehouse-properties
Command: npx skills add https://github.com/PostHog/posthog-foss --skill setting-up-warehouse-properties

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Teams often run cron jobs that send $set identify events from their data warehouse into PostHog to keep person and group properties current. This Skill replaces that pipeline by mapping columns from a synced warehouse table or materialized view directly onto PostHog properties, on the table's existing sync schedule.

Core Features & Use Cases

  • Whole-table column mapping: Proposes a complete column_property_map in a single call, excluding identifier columns, identity properties like email, and sensitive columns, while flagging collisions with existing properties.
  • Definition and source creation: Creates the custom property definition (person or group target) and binds it to a synced table (external_data_schema) or materialized view (saved_query) with the chosen key column.
  • Backfill and run verification: Triggers backfills for historical rows and reads the run funnel (rows_read, changed, existing, produced) to diagnose mappings that appear to do nothing.
  • Use Case: A user says "sync my postgres.customer_attributes columns to person properties" — the Skill finds the synced table, confirms the distinct ID column, proposes the mapping, creates it, and verifies the first run.

Quick Start

Map the columns of my synced Postgres customer_attributes table to PostHog person properties and run the first backfill.

Frequently Asked Questions about setting-up-warehouse-properties

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sync Postgres columns to PostHog person properties?

Once the table syncs into the PostHog warehouse, create a custom property definition and a property source binding the table's schema with a column_property_map and key column. The sync then writes those columns as person properties on the table's own schedule.

How do I replace a daily identify cron job with reverse ETL into PostHog?

Warehouse properties replace cron jobs that send $set identify events by pulling column values directly from a synced warehouse table or materialized view. The mapping updates existing people or groups automatically whenever the underlying table syncs.

Can warehouse properties create new people in PostHog?

No, the sync only updates people or groups that already exist in PostHog. Rows whose identifier matches nobody are skipped and reported as skipped_missing_person in the run funnel.

Why did my warehouse property mapping do nothing after syncing?

Check the run funnel via custom-property-sources-runs-list. If rows_read is zero the table has not synced since creation; if existing is zero, the key column almost certainly does not match PostHog distinct IDs or group keys.

Do null warehouse values clear existing person properties?

No, null values are skipped rather than written. A column that is null for a row leaves the existing property value unchanged, so warehouse properties cannot be used to clear a property.

Can I edit the column mapping of an existing warehouse property source?

No, the mapping and table binding are create-only. To change which columns are mapped, delete the property and create it again with the corrected column_property_map.