# PostHog schema ERD

Table and field reference for the Fivetran PostHog connector.

## Table & Field Reference

### annotation

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_by_uuid | Unknown | FK |
| project_id | Unknown | FK |
| content | Unknown |  |
| created_at | Unknown |  |
| created_by_id | Unknown |  |
| creation_type | Unknown |  |
| dashboard_item | Unknown |  |
| date_marker | Unknown |  |
| deleted | Unknown |  |
| scope | Unknown |  |
| updated_at | Unknown |  |

### session

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_id | Unknown | FK |
| is_numerical | Unknown |  |
| is_seen_on_filtered_events | Unknown |  |
| name | Unknown |  |
| property_type | Unknown |  |
| tags | Json |  |

### cohort

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_by_uuid | Unknown | FK |
| count | Unknown |  |
| created_at | Unknown |  |
| created_by_id | Unknown |  |
| deleted | Unknown |  |
| description | Unknown |  |
| error_calculating | Unknown |  |
| filters_properties_type | Unknown |  |
| filters_properties_value | Json |  |
| groups | Json |  |
| is_calculating | Unknown |  |
| is_static | Unknown |  |
| last_calculation | Unknown |  |
| name | Unknown |  |
| project_id | Unknown |  |

### app_url

| Column | Type | Keys |
| --- | --- | --- |
| app_url | Unknown | PK |
| project_id | Unknown | PK, FK |

### test_account_filter

| Column | Type | Keys |
| --- | --- | --- |
| _fivetran_id | String | PK |
| project_id | Unknown | FK |
| key | Unknown |  |
| operator | Unknown |  |
| type | Unknown |  |
| value | Json |  |

### path_cleaning_filter

| Column | Type | Keys |
| --- | --- | --- |
| _fivetran_id | String | PK |
| project_id | Unknown | FK |
| key | Unknown |  |
| operator | Unknown |  |
| type | Unknown |  |
| value | Json |  |

### persons_display_name_property

| Column | Type | Keys |
| --- | --- | --- |
| person_display_name_property | Unknown | PK |
| project_id | Unknown | PK, FK |

### live_events_column

| Column | Type | Keys |
| --- | --- | --- |
| live_events_column | Unknown | PK |
| project_id | Unknown | PK, FK |

### project

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| access_control | Unknown |  |
| anonymize_ips | Unknown |  |
| completed_snippet_onboarding | Unknown |  |
| created_at | Unknown |  |
| data_attribute | Json |  |
| effective_membership_level | Unknown |  |
| excluded_event_name | Json |  |
| excluded_event_property_name | Json |  |
| excluded_person_property_name | Json |  |
| has_group_types | Unknown |  |
| ingested_event | Unknown |  |
| is_demo | Unknown |  |
| name | Unknown |  |
| organization | Unknown |  |
| primary_dashboard | Unknown |  |
| session_recording_opt_in | Unknown |  |
| slack_incoming_webhook | Unknown |  |
| timezone | Unknown |  |
| updated_at | Unknown |  |
| uuid | Unknown |  |

### users

| Column | Type | Keys |
| --- | --- | --- |
| uuid | Unknown | PK |
| anonymize_data | Unknown |  |
| date_joined | Unknown |  |
| distinct_id | Unknown |  |
| email | Unknown |  |
| email_opt_in | Unknown |  |
| first_name | Unknown |  |
| has_password | Unknown |  |
| is_impersonated | Unknown |  |
| is_staff | Unknown |  |
| toolbar_mode | Unknown |  |

### insight_tag

| Column | Type | Keys |
| --- | --- | --- |
| tags | Unknown | PK |
| insight_id | Unknown | PK, FK |

### insight

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_by_uuid | Unknown | FK |
| last_modified_by_uuid | Unknown | FK |
| project_id | Unknown | FK |
| created_at | Unknown |  |
| created_by_id | Unknown |  |
| dashboards | Json |  |
| deleted | Unknown |  |
| derived_name | Unknown |  |
| description | Unknown |  |
| effective_privilege_level | Unknown |  |
| effective_restriction_level | Unknown |  |
| favorited | Unknown |  |
| filters_hash | Unknown |  |
| is_sample | Unknown |  |
| last_modified_at | Unknown |  |
| last_modified_by_id | Unknown |  |
| last_refresh | Unknown |  |
| name | Unknown |  |
| orders | Unknown |  |
| refreshing | Unknown |  |
| result | Json |  |
| saved | Unknown |  |
| short_id | Unknown |  |
| timezone | Json |  |
| updated_at | Unknown |  |
| filter_** |  |  |

