Skip to main content

Configure a Model

AI model instances in BPP are configured via a JSON configuration that tells the model which data to use, what to predict, and how to train. The configuration differs per model type.

Steps

1. Create a new model instance

Navigate to AI Models in the left sidebar and click New Model (or Create).

2. Select the model type

Choose the type of model you want to run:

  • Action Prediction — propensity score for a specific customer action.
  • pcLTV (Transactional) — predicted customer lifetime value from purchase/transaction history.
  • pcLTV (Subscription) — predicted LTV for subscription-based businesses.
  • RFM Clustering — descriptive segmentation by Recency, Frequency, and Monetary value.
  • Interest — customer interest classification from browsing and event data.

3. Name the model instance

Give the instance a descriptive name — this name will appear in the audience and signal filter builders alongside the model's output fields. Choose something that makes it clear what the model predicts (e.g., purchase_prediction_b2c, rfm_365d).

4. Enter the JSON configuration

Each model type requires a configuration object. The key parameters per type are:

Action Prediction

ParameterWhat it means
filter_positiveConditions identifying customers who performed the target action (your "positive" examples).
filter_negativeConditions identifying customers who definitely did not perform it (your "negative" examples).
filter_unknownConditions for ambiguous customers to exclude from training.
data_src.featuresWhich user attributes to use as inputs for the model.
action_nameA label for the action being modelled (e.g., "purchase", "renewal").
train_presetTraining quality: medium_quality (faster) or high_quality (more accurate).

RFM Clustering

ParameterWhat it means
data_src.event_table_idYour transaction event table.
data_src.column_priceThe column containing the monetary value per transaction.
data_src.column_statusThe transaction status column.
data_src.allowed_statusesWhich status values count as valid transactions.
data_src.sample_intervalHow many days of history to include.

Interest

ParameterWhat it means
data_src.source_table_idThe event table containing interest signals or page URLs.
interest_columnThe field with the interest label or page URL.
lookback_daysHow many days of event history to include.
thresholdSignificance threshold — how strong an interest signal needs to be before it is reported.

pcLTV (Transactional)

ParameterWhat it means
data_src.source_table_idYour transaction event table.
data_src.monetary_value_columnThe column with the transaction value.
data_src.transaction_date_columnThe transaction timestamp column.
data_src.transaction_status_allowed_valuesWhich transaction statuses to count.
data_src.data_time_rangeHow many days of history to train on.

5. Save as Draft

Click Save to create the model instance in Draft status. Nothing runs yet at this point.

6. Activate the model

When you are ready to start running the model, set its status to Ready (toggle Enabled on). BPP will:

  1. Create the necessary automated jobs and output tables.
  2. Schedule the model to run daily (default: 2:00 AM UTC).
  3. Run the model on the first scheduled trigger.

The first run may take several minutes depending on your data volume.

Tips for Action Prediction

For best results, the feature inputs should be customer-level summaries — not raw event rows. For example, instead of feeding the model a table of individual page views, feed it a summary with columns like total_sessions_30d, avg_order_value, days_since_last_purchase.

BPP's Fields Builder can generate these summaries automatically — see Fields Builder for details.

Suggested feature categories:

  • Recency: days since last login, days since last purchase.
  • Frequency: number of sessions, order count, email opens.
  • Contextual: device type, country, plan type.
  • Value: average order value, contract amount.

Configuration validation

The configuration is validated when you activate the model. If required fields are missing or your source tables cannot be found, the model will show an Error status with a description of what is wrong. Fix the configuration and re-enable.