Skip to main content

Event data DDL reference

Overview​

When you connect a data warehouse to MessageGears Accelerator, you can have MessageGears stream engagement events (deliveries, opens, clicks, bounces, unsubscribes, SMS and push activity, and mobile SDK / in-app events) back into your warehouse through the real-time event feed. To receive that data you first create a set of tables in your warehouse that match the event feed schema.

This page is the single source for the suggested Data Definition Language (DDL) for the MessageGears real-time event feed (v3.2). Select your warehouse tab below and run the statements in a worksheet/console against the schema you want to use.

note

These are starting templates:

  • Replace any placeholders (for example <dataset_name> on BigQuery) with your own dataset, and create the tables under the analytics schema you set up for MessageGears.
  • The messagegears_campaign_metadata and messagegears_send_history tables are examples only — coordinate with your marketing team on the columns you actually need.
  • You only need the tables for the channels and events you use. Create the email tables at minimum; add the push, SMS, mobile SDK, and in-app tables if you send on those channels.
  • All warehouses cover the same event set. The Snowflake and BigQuery statements come from the Accelerator schema generator; the Redshift, PostgreSQL, and SQL Server statements are translated from that canonical schema into each SQL dialect.

DDL by warehouse​

Covers email, SMS, push, and mobile SDK events. The custom_properties column is optional — include it only if you want the raw event payload stored alongside the parsed columns.

-----------------------------------
-- EMAIL EVENT TABLES
-----------------------------------
CREATE TABLE messagegears_bounce (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
local_ip varchar(255) DEFAULT NULL,
remote_ip varchar(255) DEFAULT NULL,
category varchar(255) DEFAULT NULL,
category_code number(11,0) DEFAULT NULL,
details string DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);


CREATE TABLE messagegears_click (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
ip_address varchar(255) DEFAULT NULL,
user_agent varchar(510) DEFAULT NULL,
microsite boolean DEFAULT FALSE,
url string DEFAULT NULL,
url_name varchar(510) DEFAULT NULL,
url_id varchar(510) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);


