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
| Parameter | What it means |
|---|---|
filter_positive | Conditions identifying customers who performed the target action (your "positive" examples). |
filter_negative | Conditions identifying customers who definitely did not perform it (your "negative" examples). |
filter_unknown | Conditions for ambiguous customers to exclude from training. |
data_src.features | Which user attributes to use as inputs for the model. |
action_name | A label for the action being modelled (e.g., "purchase", "renewal"). |
train_preset | Training quality: medium_quality (faster) or high_quality (more accurate). |
RFM Clustering
| Parameter | What it means |
|---|---|
data_src.event_table_id | Your transaction event table. |
data_src.column_price | The column containing the monetary value per transaction. |
data_src.column_status | The transaction status column. |
data_src.allowed_statuses | Which status values count as valid transactions. |
data_src.sample_interval | How many days of history to include. |
Interest
| Parameter | What it means |
|---|---|
data_src.source_table_id | The event table containing interest signals or page URLs. |
interest_column | The field with the interest label or page URL. |
lookback_days | How many days of event history to include. |
threshold | Significance threshold — how strong an interest signal needs to be before it is reported. |
pcLTV (Transactional)
| Parameter | What it means |
|---|---|
data_src.source_table_id | Your transaction event table. |
data_src.monetary_value_column | The column with the transaction value. |
data_src.transaction_date_column | The transaction timestamp column. |
data_src.transaction_status_allowed_values | Which transaction statuses to count. |
data_src.data_time_range | How 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:
- Create the necessary automated jobs and output tables.
- Schedule the model to run daily (default: 2:00 AM UTC).
- 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.