Data Architecture: The Player Profile

Prev Next
This content is currently unavailable in Portuguese (Brazil). You are viewing the default (English) version.

The effectiveness of your CRM and automation is directly tied to the depth of metadata provided.

Profile attributes are static or slow-moving data points that define who the user is.

1. System Attributes

These are predefined fields with built-in logic for communication and validation.

Field name

Description

user_id

Unique user ID from your backend system. Primary identifier.

customer_id

Unique customer ID from your backend system if different from above. This is an optional, secondary identifier.

email

User email address. Importing this value will automatically update the email_addressable system attribute.

email_addressable

This defines if the email address is reachable. This field should not usually be imported. It is set automatically when importing a value for email based on basic validation of the format of the email address. It will also be set to 0 by the system if messages sent to the user fail as permanently undeliverable.

email_subscription

Status of user's email subscription. 1 = subscribed, 0 = unsubscribed, or leave blank for undefined (not explicitly unsubscribed but not yet gained permission to contact). Should be included when importing email, if not it will default to undefined.

mobile_number

User mobile number. See the information in Manual entry for the correct E.164 number format.

sms_addressable

This defines if the SMS number is reachable. This field should not usually be imported. It is set automatically when importing a value for mobile_number based on basic validation of the format of the mobile number. It will also be set to 0 by the system if messages sent to the user fail as permanently undeliverable.

sms_subscription

Status of user's SMS subscription. Uses the same format as email_subscription. Should be included when importing mobile_number, if not will default to undefined.

whatsapp_number

Use the same format as mobile_number.

whatsapp_addressable

If the WhatsApp number is reachable. This field should not usually be imported. It is set automatically when importing a value for mobile_number based on basic validation of the format of the mobile number. It will also be set to false by the system if messages sent to the user fail as permanently undeliverable.

whatsapp_subscription

Status of user's WhatsApp subscription. Use the same format as email_subscription. Should be included when importing whatsapp_number, if not will default to undefined.

language

Language must be set using a two-letter ISO 639-1 language code. Eg. English should be entered with the code en.

timezone

User's timezone must be set using the format from the ICANN tz database. Eg. The timezone for London has the Format Europe/London, New York is America/New_York & Lagos is Africa/Lagos.

2. Custom Attributes

Custom profile attributes are static or slow-moving data points that define who the user is. Providing these enables advanced segmentation and dynamic content personalisation. Below are examples of some which we recommend:

Field Name

Type

Description

account_status

String

Current status of user's account.

account_closure_date

DateTime

Date and time of account closure.

account_closure_reason

Array

Reason for account closure.

acquisition_source_code

String

The marketing source or campaign that acquired the user.

birth_date

Date

User's date of birth.

block_reason

Array

Reason for account suspension or restriction

brand_code

String

Brand identifier in a multi-brand setup.

churn_score

Number

Propensity score indicating likelihood of player churn.

city

String

User's registered city.

country_name

String

User's registered country.

currency_code

String

Currency associated with the user's account

currency_symbol

String

Currency symbol for display (e.g., $, £, €).

customer_segment

String

Customer segment assigned to the user.

first_name

String

User's first name.

is_abuser

Boolean

Flag indicating if the user is suspected of bonus abuse.

is_blocked

Boolean

Flag indicating if the user is blocked.

is_self_excluded

Boolean

Flag indicating if the user has self-excluded.

kyc_status

String

Status of the KYC verification process.

kyc_verification_date

DateTime

Date when KYC was completed.

last_name

String

User's last name.

partner_id

String

ID of the affiliate or partner associated with the user.

payment_method

String

User's preferred payment method.

postal_code

String

User's registered postal code.

registration_date

DateTime

Date when the user registered.

reward_tier

String

Reward tier assigned to the user.

signup_language

String

Language preference at signup.

signup_product

String

The product the user signed up for at registration.

signup_offer

String

Welcome offer the user opted into at registration.

state

String

User's registered state.

username

String

User's chosen username.

3. Aggregated Attributes (Computed Attributes)

Xtremepush has the capability to consume row level data and aggregate this thus creating rolled up or computed attributes. These computed attributes are calculated in real-time as events happen.

Conversely, Xtremepush can consume already computed attributes from the PAM. These simply get ingested and displayed as user attributes.

Where there might be overlap, we suggest appending XP- to the display name in the custom attributes to differentiate between the two.

NOTE: If historical data is not loaded into Xtremepush, the Xtremepush lifetime calculations will not be representative of the full lifetime of the user, but only of the lifetime beginning on the Xtremepush platform.