CREATE TABLE messagegears_delivery (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
local_ip varchar(255) DEFAULT NULL,
remote_ip varchar(255) DEFAULT NULL,
message_size number(11,0) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-- ADJUSTED OPENS
CREATE TABLE messagegears_open (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
ip_address varchar(255) DEFAULT NULL,
user_agent varchar(510) DEFAULT NULL,
microsite boolean DEFAULT FALSE,
adjusted_open boolean DEFAULT FALSE,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_spamcomplaint (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
isp varchar(255) DEFAULT NULL,
ip_address varchar(30) DEFAULT NULL,
subject varchar(510) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_unsubscribe (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
ip_address varchar(255) DEFAULT NULL,
user_agent varchar(510) DEFAULT NULL,
microsite boolean DEFAULT FALSE,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-- Note: No Primary Key on Render Errors
CREATE TABLE messagegears_render_error (
account_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
activity_id varchar(36) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
email_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
error_code varchar(255) DEFAULT NULL,
error_message string DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-----------------------------------
-- SMS EVENT TABLES
-----------------------------------

CREATE TABLE messagegears_sms_delivery (
account_id number(11,0) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
request_id varchar(50) NOT NULL,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
sms_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
origination_number varchar(255) DEFAULT NULL,
sms_name varchar(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_sms_click (
account_id number(11,0) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
request_id varchar(50) NOT NULL,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
sms_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
origination_number varchar(255) DEFAULT NULL,
sms_name varchar(255) DEFAULT NULL,
url string DEFAULT NULL,
url_name varchar(510) DEFAULT NULL,
url_id varchar(510) DEFAULT NULL,
vendor_id number(11,0) DEFAULT NULL,
ip_address varchar(255) DEFAULT NULL,
user_agent varchar(510) DEFAULT NULL
);

CREATE TABLE messagegears_sms_delivery_failure (
account_id number(11,0) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
request_id varchar(50) NOT NULL,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
sms_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
category varchar(255) DEFAULT NULL,
details varchar DEFAULT NULL,
origination_number varchar(255) DEFAULT NULL,
sms_name varchar(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_sms_render_error (
account_id number(11,0) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
request_id varchar(50) NOT NULL,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
sms_address varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
error_code varchar(255) DEFAULT NULL,
error_message varchar DEFAULT NULL,
origination_number varchar(255) DEFAULT NULL,
sms_name varchar(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-- if recieving additional events (client reference events) from SMS provider, use this table structure:
CREATE TABLE messagegears_sms_inbound (
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
activity_id varchar(36) NOT NULL,
sms_address varchar(255) DEFAULT NULL,
to_address varchar(255) DEFAULT NULL,
message varchar DEFAULT NULL,
message_type varchar(36) NOT NULL,
origination_number varchar(255) DEFAULT NULL,
sms_name varchar(255) DEFAULT NULL,
jobCategory varchar(255) DEFAULT NULL,
campaignId number(11,0) DEFAULT NULL,
campaignVersion number(11,0) DEFAULT NULL,
accountId number(11,0) DEFAULT NULL,
requestId varchar(50) NOT NULL,
correlationId varchar(255) DEFAULT NULL,
clientCampaignId varchar(255) DEFAULT NULL,
recipientId varchar(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-----------------------------------
-- PUSH EVENT TABLES
-----------------------------------

-- If using sdk and "Receive Swrve Push Sent Events" turned on in Admin by MG CS team
CREATE TABLE messagegears_push_delivery (
account_id number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
request_id varchar(50) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
service varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
push_delivery_service varchar(255) DEFAULT NULL,
mobile_user_id varchar (255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_push_click (
activity_timestamp TIMESTAMP_TZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
request_id varchar(50) DEFAULT NULL,
correlation_id VARCHAR(255) DEFAULT NULL,
activity_id varchar(36) DEFAULT NULL,
device_id VARCHAR(255) DEFAULT NULL,
service VARCHAR(255) DEFAULT NULL,
application_id VARCHAR(255) DEFAULT NULL,
push_delivery_service VARCHAR(255) DEFAULT NULL,
account_id number(11,0) DEFAULT NULL,
job_category VARCHAR(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
recipient_id VARCHAR(255) DEFAULT NULL,
ip_address VARCHAR(255) DEFAULT NULL,
user_agent VARCHAR(255) DEFAULT NULL,
destination VARCHAR(255) DEFAULT NULL,
url_name VARCHAR(255) DEFAULT NULL,
url_id VARCHAR(255) DEFAULT NULL,
mobile_user_id varchar (255) DEFAULT NULL,
vendor_app_id varchar(50) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_push_delivery_failure (
account_id number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
request_id varchar(50) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
service varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
category varchar(255) DEFAULT NULL,
details varchar DEFAULT NULL,
push_delivery_service varchar(255) DEFAULT NULL,
mobile_user_id varchar (255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_push_render_error (
account_id number(11,0) DEFAULT NULL,
activity_id varchar(36) NOT NULL,
request_id varchar(50) NOT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
correlation_id varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
campaign_version number(11,0) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
service varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
error_code varchar(255) DEFAULT NULL,
error_message varchar DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

----------------------------------------------------
--SDK CORE MOBILE EVENT TABLES
----------------------------------------------------

-- SDK mobile user tables
CREATE TABLE messagegears_mobile_user_session(
activity_id varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_user_first_session(
activity_id varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_user_identity_update(
activity_id varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_user_push_permission_update(
activity_id varchar(255) DEFAULT NULL,
application_id varchar(50) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
pushPermission varchar (50) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_user_device_update(
activity_id varchar(255) DEFAULT NULL,
application_id varchar(255) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
device_type varchar(255) DEFAULT NULL,
device_name varchar(255) DEFAULT NULL,
region varchar(50) DEFAULT NULL,
language varchar(50) DEFAULT NULL,
platform varchar(50) DEFAULT NULL,
platform_version varchar(50) DEFAULT NULL,
device_timezone_name varchar(100) DEFAULT NULL,
mobile_sdk_version varchar(50) DEFAULT NULL,
app_store varchar(50) DEFAULT NULL,
install_date timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
utc_offset varchar(50) DEFAULT NULL,
ios_push_permission varchar(50) DEFAULT NULL,
background_push_permissions varchar(50) DEFAULT NULL,
camera_permission varchar(50) DEFAULT NULL,
contacts_permission varchar(50) DEFAULT NULL,
photos_permission varchar(50) DEFAULT NULL,
location_always_permission varchar(50) DEFAULT NULL,
location_in_use_permission varchar(50) DEFAULT NULL,
location_accuracy_permission varchar(50) DEFAULT NULL,
ios_push_token varchar(50) DEFAULT NULL,
support_rich_gif boolean DEFAULT NULL,
mobile_sdk_flavor varchar(50) DEFAULT NULL,
push_permission_enabled boolean DEFAULT NULL,
push_importance varchar(50) DEFAULT NULL,
android_push_permission varchar(50) DEFAULT NULL,
permission_show_rationale boolean DEFAULT NULL,
permission_answered_times integer DEFAULT NULL,
gcm_push_token varchar(50) DEFAULT NULL,
location_service_enabled boolean DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-- SDK mobile user custom events
CREATE TABLE messagegears_mobile_user_custom_event(
activity_id varchar(255) DEFAULT NULL,
event_name varchar(255) DEFAULT NULL,
application_id varchar(50) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
payload variant DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-- SDK mobile user property update events
CREATE TABLE messagegears_mobile_user_property_update(
activity_id varchar(255) DEFAULT NULL,
application_id varchar(50) DEFAULT NULL,
device_id varchar(255) DEFAULT NULL,
mobile_app_id varchar(255) DEFAULT NULL,
mobile_user_id varchar(255) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
activity_timestamp timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
user_type varchar(50) DEFAULT NULL,
attributes variant DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

-- SDK In-App Event Tables
CREATE TABLE messagegears_mobile_in_app_impression(
activity_timestamp TIMESTAMP_TZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
activity_id VARCHAR(255) DEFAULT NULL,
in_app_campaign_id VARCHAR(255) DEFAULT NULL,
in_app_tracking_id VARCHAR(255) DEFAULT NULL,
client_campaign_id VARCHAR(255) DEFAULT NULL,
campaign_uuid VARCHAR(255) DEFAULT NULL,
device_id VARCHAR(255) DEFAULT NULL,
application_id VARCHAR(255) DEFAULT NULL,
vendor_app_id VARCHAR(255) DEFAULT NULL,
recipient_id VARCHAR(255) DEFAULT NULL,
platform VARCHAR(255) DEFAULT NULL,
device_type VARCHAR(255) DEFAULT NULL,
mobile_user_id VARCHAR(255) DEFAULT NULL,
category VARCHAR(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_in_app_page_view (
activity_timestamp TIMESTAMP_TZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
activity_id VARCHAR(255) DEFAULT NULL,
in_app_campaign_id VARCHAR(255) DEFAULT NULL,
in_app_tracking_id VARCHAR(255) DEFAULT NULL,
client_campaign_id VARCHAR(255) DEFAULT NULL,
campaign_uuid VARCHAR(255) DEFAULT NULL,
device_id VARCHAR(255) DEFAULT NULL,
application_id VARCHAR(255) DEFAULT NULL,
vendor_app_id VARCHAR(255) DEFAULT NULL,
recipient_id VARCHAR(255) DEFAULT NULL,
platform VARCHAR(255) DEFAULT NULL,
device_type VARCHAR(255) DEFAULT NULL,
mobile_user_id VARCHAR(255) DEFAULT NULL,
page_id VARCHAR(255) DEFAULT NULL,
page_name VARCHAR(255) DEFAULT NULL,
category VARCHAR(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_in_app_click (
activity_timestamp TIMESTAMP_TZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
activity_id VARCHAR(255) DEFAULT NULL,
in_app_campaign_id VARCHAR(255) DEFAULT NULL,
in_app_tracking_id VARCHAR(255) DEFAULT NULL,
client_campaign_id VARCHAR(255) DEFAULT NULL,
campaign_uuid VARCHAR(255) DEFAULT NULL,
device_id VARCHAR(255) DEFAULT NULL,
application_id VARCHAR(255) DEFAULT NULL,
vendor_app_id VARCHAR(255) DEFAULT NULL,
recipient_id VARCHAR(255) DEFAULT NULL,
platform VARCHAR(255) DEFAULT NULL,
device_type VARCHAR(255) DEFAULT NULL,
mobile_user_id VARCHAR(255) DEFAULT NULL,
page_id VARCHAR(255) DEFAULT NULL,
page_name VARCHAR(255) DEFAULT NULL,
button_id VARCHAR(255) DEFAULT NULL,
button_name VARCHAR(255) DEFAULT NULL,
category VARCHAR(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_in_app_dismissed (
activity_timestamp TIMESTAMP_TZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
activity_id VARCHAR(255) DEFAULT NULL,
in_app_campaign_id VARCHAR(255) DEFAULT NULL,
in_app_tracking_id VARCHAR(255) DEFAULT NULL,
client_campaign_id VARCHAR(255) DEFAULT NULL,
campaign_uuid VARCHAR(255) DEFAULT NULL,
device_id VARCHAR(255) DEFAULT NULL,
application_id VARCHAR(255) DEFAULT NULL,
vendor_app_id VARCHAR(255) DEFAULT NULL,
recipient_id VARCHAR(255) DEFAULT NULL,
platform VARCHAR(255) DEFAULT NULL,
device_type VARCHAR(255) DEFAULT NULL,
mobile_user_id VARCHAR(255) DEFAULT NULL,
page_id VARCHAR(255) DEFAULT NULL,
page_name VARCHAR(255) DEFAULT NULL,
button_id VARCHAR(255) DEFAULT NULL,
button_name VARCHAR(255) DEFAULT NULL,
category VARCHAR(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);

CREATE TABLE messagegears_mobile_in_app_page_navigation (
activity_timestamp TIMESTAMP_TZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
activity_id VARCHAR(255) DEFAULT NULL,
in_app_campaign_id VARCHAR(255) DEFAULT NULL,
in_app_tracking_id VARCHAR(255) DEFAULT NULL,
client_campaign_id VARCHAR(255) DEFAULT NULL,
campaign_uuid VARCHAR(255) DEFAULT NULL,
device_id VARCHAR(255) DEFAULT NULL,
application_id VARCHAR(255) DEFAULT NULL,
vendor_app_id VARCHAR(255) DEFAULT NULL,
recipient_id VARCHAR(255) DEFAULT NULL,
platform VARCHAR(255) DEFAULT NULL,
device_type VARCHAR(255) DEFAULT NULL,
mobile_user_id VARCHAR(255) DEFAULT NULL,
page_id VARCHAR(255) DEFAULT NULL,
page_name VARCHAR(255) DEFAULT NULL,
button_id VARCHAR(255) DEFAULT NULL,
button_name VARCHAR(255) DEFAULT NULL,
category VARCHAR(255) DEFAULT NULL,
custom_properties variant DEFAULT NULL,
PRIMARY KEY (activity_id)
);


----------------------------------------------------------------------
-- CAMPAIGN METADATA AND SEND HISTORY TABLES
----------------------------------------------------------------------
-- example/suggestion only, we recommend coordinating with your marketing team on what's needed here
CREATE TABLE messagegears_campaign_metadata (
job_id number(11,0) DEFAULT NULL,
request_id varchar(50) NOT NULL,
account_id number(11,0) DEFAULT NULL,
start_time timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP,
campaign_id number(11,0) DEFAULT NULL,
campaign_name varchar(255) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
template_id number(11,0) DEFAULT NULL,
template_name varchar(255) DEFAULT NULL,
PRIMARY KEY (job_id)
);

-- example/suggestion only, we recommend coordinating with your marketing team on what's needed here
CREATE TABLE messagegears_send_history (
job_id number(11,0) DEFAULT NULL,
recipient_id varchar(255) DEFAULT NULL,
campaign_id number(11,0) DEFAULT NULL,
job_category varchar(255) DEFAULT NULL,
send_time timestamp_tz NOT NULL DEFAULT CURRENT_TIMESTAMP
);