# Braze schema ERD

Table and field reference for the Fivetran Braze connector.

## Table & Field Reference

### canvas_conversion_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_conversion_behavior_id | String | FK |
| canvas_id | String | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| user_id | String | FK |
| app_id | String |  |
| canvas_step_id | String |  |
| canvas_step_updated_at | Instant |  |
| event_type | String |  |
| external_user_id | String |  |
| time | Instant |  |
| timezone | String |  |

### whatsapp_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| action | String |  |
| app_group_id | String |  |
| catalog_id | String |  |
| dispatch_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| flow_id | String |  |
| from_phone_number | String |  |
| in_reply_to | String |  |
| inbound_phone_number | String |  |
| media_urls | Json |  |
| message_body | String |  |
| message_extras | String |  |
| message_id | String |  |
| product_id | String |  |
| provider_error_code | String |  |
| provider_error_title | String |  |
| quick_reply_text | String |  |
| send_id | String |  |
| short_url | String |  |
| subscription_group_id | String |  |
| template_name | String |  |
| time | Instant |  |
| timezone | String |  |
| to_phone_number | String |  |
| url | String |  |
| user_agent | String |  |
| user_phone_number | String |  |

### card_tag

| Column | Type | Keys |
| --- | --- | --- |
| card_id | String | PK |
| tag | String | PK |
| card_updated_at | Instant | FK |

### card_extra

| Column | Type | Keys |
| --- | --- | --- |
| card_id | String | PK |
| key | String | PK |
| card_updated_at | Instant | FK |
| error | Boolean |  |
| message | String |  |
| value | String |  |

### user_push_token

| Column | Type | Keys |
| --- | --- | --- |
| index | Int | PK |
| user_id | String | PK, FK |
| app | String |  |
| device_id | String |  |
| notifications_enabled | Boolean |  |
| platform | String |  |
| token | String |  |

### webhook_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| app_group_id | String |  |
| content_length | Int |  |
| dispatch_id | String |  |
| endpoint_url | String |  |
| event_type | String |  |
| external_user_id | String |  |
| host | String |  |
| http_status_code | Int |  |
| is_terminal | Boolean |  |
| message_extras | Json |  |
| raw_response | String |  |
| retry_count | Int |  |
| send_id | String |  |
| time | Instant |  |
| timezone | String |  |
| url_path | String |  |
| webhook_duration | Int |  |
| webhook_failure_source | String |  |

### whatsapp_flow_response

| Column | Type | Keys |
| --- | --- | --- |
| key | String | PK |
| event_id | String | PK, FK |
| value | String |  |

### content_card_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| app_group_id | String |  |
| app_id | String |  |
| content_card_id | String |  |
| dispatch_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| message_extras | Json |  |
| send_id | String |  |
| time | Instant |  |
| timezone | String |  |

### device

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| device_model | String |  |
| os_version | String |  |
| platform | String |  |

### canvas_step_progression_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| next_step_id | String | FK |
| user_id | String | FK |
| app_group_id | String |  |
| canvas_entry_id | String |  |
| event_type | String |  |
| exit_reason | String |  |
| external_user_id | String |  |
| is_canvas_entry | Boolean |  |
| progression_type | String |  |
| time | Instant |  |

### in_app_message_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| ad_id | String |  |
| ad_id_type | String |  |
| ad_tracking_enabled | Boolean |  |
| app_group_id | String |  |
| app_id | String |  |
| browser | String |  |
| button_id | String |  |
| card_id | String |  |
| card_updated_at | Instant |  |
| carrier | String |  |
| dispatch_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| resolution | String |  |
| send_id | String |  |
| time | Instant |  |
| timezone | String |  |
| version | String |  |

### canvas_variation

| Column | Type | Keys |
| --- | --- | --- |
| canvas_id | String | PK |
| id | String | PK |
| name | String | PK |
| canvas_updated_at | Instant | FK |

### campaign_variation_analytics

