Important: Event Storage Migration
As part of our ongoing infrastructure improvements, event data is now stored directly in ClickHouse. The following tables are deprecated and will no longer receive new data:
payment_events, bonus_events, login_events, sports_events
All incoming events are written to their corresponding cw_ tables (e.g. cw_payment_events, cw_bonus_events, etc.).
To query both historical and current data seamlessly, use the combined_ views (e.g. combined_payment_events), which unify records from the legacy and current tables.

ETL tables

Insights ETL tables are our internal ETL processes and should not be used for querying.

CW prefixed tables

Tables prefixed with “cw_” which are not documented here are for internal use only.

Join engine tables

Join engine tables are imported into ClickHouse from MySQL using an internal service that keeps the ClickHouse data continuously synchronized. We transfer the data to ClickHouse due to its significantly better performance.

insights.activity_conversion

Includes conversion data for Activities that were triggered from Fast Track CRM
Table Engine: SummingMergeTree
Partition By: toUInt64(activity_id / 100)
Order By: (brand_id, activity_id, action_group_id, user_id, trigger_hash)
Columns
nametypedescription
brand_id
UInt16
Fast Track Identifier for the Environment
activity_id
UInt32
Unique identifier of the Activity that fired - can be looked up in the table activitymanager.Activities
action_group_id
UInt32
Unique identifier of the Action Group - can be looked up in the activitymanager.ActivityActionGroups table
user_id
String
Unique identifier of the user - can be looked up in the insights.user_details_join_engine table
trigger_hash
String
Hash of the message that triggered the activity. If an activity is triggered multiple times for a single user, there will be two entries in the table having a different trigger_hash
activity_name
SimpleAggregateFunction(anyLast, Nullable(String)
Name of the Activity that fired
trigger_id
Nullable(UInt64)
Unique identifier of the Trigger associated with the Activity - can be looked up in the activitymanager.Triggers table
trigger_type
SimpleAggregateFunction(anyLast, Nullable(String))
What type of event triggered the activity. Eg. TimeEvent, EnrichedPayment
trigger_name
SimpleAggregateFunction(anyLast, Nullable(String))
The name of the trigger that triggered the Activity
segment_id
Nullable(UInt64)
Unique identifier of the Segment associated with the Activity - can be looked up in activitymanager.Segments table
segment_name
SimpleAggregateFunction(anyLast, Nullable(String))
Name of the segment associated with the Activity
activity_fire_timestamp
SimpleAggregateFunction(anyLast, Nullable(DateTime))
The timestamp at which the Activity was triggered (UTC)
conversion_period_hours
Nullable(UInt64)
How long is the conversion period of the Activity. Logins / Deposits made by the player outside of the Conversion Period are not associated with the Activity
count_of_logins
UInt8
How many logins the player made from the time the Activity fired until the Conversion Period ended
count_of_deposits
UInt8
How many deposits (payments with type = credit and status = approved), the player made between the activity_fire_timestamp and the end of the converison period
sum_of_deposits
Float64
The sum of the base amount (amount * exchange_rate) of the deposits (payments with type = credit and status = approved), the player made between the activity_fire_timestamp and the end of the converison period
email_sent
UInt8
Will be non-zero if an email was sent to the player for an Activity fire
email_delivered
UInt8
Will be non-zero if an email was delivered to the player for an Activity fire
email_opened
UInt8
Will be non-zero if an email was opened by the player for an Activity fire
email_clicked
UInt8
Will be non-zero if the link in an email was clicked by the player for an Activity fire
email_spam
UInt8
Will be non-zero if an email was marked as spam by a player for an Activity fire
email_processed
UInt8
Will be non-zero if an email was processed for an Activity fire
email_deferred
UInt8
Will be non-zero if an email was deferred for an Activity fire
email_bounced
UInt8
Will be non-zero if an email was bounced for an Activity fire
email_unsubscribed
UInt8
Will be non-zero if the player clicked the unsubscribe link for an Activity fire
email_dropped
UInt8
Will be non-zero if an email was dropped for an Activity fire
email_address
Nullable(String)
If an email Action was sent as part of the activity, this field shows the email address of the player at the time of Activity fire
email_recipient_name
SimpleAggregateFunction(anyLast, Nullable(String))
If an email Action was sent as part of the Activity, this field shows the recipient name of the email that was sent
email_subject
SimpleAggregateFunction(anyLast, Nullable(String))
If an email Action was sent as part of the Activity, this field shows the subject line of the email that was sent at the time of activity fire
email_template_id
SimpleAggregateFunction(anyLast, Nullable(String))
The template id used for the email at the time of activity fire
email_userlang
SimpleAggregateFunction(anyLast, Nullable(String))
The language of the user at the time of activity fire
sms_sent
UInt8
Will be non-zero if an sms was sent to a player for an activity fire
sms_delivered
UInt8
Will be non-zero if an sms was delivered to a player for an activity fire
sms_clicked
UInt8
Will be non-zero if an sms link was clicked by the player for an activity fire
sms_unsubscribed
UInt8
Will be non-zero if the player unsubscribed from an sms communication sent by the Activity
sms_recipient_number
SimpleAggregateFunction(anyLast, Nullable(String))
The contact number of the player targeted by the Activity
sms_text
SimpleAggregateFunction(anyLast, Nullable(String))
The text of the sms sent by the Activity
notification_sent
UInt8
Will be non-zero if a notification was sent for an Activity fire
notification_opened
UInt8
Will be non-zero if a notification was opened by a user for an Activity fire
notification_clicked
UInt8
Will be non-zero if a notification link was clicked by a player for an Activity fire
notification_type
SimpleAggregateFunction(anyLast, Nullable(String))
The type of notification sent by the Activity. (ex: shoutout).
notification_title
SimpleAggregateFunction(anyLast, Nullable(String))
The title of the notification sent by the Activity
notification_message
SimpleAggregateFunction(anyLast, Nullable(String))
The message of the notification sent by the Activity
notification_display_type
SimpleAggregateFunction(anyLast, Nullable(String))
The display type of the notification sent by the Activity
notification_preview_text
SimpleAggregateFunction(anyLast, Nullable(String))
The preview text of the notification sent by the Activity
notification_footer_text
SimpleAggregateFunction(anyLast, Nullable(String))
The footer text of the notification sent by the Activity
notification_cta_text
SimpleAggregateFunction(anyLast, Nullable(String))
The text of the call to action in the notification sent by the Activity
notification_cta_link
SimpleAggregateFunction(anyLast, Nullable(String))
The link of the call to action in the notification sent by the Activity
notification_cta2_text
SimpleAggregateFunction(anyLast, Nullable(String))
The second text of the call to action in the notification sent by the Activity
notification_cta2_link
SimpleAggregateFunction(anyLast, Nullable(String))
The second link of the call to action in the notification sent by the Activity
last_modified_timestamp
Nullable(DateTime)
Internal use: The last modified timestamp for the row in the database.
lifecycle_id
SimpleAggregateFunction(anyLast, Nullable(Int32))
The Lifecycle Id that the Activity is part of - non null for Activities that are 1:1 Experiences and inside a Lifecycle
lifecycle_version_id
SimpleAggregateFunction(anyLast, Nullable(Int32))
The Lifecycle Version Id that the Activity is part of - non null for Activities that are 1:1 Experiences and inside a Lifecycle
singularity_model_id
SimpleAggregateFunction(anyLast, Nullable(UInt32))
An identifier for the Singularity Model - this field is non null for Activities that are 1:1 Experiences
eligibility_model_rules
SimpleAggregateFunction(anyLast, Nullable(String))
Eligibility Model rules for Activities that are 1:1 Experiences
scoring_model_rules
SimpleAggregateFunction(anyLast, Nullable(String))
Scoring Model rules for Activties that are 1:1 Experiences
collection_id
SimpleAggregateFunction(anyLast, Nullable(UInt32))
For Activities that are 1:1 Experiences, this is an identifier for the Collection used - can be looked up in activitymanager.collections table
collection_name
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the name of the Collection that was used
collection_version_id
SimpleAggregateFunction(anyLast, Nullable(UInt32))
For Activities that are 1:1 Experiences, this is an identifier for the Collection Version that was used - can be looked up in activitymanager.collection_versions table
collection_version_description
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the description of the Collection Version that was used
collection_version_major_version_number
SimpleAggregateFunction(anyLast, Nullable(UInt8))
For Activities that are 1:1 Experiences, this is the major version number of the Collection Version that was used
collection_version_minor_version_number
SimpleAggregateFunction(anyLast, Nullable(UInt8))
For Activities that are 1:1 Experiences, this is the minor version number of the Collection Version that was used
collection_version_patch_version_number
SimpleAggregateFunction(anyLast, Nullable(UInt8))
For Activities that are 1:1 Experiences, this is the patch version number of the Collection Version that was used
content_id
SimpleAggregateFunction(anyLast, Nullable(UInt32))
For Activities that are 1:1 Experiences, this is an identifier for the Content that was used - can be looked up in the activitymanager.contents table
content_name
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the name of the Content that was used
content_version_id
SimpleAggregateFunction(anyLast, Nullable(UInt32))
For Activities that are 1:1 Experiences, this is an identifier for the Content Version that was used - can be looked up in the activitymanager.content_versions table
content_version_description
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the description of the Content Version that was used
content_version_major_version_number
SimpleAggregateFunction(anyLast, Nullable(UInt8))
For Activities that are 1:1 Experiences, this is the major version number of the Content Version that was used
content_version_minor_version_number
SimpleAggregateFunction(anyLast, Nullable(UInt8))
For Activities that are 1:1 Experiences, this is the minor version number of the Content Version that was used
content_version_patch_version_number
SimpleAggregateFunction(anyLast, Nullable(UInt8))
For Activities that are 1:1 Experiences, this is the patch version number of the Content Version that was used
content_version_classifications
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the Classifications of the of the Content Version that was used
player_features
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the Player Feature values at the time of Activity Fire
system_acquisition_source
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Acquisition Source Feature at the time of Activity fire.
system_active_state
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Active State Feature at the time of Activity fire.
system_conversion_state
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Conversion State Feature at the time of Activity fire.
system_first_deposit_amount
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the First Deposit Amount Feature at the time of Activity fire
system_inactive_state
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Inactive State Feature at the time of Activity fire
system_lifestage
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Lifestage Feature at the time of Activity fire
system_most_active_day_of_week
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Most Active Day of the Week Feature at the time of Activity fire
system_most_cost_efficient_outbound_channel
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Most Cost Efficient Outbound Channel Feature at the time of Activity fire
system_preferred_offer_type
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Preferred Offer Type Feature at the time of Activity fire
system_opted_in_channels
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Opted In Channels Feature at the time of Activity fire
system_predicted_deposit_bracket
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Predicted Deposit Bracket Feature at the time of Activity fire
system_predicted_most_optimal_send_out_time_of_the_day
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Optimal Time of the Day Feature at the time of Activity fire
system_previously_played_products
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the player's value for the Previously Played Products Feature at the time of Activity fire
system_deposit_requirement
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this shows the Classification for the Deposit Requirement Feature for the Content Version that was used
system_offer_type
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the Classification for the Offer Type Feature for the Content Version that was used
system_communication_channels
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the Classification for the Communication Channels Feature for the Content Version that was used
system_product
SimpleAggregateFunction(anyLast, Nullable(String))
For Activities that are 1:1 Experiences, this is the Classification for the Product Feature for the Content Version that was used
count_of_bonuses_created
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with status = 'Created' (This field requires the bonus reporting integration to be implemented)
count_of_bonuses_completed
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with status = 'Completed' (This field requires the bonus reporting integration to be implemented)
count_of_bonuses_expired
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with status = 'Expired' (This field requires the bonus reporting integration to be implemented)
count_of_bonuses_lost
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with status = 'Lost' (This field requires the bonus reporting integration to be implemented)
count_of_bonuses_forfeited
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with status = 'Forfeited' (This field requires the bonus reporting integration to be implemented)
count_of_bonuses_autocompleted
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with status = 'Autocompleted' (This field requires the bonus reporting integration to be implemented)
count_of_bonuses_turned_real
Int32
If a bonus was credited by the Activity, this field shows the count of bonuses sent by the activity with bonus_turned_real > 0 (This field requires the bonus reporting integration to be implemented)
sum_of_bonus_amount_granted
Float64
If a bonus was credited by the Activity, this field shows the total amount of bonus granted in base currency [ sum(amount * exchange_rate) for bonuses with status = 'Created' ](This field requires the bonus reporting integration to be implemented)
sum_of_bonus_amount_turned_real
Float64
If a bonus was credited by the Activity, this field shows the total amount of bonus turned real in base currency [ sum(bonus_turned_real * exchange_rate) for bonuses ](This field requires the bonus reporting integration to be implemented)
bonus_code
SimpleAggregateFunction(groupUniqArrayArray, Array(String))
If a bonus was credited by the Activity, this field shows the bonus code of the bonus given by the activity. (ex: gamification-freespins) (This field requires the bonus reporting integration to be implemented)
bonus_product
SimpleAggregateFunction(groupUniqArrayArray, Array(String))
If a bonus was credited by the Activity, this field shows the product of the bonus given by the activity. (ex: Sportsbook) (This field requires the bonus reporting integration to be implemented)
bonus_type
SimpleAggregateFunction(groupUniqArrayArray, Array(String))
If a bonus was credited by the Activity, this field shows the type of the bonus given by the activity. (ex: Freespins) (This field requires the bonus reporting integration to be implemented)
bonus_id
SimpleAggregateFunction(groupUniqArrayArray, Array(String)
If a bonus was credited by the Activity, this field shows the identifier of the bonus given by the activity (This field requires the bonus reporting integration to be implemented)

insights.player_activity

Integration data aggregated every fifteen minutes for each user.
Table Engine: SummingMergeTree
Partition By: (toYYYYMM(window_timestamp), partition_key)
Order By: (brand_id user_id, window_timestamp, game_name, casino_vendor_name, game_type, game_id, casino_vendor_id, payment_vendor_id, bonus_code, bonus_type, bonus_product)
nametypedescription
brand_id
UInt32
Fast Track identifier for the Environment
user_id
String
Unique identifier of the user - can be looked up in the insights.user_details_join_engine table
window_timestamp
DateTime
Fifteen minutely timestamp
partition_key
String
The partition key used to partition the player activity table. (ex: sports, payment, bonus, casino, and login)
game_name
String
The casino game name of the game played by a user during the window timestamp.
casino_vendor_name
String
The casino vendor name for the game played by a user during the window timestamp
game_type
String
The type of casino game played by a user during the window timestamp
game_id
String
The unique identifier for the casino game
casino_vendor_id
String
The unique identifier for the casino vendor
count_of_bets
UInt32
The count of casino transactions with type = bet or real_bet_base + bonus_bet_base > 0
count_of_wins
UInt32
The count of casino transactions with type = win or real_win_base + bonus_win_base > 0
sum_of_real_bets
Float64
The sum of casino real bets played.
Casino formula: wager_amount*exchange_rate Game Round Events formula: real_bet_base
sum_of_bonus_bets
Float64
The sum of casino bonus bets played.
Casino formula: bonus_wager_amount*exchange_rate Game Round Events formula: bonus_bet_base
sum_of_locked_bets
Float64
The sum of casino locked bets played.
Casino formula: locked_wager_amount*exchange_rate Game Round Events formula: 0
sum_of_total_bets
Float64
The sum of casino total bets played.
Casino formula: amount*exchange_rate
Game Round Events formula: bonus_bet_base + real_bet_base
sum_of_real_wins
Float64
The sum of casino total real wins.
Casino formula:
wager_amount*exchange_rate for type win. Game Round Events formula: real_bet_base
sum_of_bonus_wins
Float64
The sum of casino bonus wins.
Casino formula:
bonus_wager_amount*exchange_rate for type win. Game Round Events formula: bonus_bet_base
sum_of_locked_wins
Float64
The sum of casino locked wins.
Casino formula:
locked_wager_amount*exchange_rate for type win. Game Round Events formula: 0
sum_of_total_wins
Float64
The sum of casino total wins.
Casino formula:
amount*exchange_rate for type win. Game Round Events formula: real_win_base + bonus_win_base
first_bet_date
AggregateFunction(min, Nullable(DateTime))
The first casino bet date for a user during the window timestamp.
last_bet_date
AggregateFunction(max, Nullable(DateTime))
The last casino bet date for a user during the window timestamp.
highest_single_bet
AggregateFunction(max, Nullable(Float64))
The highest single casino bet for a user during the window timestamp.
highest_single_win
AggregateFunction(max, Nullable(Float64))
The highest single casino win for a user during the window timestamp.
payment_vendor_id
String
The unique payment vendor id
count_of_deposits
UInt32
The count of payment transactions with type=credit and status=approved for a user during the window timestamp.
count_of_deposits_with_bonus
UInt32
The count of payment transactions with type=credit and status=approved and non-empty bonus code for a user during the window timestamp.
count_of_deposits_without_bonus
UInt32
The count of payment transactions with type=credit and status=approved and empty bonus code for a user during the window timestamp.
sum_of_deposits
Float64
The sum of amount*exchange_rate of payment transactions with type=credit and status=approved for a user during the window timestamp.
sum_of_deposits_with_bonus
Float64
The sum of amount*exchange_rate of payment transactions with type=credit and status=approved and and non-empty bonus code for a user during the window timestamp.
sum_of_deposits_without_bonus
Float64
The sum of amount*exchange_rate of payment transactions with type=credit and status=approved and and empty bonus code for a user during the window timestamp.
lowest_deposit_amount
AggregateFunction(min, Nullable(Float64))
The lowest amount*exchange_rate of payment transactions with type=credit and status=approved for a user during the window timestamp.
highest_deposit_amount
AggregateFunction(max, Nullable(Float64))
The highest amount*exchange_rate of payment transactions with type=credit and status=approved for a user during the window timestamp.
first_deposit_date
AggregateFunction(min, Nullable(DateTime))
The first date of a payment transaction with type=credit and status=approved for a user during the window timestamp.
last_deposit_date
AggregateFunction(max, Nullable(DateTime))
The last date of a payment transaction with type=credit and status=approved and for a user during the window timestamp.
first_deposit_amount
AggregateFunction(argMin, Float64, Nullable(DateTime))
The first amount*exchange_rate of payment transactions with type=credit and status=approved and for a user during the window timestamp.
last_deposit_amount
AggregateFunction(argMax, Float64, Nullable(DateTime))
The last amount*exchange_rate of payment transactions with type=credit and status=approved and for a user during the window timestamp.
last_used_deposit_bonus_code
AggregateFunction(argMax, Nullable(String), Nullable(DateTime))
The last used deposit bonus code for payment transaction with type=credit and status=approved.
count_of_withdrawals
UInt32
The count of payment transactions with type=debit and status=approved and for a user during the window timestamp.
sum_of_withdrawals
Float64
The sum of amount*exchange_rate of payment transactions with type=debit and status=approved for a user during the window timestamp.
first_login_date
AggregateFunction(min, Nullable(DateTime))
The first login date for a user during the window timestamp.
last_login_date
AggregateFunction(max, Nullable(DateTime))
The last login date for a user during the window timestamp.
count_of_logins
UInt32
The count of logins for a user during the window timestamp.
bonus_code
String
The bonus code for the bonus given. (ex: gamification-freespins)
bonus_type
String
The bonus type credited to the user during the window timestamp. (ex: freespins)
bonus_product
String
The bonus type of the bonus credited. (ex: casino, sportsbook)
count_of_bonuses_created
UInt32
The count of bonuses with status = Created for a user during the window timestamp.
count_of_bonuses_completed
UInt32
The count of bonuses with status=completed for a user during the window timestamp.
count_of_bonuses_expired
UInt32
The count of bonuses with status=expired for a user during the window timestamp.
count_of_bonuses_lost
UInt32
The count of bonuses with status=lost for a user during the window timestamp.
count_of_bonuses_forfeited
UInt32
The count of bonuses with status=forfeited for a user during the window timestamp.
count_of_bonuses_autocompleted
UInt32
The count of bonuses with status=autocompleted for a user during the window timestamp.
count_of_bonuses_turned_real
UInt32
The count of bonuses with field bonus_ turned_real > 0 for a user during the window timestamp.
sum_of_bonus_amount_granted
Float64
The sum of amount*exchange_rate of bonuses with status=created for a user during the window timestamp.
sum_of_bonus_amount_turned_real
Float64
The sum of bonus_turned_real*exchange_rate for a user during the window timestamp.
sports_first_bet_date
AggregateFunction(min, Nullable(DateTime))
The first sports transaction of type=bet for a user during the window timestamp.
sports_last_bet_date
AggregateFunction(max, Nullable(DateTime))
The last sports transaction of type=bet for a user during the window timestamp.
sports_last_cash_bet_date
AggregateFunction(max, Nullable(DateTime))
The last sports transaction timestamp of type=bet and wager_amount > 0 for a user during the window timestamp.
sports_last_bonus_bet_date
AggregateFunction(max, Nullable(DateTime))
The last sports transaction timestamp of type=bet and bonus_wager_amount > 0 for a user during the window timestamp.
sports_bet_amount
Float64
The sum of amount*exchange_rate for type=bet for a user during the window timestamp.
sports_win_amount
Float64
The sum of amount*exchange_rate for type = win for a user during the window timestamp.
sports_highest_single_bet
AggregateFunction(max, Nullable(Float64))
The highest amount*exchange of type=bet for a user during the window timestamp.
sports_highest_single_win
AggregateFunction(max, Nullable(Float64))
The highest amount*exchange of type=settlement for a user during the window timestamp.
sports_total_betslip_count
Int32
The count of betslips with type = bet and status=approved less the count of betslips with type = bet and status = rollback for a user during the window timestamp.
sports_total_freebet_count
Int32
The count of bets with status=approved, type =bet, and is_free_bet = trueless the count of bets with type = bet, status = rollback, and is_free_bet = true for a user during the window timestamp.
sports_total_freebet_amount
Float64
The sum of amount*exchange of sports transactions with type = bet, status = approved, and is_free_bet = true less the sum of amount*exchange_rate of sports transactions with type = bet, status = rollback and is_free_bet = true for a user during the window timestamp
sports_total_bet_count
Int32
The count of bets with type = bet and status = approved less the count of bets with type =bet and status = rollback for a user during the window timestamp
sports_combo_bet_count
Int32
The count of bets with type = bet, status = approved, bet_type = multi less the count of bets with type = bet, status = rollback , and bet_type = multi for a user during the window timestamp
sports_single_bet_count
Int32
The count of bets with type =bet , status = approved, and bet_type = single less the count of bets with type = bet, status = rollback , and bet_type = single for a user during the window timestamp
sports_system_bet_count
Int32
The count of bets with type = bet, status=approved, and bet_type= system less the count of bets with status = rollback , type = bet, and bet_type = system for a user during the window timestamp.
sports_prematch_bet_count
Int32
The count of bets with status = approved, type =bet, and is_live = false less the count of bets with status = rollback , type = bet, and is_live= false for a user during the window timestamp.
sports_prematch_single_bet_amount
Float64
The sum of amount*exchange_rate of sports transactions with status=approved, type =bet , bet_type = single , and is_live = false less the sum of amount*exchange_rate of sports transactions with status = rollback , type = bet, bet_type = single, and is_live= false for a user during the window timestamp.
sports_prematch_single_bonus_bet_amount
Float64
The sum of amount*exchange_rate of sports transactions with type =bet , status = approved, bet_type = single , is_live = false, and is_free_bet = true less the sum of amount*exchange_rate of sports transactions with status = rollback , type = bet, bet_type = single, is_live= false, and is_free_bet = true for a user during the window timestamp.
sports_live_bet_count
Int32
The count of bets with status=approved, type =bet, and is_live = true less the count of bets with type = bet, status = rollback , and is_live= true for a user during the window timestamp.
sports_live_single_bet_amount
Float64
The sum of amount*exchange_rate of sports transactions with type = bet, status = approved, bet_type = single, and is_live = true less the sum of amount*exchange_rate of sports transactions with type = bet, status = rollback , bet_type = single, and is_live= true, and for a user during the window timestamp.
sports_live_single_bonus_bet_amount
Float64
The sum of amount*exchange_rate of sports transactions with type = bet , status = approved, bet_type = single, is_live = true, and is_free_bet = true less the sum of amount*exchange_rate of sports transactions with type = bet, status = rollback , bet_type = single, is_live= true, and is_free_bet = true for a user during the window timestamp.
sports_win_count
Int32
The count of sports transactions with type = settlement and status = approved less the count of sports transactions with type = settlement and status = rollback for a user during the window timestamp.
sports_total_odds
Float64
The sum of total_odds for each sports transaction with type = bet and status = approved less the sum of total odds for each sports transaction with type = bet and status = rollback for a user during the window timestamp.
sports_odds_combo_bet
Float64
The sum of total_odds for each sports transaction with type = bet, status = approved, and bet_type = multi less the sum of total odds for each sports transaction with type = bet, status = rollback, and bet_type = multi for a user during the window timestamp.
sports_odds_single_bet
Float64
The sum of total_odds for each sports transaction with type = bet, status = approved, and bet_type = single less the sum of total odds for each sports transaction with type = bet, status = rollback, and bet_type = single for a user during the window timestamp.
sports_odds_system_bet
Float64
The sum of total_odds for each sports transaction with type = bet, status = approved, and bet_type = system less the sum of total odds for each sports transaction with type = bet, status = rollback, and bet_type = system for a user during the window timestamp.
sports_cashout_count
Int32
The count of sports transactions with type = settlement and cashout = 1 for a user during the window timestamp.

insights.ConversionLog

Contains detailed logs of conversion events triggered by activities in Fast Track CRM. It records each conversion attempt along with its status, type, trigger information, and associated actions.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(Timestamp)
Order By: BrandId, ActivityId, ActionGroupId, UserId, TriggerHash, Id
Name
Type
Description
Note
Id
Int32
Unique id, auto incremented
ActivityId
Int32
The ActivityId which the conversion is related to
ActionGroupId
Int32
Id of the action group
UserId
Int32
Unique user id
Timestamp
DateTime
Time of insert in the table
Type
UInt8
1 = activity_conversion
2 = Email 3 = SMS
4 = Bonus
7 = Notification
8 = Enteractive
ConversionType
UInt8
1 = activity_conversion
------------------------- 2 = delivered (S)
3 = open (N)
4 = click (S,N)
5 = Not in use
6 = Not in use
7 = spam
8 = processed 9 = deferred
10 = bounced
11 = unsubscribed (S)
12 = dropped -------------------------
101 = Created
102 = <not used>
103 = Completed 104 = Expired
105 = Forfeited
106 = Lost
107 = AutoCompleted
Email conversion marked 2-12 otherwise it is marked. SMS = S Notification = N Bonus conversion 101-107
TriggerHash
String
The unique hash for the trigger
TriggerData
String
The raw JSON payload with the trigger-data
ActionId
Nullable(Int32)
Action ID related to the conversion

insights.activity_action_history

Stores historical records of each action triggered as part of an activity in Fast Track CRM. It includes information about the user, action, payload, and scheduling details for each trigger event.
Table Engine: MergeTree
Partition By: toUInt64( ActivityId / 100 )
Order By: ActivityId, ActionId, UserId
Name
Type
Description
Note
Id
String
Unique Id for the row
ActivityId
Int32
The id of the triggered Activity
ActionId
Int32
The id of the related Action
UserId
Int64
The id of the user who triggered the activity
ActionData
String
The JSON payload of the event
Date
DateTime
The timestamp when the activities action was triggered
Status
Int32
Type of action
1 = Fire immediately
4 = Scheduled
TriggerHash
String
The unique hash for the trigger

insights.scheduled_actions_events

Stores historical records of each action triggered as part of an activity in Fast Track CRM. It includes information about the user, action, payload, and scheduling details for each trigger event.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: id, scheduled_action_log_type, trigger_hash
Name
Type
Description
Note
id
String
Unique id of the event
brand_id
Int32
Brand ID
notification_type
String
Type of notification
RichInboxMessage CreditBonusWithCode SendSiteNotification
user_id
Int32
User ID
activity_id
Int32
Activity ID
action_group_id
Int32
Action Group ID
action_id
Int32
Action ID
trigger_hash
String
Unique hash of the event
scheduled_action_log_type
String
Status on the event
Add Expire Trigger Reject
timestamp
DateTime
Timestamp of the event
meta
String
Field to provide custom data

insights.bonus_events (Deprecated)

Deprecated — This table is no longer in use as of 2026-03-06. It has been replaced by insights.combined_bonus_events. Do not build new queries against this table.
Contains detailed event records of bonuses granted, updated, or completed for users within Fast Track CRM. It tracks bonus amounts, statuses, wagering information, and associated payload data.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: brand_id, user_id, id
Name
Type
Description
Note
amount
Nullable(Float32)
Bonus amount
bonus_code
Nullable(String)
Bonus code
bonus_turned_real
Nullable(Float32)
Bonus amount turned to real money:
If wagering is finished
brand_id
Int32
Brand ID
currency
String
Currency
enriched_payload
Nullable(String)
The enriched JSON payload
exchange_rate
Nullable(Float32)
The exchange rate at the timestamp
id
Int64
Bonus ID
locked_amount
Nullable(Float32)
Bonus amount locked to wagering
origin
Nullable(String)
Origin of the bonus
payload
Nullable(String)
The initial payload
product
String
The type of product related to the bonus
Casino Sportsbook Lotto Poker
required_wagering_amount
Nullable(Float32)
Required wagering amount of bonus
status
String
Status of the granted bonus
Expired Pending Created Lost Completed Forfeited
timestamp
DateTime
The timestamp of the event
Format: RFC3339
type
String
Type of bonus
NoDeposit
WelcomeBonus
CashbackBonus
ReloadBonus
WagerFree
FreeSpins
RiskFreeBet
Undefined
user_bonus_id
String
User Bonus ID
user_id
String
User ID

insights.login_events (Deprecated)

Deprecated — This table is no longer in use as of 2026-03-06. It has been replaced by insights.combined_login_events. Do not build new queries against this table.
Contains logs of user login events in Fast Track CRM, capturing detailed information on authentication, platform, impersonation, and contextual payloads.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: brand_id, user_id, id
Name
Type
Description
Note
brand_id
Int32
Brand ID
enriched_payload
Nullable(String)
The enriched JSON payload
id
Int64
Login ID
ip_address
Nullable(String)
The ip address of the event sender
is_impersonated
Nullable(Int8)
This field is 1 when a support agent is logged in impersonating a user
origin
Nullable(String)
The origin of the user
payload
Nullable(String)
The original payload of the event
timestamp
DateTime
Timestamp of the event
user_agent
Nullable(String)
Login platform
Web browser Mobile app
user_id
String
User ID

insights.sports_events (Deprecated)

Deprecated — This table is no longer in use as of 2026-03-06. It has been replaced by insights.combined_sports_events. Do not build new queries against this table.
Stores betting activity and transactional records for sports events within Fast Track CRM. It tracks detailed information about user bets, odds, balances, and wager types.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: brand_id, user_id, id
Name
Type
Description
Note
activity_id
String
Activity ID
activity_id_reference
String
Activity ID Reference
amount
Nullable(Float32)
Bet amount
balance_after
Nullable(Float32)
Player balance after
balance_before
Nullable(Float32)
Player balance before
bet_type
String
Type of bet
Single Multi System
bonus_wager_amount
Nullable(Float32)
Bonus Wagering Amount
brand_id
Int32
Brand ID
currency
Nullable(String)
The currency of which the amount is
enriched_payload
Nullable(String)
The enriched JSON payload
exchange_rate
Nullable(Float32)
The exchange rate at the time of the event
is_cashout
Nullable(Int8)
Indicates whether the bet was cashed out
locked_wager_amount
Nullable(Float32)
Indicates whether the bet was cashed out
origin
Nullable(String)
The origin of the user
payload
Nullable(String)
The JSON payload
timestamp
DateTime
Timestamp when the event happened
total_odds
Nullable(Float32)
The odds at the time
type
Nullable(String)
Type of event
e.g.
Settlement
Bet
user_id
String
User ID
wager_amount
Nullable(Float32)
Wagering amount

insights.payment_events (Deprecated)

Deprecated — This table is no longer in use as of 2026-03-06. It has been replaced by insights.combined_payment_events. Do not build new queries against this table.
Contains records of payment transactions processed within Fast Track CRM. It covers both deposits and withdrawals, along with status, amounts, fees, external references, and partner mappings.
  1. Table Engine: ReplacingMergeTree
  2. Partition By: toYYYYMM(timestamp)
  3. Order By: brand_id, user_id, id
NameTypeDescriptionNote
amount
Float32
Amount
bonus_code
Nullable(String)
Bonus Code
brand_id
Int32
Brand ID
currency
String
Transactions currency in ISO 4217 format
deposit_count
Int32
Internal property
enriched_payload
Nullable(String)
The enriched JSON payload
exchange_rate
Float32
The exchange rate at the timestamp
external_user_id
Nullable(String)
User ID from partner
fee_amount
Float32
Fee Amount, if not applicable then send 0
id
Int64
Unique ID auto incremented
note
Nullable(String)
Any useful notes
e.g. "Insufficient funds"
origin
Nullable(String)
The origin of the user
payload
Nullable(String)
The JSON payload of the event
payment_id
Int32
Payment ID
status
String
Payment status
Approved, Requested, Rejected, Rollback, Cancelled
timestamp
DateTime
Timestamp of the payment event
type
String
Payment type
e.g. Credit (Deposit), Debit (Withdrawal)
user_id
Int32
User ID
vendor_id
Int32
Platform Id of the vendor
vendor_name
Nullable(String)
Platform name of the vendor
withdraw_count
Int32
Internal property

insights.movements

Stores logs of user feature movements within Fast Track CRM, tracking when users change feature type classes due to segmentation, rule processing or computation changes.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: feature_id, user_id, timestamp, id
Name
Type
Description
Note
id
String
Unique movement ID
user_id
String
User ID
feature_id
UInt32
Feature ID
previous_feature_type_classes
Array(Uint32)
The users previously entered class
new_feature_type_classes
Array(Uint32)
The users new entered class
computation_id
UInt32
Computation ID
timestamp
DateTime
Timestamp of the movement

insights.cw_casino_events

Contains transactional records for casino gameplay events within Fast Track CRM. It tracks both betting and payout rounds, including amounts, balances, game metadata, and transactional status.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: brand_id, user_id, round_id, timestamp, type, activity_id
Name
Type
Description
Note
activity_id
String
Activity ID
amount
Nullable(Float32)
The total amount (bonus_wager_amount + wager_amount + locked_wager_amount)
balance_after
Nullable(Float32)
Player balance after the round is finished
balance_before
Nullable(Float32)
Player balance before the round started
bonus_wager_amount
Nullable(Float32)
Amount (either bet or win) if the round was played using bonus money
brand_id
Int32
Brand ID
currency
String
Transactions currency in ISO 4217 format
exchange_rate
Nullable(Float32)
The exchange rate at the time of the event
game_id
String
Game ID
game_name
String
Game Name
game_type
String
Game Type as defined in the platform
is_round_end
Nullable(UInt8)
Indicates if the round is ended or not
locked_wager_amount
Nullable(Float32)
Indicates whether the bet was cashed out
origin
Nullable(String)
The origin of the user
round_id
String
Round ID
Same for both type Bet & Win
timestamp
DateTime
Timestamp in RFC3339 format
type
String
Type of round - either Bet or Win
user_id
String
User ID
vendor_id
String
Vendor ID
vendor_name
String
Vendor Name
wager_amount
Nullable(Float32)
Amount (either bet or win) if the round was played using real money
raw_json
String
The JSON payload of the event
status
String
Indicates whether the event should be reversed or not
Approved Rollback
inserted_at
DateTime
Timestamp of when the event was inserted

insights.cw_custom_events

Stores custom event logs triggered inside Fast Track CRM. These events are typically used for capturing custom workflows, external signals, or user-defined triggers.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: brand_id, user_id, origin, notification_type, timestamp
Name
Type
Description
Note
brand_id
UInt32
Brand ID
user_id
String
User ID
origin
String
The origin of the user
notification_type
String
The key of this custom event
timestamp
DateTime
When this was called / initiated
RFC3339 Datetime
raw_json
String
The JSON payload of the event

insights.cw_game_round_events

Contains detailed round-level events for game play sessions within Fast Track CRM. It includes metadata on game rounds, device information, real/bonus bet/win breakdowns, and vendor data.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: brand_id, user_id, round_id, timestamp
Name
Type
Description
Note
bonus_bet_base
Float32
Internal property
bonus_bet_user
Float32
Internal property
bonus_win_base
Float32
Internal property
bonus_win_user
Float32
Internal property
brand_id
Int32
Brand ID
device_type
String
Type of device used to play game
game_id
String
Game ID
game_name
String
Game Name
game_type
String
Game Type
inserted_at
DateTime
Timestamp when the event was inserted
origin
Nullable(String)
The origin of the user
raw_json
String
The JSON payload of the event
real_bet_base
Float32
Internal property
real_bet_user
Float32
Internal property
real_win_base
Float32
Internal property
real_win_user
Float32
Internal property
round_id
String
Round ID
timestamp
DateTime
Timestamp of the event
user_currency
String
The currency of the user
user_id
String
User ID
vendor_id
String
Vendor ID
vendor_name
String
Vendor Name

insights.cw_user_profile_events

Stores user profile event changes within Fast Track CRM. It captures when and how user profile data changes are recorded, including full payload data for flexible auditing.
Table Engine: ReplacingMergeTree
Partition By: toYYYYMM(timestamp)
Order By: user_id, timestamp, raw_json
Name
Type
Description
Note
brand_id
Int32
Brand ID
origin
String
The origin of the user
timestamp
DateTime
Timestamp when the event happened
user_id
String
User ID
inserted_at
DateTime
Timestamp when the event was inserted
raw_json
String
The JSON payload of the event

insights.cw_payment_events

ClickHouse writer payment events with amounts, status, and raw payload. Use view insights.combined_payment_events to include historical data from before insights.payment_events was deprecated.
Table Engine: ReplacingMergeTree
Partition By: (toYYYYMM(timestamp), migration_reference)
Order By: (brand_id, user_id, type, status, timestamp, hashed_payload)

Columns

NameTypeDescriptionNote
amount
Float32
Monetary amount in the event currency
bonus_code
String
Bonus code associated with this record
brand_id
Int32
Brand/tenant identifier for multi-brand deployments
currency
LowCardinality(String)
Currency code for monetary values
deposit_count
Int32
Count of deposit
exchange_rate
Float32
Exchange rate applied for currency normalization
external_user_id
String
External user identifier from the operator system
fee_amount
Float32
Amount of fee in event currency
inserted_at
DateTime
Ingestion timestamp when row was inserted into ClickHouse (UTC)
Default: now()
note
String
Free-form note or description from source
e.g. "Insufficient funds"
origin
LowCardinality(String)
Origin/source system or site domain
payment_id
String
Identifier for payment (foreign key or source id)
status
LowCardinality(String)
Status from the source system
Approved, Requested, Rejected, Rollback, Cancelled
timestamp
DateTime
When the event occurred (server time, UTC)
type
LowCardinality(String)
Type/category from the source system
e.g. Credit (Deposit), Debit (Withdrawal)
user_id
String
User/player identifier from the source system
vendor_id
LowCardinality(String)
Game/provider vendor identifier
vendor_name
LowCardinality(String)
Game/provider vendor name
withdraw_count
Int32
Count of withdraw
raw_json
String
Raw JSON payload stored for debugging or reprocessing
migration_reference
LowCardinality(String)
Identifier for the migration/import batch that produced this record
hashed_payload
String
Deterministic hash of payload contents for idempotency/deduplication

insights.cw_login_events

ClickHouse writer login events with raw payload and enrichment fields. Use view insights.combined_login_events to include historical data from before insights.login_events was deprecated.
Table Engine: ReplacingMergeTree
Partition By: (toYYYYMM(timestamp), migration_reference)
Order By: (brand_id, user_id, timestamp, hashed_payload)

Columns

NameTypeDescriptionNote
brand_id
Int32
Brand/tenant identifier for multi-brand deployments
inserted_at
DateTime
Ingestion timestamp when row was inserted into ClickHouse (UTC)
Default: now()
ip_address
String
IP address from the source event
is_impersonated
Int8
Whether impersonated
1 = yes, 0 = no
origin
LowCardinality(String)
Origin/source system or site domain
timestamp
DateTime
When the event occurred (server time, UTC)
user_agent
String
User agent string from the source event
user_id
String
User/player identifier from the source system
raw_json
String
Raw JSON payload stored for debugging or reprocessing
migration_reference
LowCardinality(String)
Identifier for the migration/import batch that produced this record
hashed_payload
String
Deterministic hash of payload contents for idempotency/deduplication

insights.cw_bonus_events

ClickHouse writer bonus events capturing bonus lifecycle and amounts. Use view insights.combined_bonus_events to include historical data from before insights.bonus_events was deprecated.
Table Engine: ReplacingMergeTree
Partition By: (toYYYYMM(timestamp), migration_reference)
Order By: (brand_id, user_id, type, status, product, timestamp, hashed_payload)

Columns

NameTypeDescriptionNote
amount
Float32
Monetary amount in the event currency
bonus_code
String
Bonus code associated with this record
bonus_id
String
Bonus id associated with this record
bonus_turned_real
Float32
Bonus turned real associated with this record
brand_id
Int32
Brand/tenant identifier for multi-brand deployments
currency
String
Currency code for monetary values
exchange_rate
Float32
Exchange rate applied for currency normalization
inserted_at
DateTime
Ingestion timestamp when row was inserted into ClickHouse (UTC)
Default: now()
locked_amount
Float32
Amount of locked in event currency
origin
LowCardinality(String)
Origin/source system or site domain
product
LowCardinality(String)
Value for product captured for this bonus record
required_wagering_amount
Float32
Amount of required wagering in event currency
status
String
Status from the source system
e.g. approved, requested
timestamp
DateTime
When the event occurred (server time, UTC)
type
LowCardinality(String)
Type/category from the source system
user_bonus_id
String
Identifier for user bonus (foreign key or source id)
user_id
String
User/player identifier from the source system
raw_json
String
Raw JSON payload stored for debugging or reprocessing
migration_reference
LowCardinality(String)
Identifier for the migration/import batch that produced this record
hashed_payload
String
Deterministic hash of payload contents for idempotency/deduplication
is_free_money
Int8
Whether the bonus is free money
1 = yes, 0 = no

insights.cw_sports_events

ClickHouse writer sports bet/settlement events with wager, odds, and payload. Use view insights.combined_sports_events to include historical data from before insights.sports_events was deprecated.
Table Engine: ReplacingMergeTree
Partition By: (toYYYYMM(timestamp), migration_reference)
Order By: (brand_id, user_id, type, status, bet_type, timestamp, hashed_payload)

Columns

NameTypeDescriptionNote
activity_id
String
Activity identifier from activity manager
activity_id_reference
String
Value for activity id reference captured for this sports record
amount
Float64
Monetary amount in the event currency
balance_after
Float64
User balance after the event (event currency)
balance_before
Float64
User balance before the event (event currency)
bet_type
String
Type/category of bet
bonus_wager_amount
Float64
Portion of wager amount funded by bonus balance
brand_id
Int32
Brand/tenant identifier for multi-brand deployments
currency
String
Currency code for monetary values
exchange_rate
Float64
Exchange rate applied for currency normalization
is_cashout
Int8
Whether cashout
1 = yes, 0 = no
inserted_at
DateTime
Ingestion timestamp when row was inserted into ClickHouse (UTC)
Default: now()
locked_wager_amount
Float64
Portion of wager amount funded by locked balance
origin
LowCardinality(String)
Origin/source system or site domain
status
LowCardinality(String)
Status from the source system
e.g. approved, requested
timestamp
DateTime
When the event occurred (server time, UTC)
total_odds
Float64
Value for total odds captured for this sports record
type
LowCardinality(String)
Type/category from the source system
user_id
String
User/player identifier from the source system
wager_amount
Float64
Wager amount in the event currency
raw_json
String
Raw JSON payload stored for debugging or reprocessing
migration_reference
LowCardinality(String)
Identifier for the migration/import batch that produced this record
hashed_payload
String
Deterministic hash of payload contents for idempotency/deduplication

Event Tables

The raw events which are sent through the integration feed are found in the following tables:
Event TypeTable Name
Casino Events
insights.cw_casino_events
Game Round Events
insights.cw_game_round_events
Login Events
insights.cw_login_events (only includes events dated after insights.login_events was deprecated, use insights.combined_login_events to include historical data)
Payment Events
insights.cw_payment_events (only includes events dated after insights.payment_events was deprecated, use insights.combined_payment_events to include historical data)
Bonus Events
insights.cw_bonus_events (only includes events dated after insights.bonus_events was deprecated, use insights.combined_bonus_events to include historical data)
Sports Events
insights.cw_sports_events (only includes events dated after insights.sports_events was deprecated, use insights.combined_sports_events to include historical data)