### person_name

| Column | Type | Keys |
| --- | --- | --- |
| person_name | Unknown | PK |
| person_id | Unknown | PK, FK |

### person

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| is_identified | Unknown |  |
| name | Unknown |  |
| project_listing_person_id | Unknown |  |
| type | Unknown |  |
| uuid | Unknown |  |
| property_** |  |  |

### cohort_person

| Column | Type | Keys |
| --- | --- | --- |
| cohort_id | Unknown | PK, FK |
| person_uuid | Unknown | PK, FK |
| project_id | Unknown | FK |
| created_at | Unknown |  |
| is_identified | Unknown |  |
| matched_recordings | Json |  |
| name | Unknown |  |
| type | Unknown |  |
| value_at_data_point | Unknown |  |

### session_recording

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| person_uuid | Unknown | FK |
| project_id | Unknown | FK |
| active_seconds | Unknown |  |
| activity_score | Unknown |  |
| click_count | Unknown |  |
| console_error_count | Unknown |  |
| console_log_count | Unknown |  |
| console_warn_count | Unknown |  |
| distinct_id | Unknown |  |
| end_time | Unknown |  |
| inactive_seconds | Unknown |  |
| keypress_count | Unknown |  |
| mouse_activity_count | Unknown |  |
| ongoing | Unknown |  |
| person_id | Unknown |  |
| recording_duration | Unknown |  |
| snapshot_source | Unknown |  |
| start_time | Unknown |  |
| start_url | Unknown |  |
| storage | Unknown |  |
| viewed | Unknown |  |

### filter_group_property

| Column | Type | Keys |
| --- | --- | --- |
| _fivetran_id | String | PK |
| feature_flag_filter_group_index | Unknown | FK |
| feature_flag_id | Unknown | FK |
| key | Unknown |  |
| operator | Unknown |  |
| type | Unknown |  |
| value | Json |  |

### feature_flag_filter_group

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| feature_flag_id | Unknown | PK, FK |
| rollout_percentage | Unknown |  |

### feature_flag

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_by_uuid | Unknown | FK |
| project_id | Unknown | FK |
| active | Unknown |  |
| created_at | Unknown |  |
| created_by_id | Unknown |  |
| deleted | Unknown |  |
| ensure_experience_continuity | Unknown |  |
| filters_multivariate | Json |  |
| is_simple_flag | Unknown |  |
| key | Unknown |  |
| name | Unknown |  |
| rollout_percentage | Unknown |  |

### batch_export_event

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| distinct_id | Unknown | FK |
| created_at | Instant |  |
| elements_chain | Unknown |  |
| event | Unknown |  |
| inserted_at | Instant |  |
| person_id | Unknown |  |
| project_id | Unknown |  |
| time_stamp | Instant |  |
| person_properties_** |  |  |
| properties_** |  |  |

## Relationships

- annotation(created_by_uuid) → users(uuid)
- annotation(project_id) → project(id)
- session(project_id) → project(id)
- cohort(created_by_uuid) → users(uuid)
- app_url(project_id) → project(id)
- test_account_filter(project_id) → project(id)
- path_cleaning_filter(project_id) → project(id)
- persons_display_name_property(project_id) → project(id)
- live_events_column(project_id) → project(id)
- insight_tag(insight_id) → insight(id)
- insight(created_by_uuid) → users(uuid)
- insight(last_modified_by_uuid) → users(uuid)
- insight(project_id) → project(id)
- person_name(person_id) → person(id)
- cohort_person(person_uuid) → person(id)
- cohort_person(project_id) → cohort(project_id)
- cohort_person(cohort_id) → cohort(id)
- session_recording(person_uuid) → person(id)
- session_recording(project_id) → project(id)
- filter_group_property(feature_flag_filter_group_index) → feature_flag_filter_group(index)
- filter_group_property(feature_flag_id) → feature_flag_filter_group(feature_flag_id)
- feature_flag_filter_group(feature_flag_id) → feature_flag(id)
- feature_flag(created_by_uuid) → users(uuid)
- feature_flag(project_id) → project(id)
- batch_export_event(distinct_id) → person_name(person_name)