| Column | Type | Keys |
| --- | --- | --- |
| channel | String | PK |
| campaign_id | String | PK, FK |
| time | Instant | PK, FK |
| variation_api_id | String | PK, FK |
| body_clicks | Int |  |
| bounces | Int |  |
| clicks | Int |  |
| conversions | Int |  |
| conversions_1 | Int |  |
| conversions_1_by_send_time | Int |  |
| conversions_2 | Int |  |
| conversions_2_by_send_time | Int |  |
| conversions_3 | Int |  |
| conversions_3_by_send_time | Int |  |
| conversions_by_send_time | Int |  |
| delivered | Int |  |
| delivery_failed | Int |  |
| direct_opens | Int |  |
| enrolled | Int |  |
| errors | Int |  |
| failed | Int |  |
| help | Int |  |
| machine_amp_open | Int |  |
| machine_open | Int |  |
| opens | Int |  |
| opt_out | Int |  |
| read | Int |  |
| rejected | Int |  |
| reported_spam | Int |  |
| revenue | Double |  |
| sent | Int |  |
| sent_to_carrier | Int |  |
| total_clicks | Int |  |
| total_dismissals | Int |  |
| total_impressions | Int |  |
| total_opens | Int |  |
| unique_clicks | Int |  |
| unique_dismissals | Int |  |
| unique_impressions | Int |  |
| unique_opens | Int |  |
| unique_recipients | Int |  |
| unsubscribes | Int |  |

### canvas_experiment_step_entry_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| user_id | String | FK |
| event_type | String |  |
| experiment_split_id | String |  |
| experiment_split_name | String |  |
| experiment_step_id | String |  |
| external_user_id | String |  |
| in_control_group | Boolean |  |
| time | Instant |  |

### canvas_conversion_behavior

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_id | String | PK, FK |
| canvas_updated_at | Instant | FK |
| conversion_behavior | String |  |
| conversion_behavior_index | Int |  |

### location_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| device_id | String | FK |
| user_id | String | FK |
| alt_accuracy | String |  |
| altitude | String |  |
| app_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| latitude | String |  |
| ll_accuracy | String |  |
| longitude | String |  |
| time | Instant |  |

### canvas_experiment_step_conversion_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_conversion_behavior_id | String | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| user_id | String | FK |
| app_id | String |  |
| event_type | String |  |
| experiment_split_id | String |  |
| experiment_split_name | String |  |
| experiment_step_id | String |  |
| external_user_id | String |  |
| time | Instant |  |

### campaign_conversion_behavior

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | PK, FK |
| campaign_updated_at | Instant | FK |
| conversion_behavior | String |  |
| conversion_behavior_index | String |  |
| updated_at | Instant |  |

### newsfeed_impression_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| device_id | String | FK |
| user_id | String | FK |
| app_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| time | Instant |  |

### message_variation

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| updated_at | Instant | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| action | String |  |
| alert | String |  |
| body | String |  |
| channel | String |  |
| extras | Json |  |
| from | String |  |
| headers | String |  |
| image_url | String |  |
| large_image_url | String |  |
| method | String |  |
| name | String |  |
| preheader | String |  |
| reply_to | String |  |
| subject | String |  |
| title | String |  |
| type | String |  |
| url | String |  |

### canvas_entry_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | String | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| user_id | String | FK |
| event_type | String |  |
| external_user_id | String |  |
| in_control_group | String |  |
| time | Instant |  |
| timezone | String |  |

### email_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| app_group_id | String |  |
| bounce_reason | String |  |
| dispatch_id | String |  |
| email_address | String |  |
| esp | String |  |
| event_type | String |  |
| external_user_id | String |  |
| from_domain | String |  |
| ip_pool | String |  |
| is_amp | Boolean |  |
| is_drop | Boolean |  |
| is_suspected_bot_click | Boolean |  |
| link_alias | String |  |
| link_id | String |  |
| machine_open | String |  |
| message_extras | Json |  |
| send_id | String |  |
| sending_ip | String |  |
| suspected_bot_click_reason | Json |  |
| time | Instant |  |
| timezone | String |  |
| url | String |  |
| user_agent | String |  |

### canvas_exit_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| user_id | String | FK |
| app_group_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| time | Instant |  |

### segment

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| updated_at | Instant | PK |
| analytics_tracking_enabled | Boolean |  |
| created_at | Instant |  |
| description | String |  |
| error | Boolean |  |
| message | String |  |
| name | String |  |
| text_description | String |  |

### user

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| attributed_ad | String |  |
| attributed_adgroup | String |  |
| attributed_campaign | String |  |
| attributed_source | String |  |
| country | String |  |
| created_at | Instant |  |
| dob | Instant |  |
| email | String |  |
| email_subscribe | String |  |
| external_id | String |  |
| first_name | String |  |
| gender | String |  |
| home_city | String |  |
| language | String |  |
| last_name | String |  |
| phone | String |  |
| push_subscribe | String |  |
| time_zone | String |  |
| total_revenue | Float |  |

### campaign_analytics

| Column | Type | Keys |
| --- | --- | --- |
| time | Instant | PK |
| campaign_id | String | PK, FK |
| conversions | Int |  |
| conversions_1 | Int |  |
| conversions_1_by_send_time | Int |  |
| conversions_2 | Int |  |
| conversions_2_by_send_time | Int |  |
| conversions_3 | Int |  |
| conversions_3_by_send_time | Int |  |
| conversions_by_send_time | Int |  |
| revenue | Double |  |
| unique_recipients | Int |  |

### attribution_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| user_id | String | FK |
| event_type | String |  |
| external_user_id | String |  |
| source | String |  |
| time | Instant |  |

### segment_tag

| Column | Type | Keys |
| --- | --- | --- |
| tag | String | PK |
| segment_id | String | PK, FK |

### subscription_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| app_group_id | String |  |
| app_id | String |  |
| channel | String |  |
| email_address | String |  |
| event_type | String |  |
| external_user_id | String |  |
| phone_number | String |  |
| send_id | String |  |
| state_change_source | String |  |
| subscription_group_id | String |  |
| subscription_status | String |  |
| time | Instant |  |
| timezone | String |  |

### sms_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| action | String |  |
| app_group_id | String |  |
| dispatch_id | String |  |
| error | String |  |
| event_type | String |  |
| external_user_id | String |  |
| from_phone_number | String |  |
| inbound_phone_number | String |  |
| is_sms_fallback | Boolean |  |
| is_suspected_bot_click | Boolean |  |
| message_body | String |  |
| message_extras | Json |  |
| provider_error_code | String |  |
| short_url | String |  |
| subscription_group_api_id | String |  |
| subscription_group_id | String |  |
| suspected_bot_click_reason | Json |  |
| time | Instant |  |
| timezone | String |  |
| to_phone_number | String |  |
| url | String |  |
| user_agent | String |  |
| user_phone_number | String |  |

### uninstall_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| user_id | String | FK |
| app_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| time | Instant |  |

### canvas_step

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| canvas_id | String | FK |
| canvas_updated_at | Instant | FK |
| channel_android_push | Boolean |  |
| channel_content_cards | Boolean |  |
| channel_email | Boolean |  |
| channel_in_app_message | Boolean |  |
| channel_ios_push | Boolean |  |
| channel_sms | Boolean |  |
| channel_web_push | Boolean |  |
| channel_webhook | Boolean |  |
| name | String |  |

### push_notification_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_message_variation_id | String | FK |
| canvas_step_message_variation_updated_at | Instant | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| app_group_id | String |  |
| app_id | String |  |
| dispatch_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| message_extras | Json |  |
| send_id | String |  |
| time | Instant |  |
| timezone | String |  |

### canvas_step_seq

| Column | Type | Keys |
| --- | --- | --- |
| canvas_step_seq | String | PK |
| canvas_id | String | PK, FK |
| canvas_updated_at | Instant | FK |

### campaign

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| updated_at | Instant | PK |
| archived | Boolean |  |
| channel_android_push | Boolean |  |
| channel_content_cards | Boolean |  |
| channel_email | Boolean |  |
| channel_in_app_message | Boolean |  |
| channel_ios_push | Boolean |  |
| channel_sms | Boolean |  |
| channel_web_push | Boolean |  |
| channel_webhook | Boolean |  |
| created_at | Instant |  |
| draft | Boolean |  |
| enabled | Boolean |  |
| error | Boolean |  |
| first_sent | String |  |
| is_api_campaign | Boolean |  |
| last_sent | String |  |
| message | String |  |
| name | String |  |
| schedule_type | String |  |

### campaign_conversion_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_conversion_behavior_id | String | FK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| user_id | String | FK |
| app_id | String |  |
| conversion_behavior_index | String |  |
| event_type | String |  |
| external_user_id | String |  |
| message_variation_id | String |  |
| message_variation_updated_at | Instant |  |
| send_id | String |  |
| time | Instant |  |
| timezone | String |  |

### canvas_tag

| Column | Type | Keys |
| --- | --- | --- |
| canvas_id | String | PK |
| tag | String | PK |
| canvas_updated_at | Instant | FK |

### custom_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| device_id | String | FK |
| user_id | String | FK |
| app_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| name | String |  |
| properties | String |  |
| time | Instant |  |
| timezone | String |  |

### user_alias

| Column | Type | Keys |
| --- | --- | --- |
| label | String | PK |
| name | String | PK |
| user_id | String | FK |

### newsfeed_card_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| card_id | String | FK |
| card_updated_at | Instant | FK |
| device_id | String | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| app_group_id | String |  |
| app_id | String |  |
| browser | String |  |
| carrier | String |  |
| event_type | String |  |
| external_user_id | String |  |
| resolution | String |  |
| time | Instant |  |
| timezone | String |  |

### purchase_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| device_id | String | FK |
| user_id | String | FK |
| app_id | String |  |
| currency | String |  |
| event_type | String |  |
| external_user_id | String |  |
| price | String |  |
| product_id | String |  |
| properties | String |  |
| time | Instant |  |

### user_device

| Column | Type | Keys |
| --- | --- | --- |
| index | Int | PK |
| user_id | String | PK, FK |
| ad_tracking_enabled | Boolean |  |
| carrier | String |  |
| device_id | String |  |
| google_ad_id | String |  |
| idfa | String |  |
| idfv | String |  |
| model | String |  |
| os | String |  |
| roku_ad_id | String |  |

### canvas

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| updated_at | Instant | PK |
| archived | Boolean |  |
| channel_android_push | Boolean |  |
| channel_content_cards | Boolean |  |
| channel_email | Boolean |  |
| channel_in_app_message | Boolean |  |
| channel_ios_push | Boolean |  |
| channel_sms | Boolean |  |
| channel_web_push | Boolean |  |
| channel_webhook | Boolean |  |
| created_at | Instant |  |
| draft | Boolean |  |
| enabled | Boolean |  |
| error | Boolean |  |
| first_entry | Instant |  |
| last_entry | Instant |  |
| message | String |  |
| name | String |  |
| schedule_type | String |  |

### campaign_enrollment_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| user_id | String | FK |
| event_type | String |  |
| external_user_id | String |  |
| message_variation_id | String |  |
| message_variation_updated_at | Instant |  |
| send_id | String |  |
| time | Instant |  |
| timezone | String |  |

### campaign_tag

| Column | Type | Keys |
| --- | --- | --- |
| tag | String | PK |
| campaign_id | String | PK, FK |
| campaign_updated_at | Instant | FK |

### banner_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| campaign_id | String | FK |
| campaign_updated_at | Instant | FK |
| canvas_id | String | FK |
| canvas_step_id | String | FK |
| canvas_step_updated_at | Instant | FK |
| canvas_updated_at | Instant | FK |
| canvas_variation_id | String | FK |
| device_id | String | FK |
| message_variation_id | String | FK |
| message_variation_updated_at | Instant | FK |
| user_id | String | FK |
| abort_log | String |  |
| abort_type | String |  |
| ad_id | String |  |
| ad_id_type | String |  |
| ad_tracking_enabled | Boolean |  |
| app_group_id | String |  |
| app_id | String |  |
| banner_placement_id | String |  |
| browser | String |  |
| button_id | String |  |
| carrier | String |  |
| country | String |  |
| device_model | String |  |
| event_type | String |  |
| external_user_id | String |  |
| gender | String |  |
| language | String |  |
| os_version | String |  |
| platform | String |  |
| resolution | String |  |
| sdk_version | String |  |
| time | Instant |  |
| timezone | String |  |

### random_bucket_number_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| user_id | String | FK |
| app_group_id | String |  |
| event_type | String |  |
| external_user_id | String |  |
| prev_random_bucket_number | Int |  |
| random_bucket_number | Int |  |
| time | Instant |  |

### segment_member

| Column | Type | Keys |
| --- | --- | --- |
| segment_id | String | PK, FK |
| user_id | String | PK, FK |

### card

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| updated_at | Instant | PK |
| archived | Boolean |  |
| created_at | Instant |  |
| description | String |  |
| draft | Boolean |  |
| end_at | Instant |  |
| error | Boolean |  |
| image_url | String |  |
| message | String |  |
| name | String |  |
| publish_at | String |  |
| title | String |  |

### session_event

| Column | Type | Keys |
| --- | --- | --- |
| id | String | PK |
| device_id | String | FK |
| user_id | String | FK |
| app_id | String |  |
| duration | String |  |
| event_type | String |  |
| external_user_id | String |  |
| session_id | String |  |
| time | String |  |
| timezone | String |  |

## Relationships

- canvas_conversion_event(canvas_id) → canvas(id)
- canvas_conversion_event(canvas_updated_at) → canvas(id)
- canvas_conversion_event(canvas_variation_id) → canvas_variation(canvas_id)
- canvas_conversion_event(user_id) → user(id)
- canvas_conversion_event(canvas_conversion_behavior_id) → canvas_conversion_behavior(id)
- whatsapp_event(campaign_id) → campaign(id)
- whatsapp_event(campaign_updated_at) → campaign(id)
- whatsapp_event(canvas_id) → canvas(id)
- whatsapp_event(canvas_updated_at) → canvas(id)
- whatsapp_event(canvas_step_id) → canvas_step(id)
- whatsapp_event(canvas_step_updated_at) → canvas_step(id)
- whatsapp_event(canvas_variation_id) → canvas_variation(canvas_id)
- whatsapp_event(message_variation_id) → message_variation(id)
- whatsapp_event(message_variation_updated_at) → message_variation(id)
- whatsapp_event(user_id) → user(id)
- whatsapp_event(canvas_step_message_variation_id) → message_variation(id)
- whatsapp_event(canvas_step_message_variation_updated_at) → message_variation(id)
- whatsapp_event(device_id) → device(id)
- card_tag(card_updated_at) → card(id)
- card_extra(card_updated_at) → card(id)
- user_push_token(user_id) → user(id)
- webhook_event(campaign_id) → campaign(id)
- webhook_event(campaign_updated_at) → campaign(id)
- webhook_event(canvas_id) → canvas(id)
- webhook_event(canvas_updated_at) → canvas(id)
- webhook_event(canvas_step_id) → canvas_step(id)
- webhook_event(canvas_step_updated_at) → canvas_step(id)
- webhook_event(canvas_variation_id) → canvas_variation(canvas_id)
- webhook_event(message_variation_id) → message_variation(id)
- webhook_event(message_variation_updated_at) → message_variation(id)
- webhook_event(user_id) → user(id)
- webhook_event(device_id) → device(id)
- webhook_event(canvas_step_message_variation_id) → message_variation(id)
- webhook_event(canvas_step_message_variation_updated_at) → message_variation(id)
- whatsapp_flow_response(event_id) → whatsapp_event(id)
- content_card_event(campaign_id) → campaign(id)
- content_card_event(campaign_updated_at) → campaign(id)
- content_card_event(canvas_id) → canvas(id)
- content_card_event(canvas_updated_at) → canvas(id)
- content_card_event(canvas_step_id) → canvas_step(id)
- content_card_event(canvas_step_updated_at) → canvas_step(id)
- content_card_event(canvas_variation_id) → canvas_variation(canvas_id)
- content_card_event(message_variation_id) → message_variation(id)
- content_card_event(message_variation_updated_at) → message_variation(id)
- content_card_event(user_id) → user(id)
- content_card_event(device_id) → device(id)
- content_card_event(canvas_step_message_variation_id) → message_variation(id)
- content_card_event(canvas_step_message_variation_updated_at) → message_variation(id)
- canvas_step_progression_event(canvas_id) → canvas(id)
- canvas_step_progression_event(canvas_updated_at) → canvas(id)
- canvas_step_progression_event(canvas_variation_id) → canvas_variation(canvas_id)
- canvas_step_progression_event(user_id) → user(id)
- canvas_step_progression_event(canvas_step_id) → canvas_step(id)
- canvas_step_progression_event(canvas_step_updated_at) → canvas_step(id)
- canvas_step_progression_event(device_id) → device(id)
- canvas_step_progression_event(next_step_id) → canvas_step(id)
- in_app_message_event(campaign_id) → campaign(id)
- in_app_message_event(campaign_updated_at) → campaign(id)
- in_app_message_event(canvas_id) → canvas(id)
- in_app_message_event(canvas_updated_at) → canvas(id)
- in_app_message_event(canvas_step_id) → canvas_step(id)
- in_app_message_event(canvas_step_updated_at) → canvas_step(id)
- in_app_message_event(canvas_variation_id) → canvas_variation(canvas_id)
- in_app_message_event(message_variation_id) → message_variation(id)
- in_app_message_event(message_variation_updated_at) → message_variation(id)
- in_app_message_event(user_id) → user(id)
- in_app_message_event(device_id) → device(id)
- in_app_message_event(canvas_step_message_variation_id) → message_variation(id)
- in_app_message_event(canvas_step_message_variation_updated_at) → message_variation(id)
- canvas_variation(canvas_updated_at) → canvas(id)
- campaign_variation_analytics(campaign_id) → campaign_analytics(campaign_id)
- campaign_variation_analytics(time) → campaign_analytics(campaign_id)
- campaign_variation_analytics(variation_api_id) → message_variation(id)
- canvas_experiment_step_entry_event(canvas_id) → canvas(id)
- canvas_experiment_step_entry_event(canvas_updated_at) → canvas(id)
- canvas_experiment_step_entry_event(canvas_variation_id) → canvas_variation(canvas_id)
- canvas_experiment_step_entry_event(user_id) → user(id)
- canvas_experiment_step_entry_event(canvas_step_id) → canvas_step(id)
- canvas_experiment_step_entry_event(canvas_step_updated_at) → canvas_step(id)
- canvas_conversion_behavior(canvas_id) → canvas(id)
- canvas_conversion_behavior(canvas_updated_at) → canvas(id)
- location_event(device_id) → device(id)
- location_event(user_id) → user(id)
- canvas_experiment_step_conversion_event(canvas_id) → canvas(id)
- canvas_experiment_step_conversion_event(canvas_updated_at) → canvas(id)
- canvas_experiment_step_conversion_event(canvas_variation_id) → canvas_variation(canvas_id)
- canvas_experiment_step_conversion_event(user_id) → user(id)
- canvas_experiment_step_conversion_event(canvas_conversion_behavior_id) → canvas_conversion_behavior(id)
- canvas_experiment_step_conversion_event(canvas_step_id) → canvas_step(id)
- canvas_experiment_step_conversion_event(canvas_step_updated_at) → canvas_step(id)
- campaign_conversion_behavior(campaign_id) → campaign(id)
- campaign_conversion_behavior(campaign_updated_at) → campaign(id)
- newsfeed_impression_event(device_id) → device(id)
- newsfeed_impression_event(user_id) → user(id)
- message_variation(campaign_id) → campaign(id)
- message_variation(campaign_updated_at) → campaign(id)
- message_variation(canvas_step_id) → canvas_step(id)
- message_variation(canvas_step_updated_at) → canvas_step(id)
- canvas_entry_event(canvas_id) → canvas(id)
- canvas_entry_event(canvas_updated_at) → canvas(id)
- canvas_entry_event(canvas_variation_id) → canvas_variation(canvas_id)
- canvas_entry_event(user_id) → user(id)
- canvas_entry_event(canvas_step_id) → canvas_step(id)
- canvas_entry_event(canvas_step_updated_at) → canvas_step(id)
- email_event(campaign_id) → campaign(id)
- email_event(campaign_updated_at) → campaign(id)
- email_event(canvas_id) → canvas(id)
- email_event(canvas_updated_at) → canvas(id)
- email_event(canvas_step_id) → canvas_step(id)
- email_event(canvas_step_updated_at) → canvas_step(id)
- email_event(canvas_variation_id) → canvas_variation(canvas_id)
- email_event(message_variation_id) → message_variation(id)
- email_event(message_variation_updated_at) → message_variation(id)
- email_event(user_id) → user(id)
- email_event(device_id) → device(id)
- email_event(canvas_step_message_variation_id) → message_variation(id)
- email_event(canvas_step_message_variation_updated_at) → message_variation(id)
- canvas_exit_event(canvas_id) → canvas(id)
- canvas_exit_event(canvas_updated_at) → canvas(id)
- canvas_exit_event(canvas_variation_id) → canvas_variation(canvas_id)
- canvas_exit_event(user_id) → user(id)
- canvas_exit_event(canvas_step_id) → canvas_step(id)
- canvas_exit_event(canvas_step_updated_at) → canvas_step(id)
- campaign_analytics(campaign_id) → campaign(id)
- attribution_event(user_id) → user(id)
- segment_tag(segment_id) → segment(id)
- subscription_event(campaign_id) → campaign(id)
- subscription_event(campaign_updated_at) → campaign(id)
- subscription_event(canvas_id) → canvas(id)
- subscription_event(canvas_updated_at) → canvas(id)
- subscription_event(canvas_step_id) → canvas_step(id)
- subscription_event(canvas_step_updated_at) → canvas_step(id)
- subscription_event(canvas_variation_id) → canvas_variation(canvas_id)
- subscription_event(message_variation_id) → message_variation(id)
- subscription_event(message_variation_updated_at) → message_variation(id)
- subscription_event(user_id) → user(id)
- sms_event(campaign_id) → campaign(id)
- sms_event(campaign_updated_at) → campaign(id)
- sms_event(canvas_id) → canvas(id)
- sms_event(canvas_updated_at) → canvas(id)
- sms_event(canvas_step_id) → canvas_step(id)
- sms_event(canvas_step_updated_at) → canvas_step(id)
- sms_event(canvas_variation_id) → canvas_variation(canvas_id)
- sms_event(message_variation_id) → message_variation(id)
- sms_event(message_variation_updated_at) → message_variation(id)
- sms_event(user_id) → user(id)
- sms_event(canvas_step_message_variation_id) → message_variation(id)
- sms_event(canvas_step_message_variation_updated_at) → message_variation(id)
- uninstall_event(user_id) → user(id)
- canvas_step(canvas_id) → canvas(id)
- canvas_step(canvas_updated_at) → canvas(id)
- push_notification_event(campaign_id) → campaign(id)
- push_notification_event(campaign_updated_at) → campaign(id)
- push_notification_event(canvas_id) → canvas(id)
- push_notification_event(canvas_updated_at) → canvas(id)
- push_notification_event(canvas_step_id) → canvas_step(id)
- push_notification_event(canvas_step_updated_at) → canvas_step(id)
- push_notification_event(canvas_variation_id) → canvas_variation(canvas_id)
- push_notification_event(message_variation_id) → message_variation(id)
- push_notification_event(message_variation_updated_at) → message_variation(id)
- push_notification_event(user_id) → user(id)
- push_notification_event(device_id) → device(id)
- push_notification_event(canvas_step_message_variation_id) → message_variation(id)
- push_notification_event(canvas_step_message_variation_updated_at) → message_variation(id)
- canvas_step_seq(canvas_id) → canvas(id)
- canvas_step_seq(canvas_updated_at) → canvas(id)
- campaign_conversion_event(campaign_id) → campaign(id)
- campaign_conversion_event(campaign_updated_at) → campaign(id)
- campaign_conversion_event(user_id) → user(id)
- campaign_conversion_event(campaign_conversion_behavior_id) → campaign_conversion_behavior(id)
- canvas_tag(canvas_updated_at) → canvas(id)
- custom_event(device_id) → device(id)
- custom_event(user_id) → user(id)
- user_alias(user_id) → user(id)
- newsfeed_card_event(device_id) → device(id)
- newsfeed_card_event(user_id) → user(id)
- newsfeed_card_event(card_id) → card(id)
- newsfeed_card_event(card_updated_at) → card(id)
- purchase_event(device_id) → device(id)
- purchase_event(user_id) → user(id)
- user_device(user_id) → user(id)
- campaign_enrollment_event(campaign_id) → campaign(id)
- campaign_enrollment_event(campaign_updated_at) → campaign(id)
- campaign_enrollment_event(user_id) → user(id)
- campaign_tag(campaign_id) → campaign(id)
- campaign_tag(campaign_updated_at) → campaign(id)
- banner_event(campaign_id) → campaign(id)
- banner_event(campaign_updated_at) → campaign(id)
- banner_event(canvas_id) → canvas(id)
- banner_event(canvas_updated_at) → canvas(id)
- banner_event(canvas_step_id) → canvas_step(id)
- banner_event(canvas_step_updated_at) → canvas_step(id)
- banner_event(canvas_variation_id) → canvas_variation(canvas_id)
- banner_event(message_variation_id) → message_variation(id)
- banner_event(message_variation_updated_at) → message_variation(id)
- banner_event(user_id) → user(id)
- banner_event(device_id) → device(id)
- random_bucket_number_event(user_id) → user(id)
- segment_member(user_id) → user(id)
- segment_member(segment_id) → segment(id)
- session_event(device_id) → device(id)
- session_event(user_id) → user(id)
