363 lines
6.4 KiB
Markdown
363 lines
6.4 KiB
Markdown
# birthdaymessaging
|
||
|
||
|
||
Overview
|
||
|
||
The Birthday Messaging Intelligence Platform is a data-driven engagement system designed to transform static birthday campaigns into an intelligent engagement engine.
|
||
|
||
The system integrates CRM data, behavioral interaction logs, and predictive analytics to automatically identify high-value engagement opportunities, detect churn risk, and orchestrate personalized birthday messaging campaigns.
|
||
|
||
The platform evolves through three stages:
|
||
|
||
Stage Description
|
||
Week 2 Data pipeline and engagement preparation
|
||
Week 3 Predictive intelligence and behavioral segmentation
|
||
Future Multi-channel automation and campaign optimization
|
||
|
||
The end result is a system that predicts disengagement before it happens and activates personalized engagement campaigns.
|
||
|
||
System Architecture
|
||
|
||
The project is organized into modular components following a data pipeline → intelligence → automation architecture.
|
||
|
||
CRM Data + Clickstream Logs
|
||
│
|
||
▼
|
||
Unified Data Pipeline
|
||
│
|
||
▼
|
||
Data Cleaning & Compliance
|
||
│
|
||
▼
|
||
Engagement Intelligence
|
||
│
|
||
▼
|
||
Churn Prediction
|
||
│
|
||
▼
|
||
Predictive Segmentation
|
||
│
|
||
▼
|
||
Automation Triggers
|
||
Project Structure
|
||
birthdaymessaging/
|
||
│
|
||
├── config.yaml
|
||
├── main.py
|
||
├── README.md
|
||
│
|
||
├── data/
|
||
│ ├── raw/
|
||
│ └── processed/
|
||
│
|
||
├── docs/
|
||
│ ├── ethics.md
|
||
│ └── model-audits/
|
||
│
|
||
├── src/
|
||
│ ├── pipeline/ # Week 2 Data Engineering
|
||
│ │ ├── unified_stream.py
|
||
│ │ ├── relative_date_trigger.py
|
||
│ │ ├── rf_scoring.py
|
||
│ │ ├── list_hygiene.py
|
||
│ │ ├── ethics_flags.py
|
||
│ │ ├── deliverability_check.py
|
||
│ │ └── config_loader.py
|
||
│ │
|
||
│ ├── models/ # Week 3 Intelligence Layer
|
||
│ │ ├── engagement_scoring.py
|
||
│ │ ├── churn_classifier.py
|
||
│ │ └── send_time_optimizer.py
|
||
│ │
|
||
│ ├── segmentation/
|
||
│ │ └── predictive_segments.py
|
||
│ │
|
||
│ └── automation/
|
||
│ ├── trigger_engine.py
|
||
│ └── reactivation_triggers.yaml
|
||
Week 2: Data Engineering Pipeline
|
||
|
||
Week 2 focuses on building a clean, compliant data foundation.
|
||
|
||
Unified Data Stream
|
||
|
||
File:
|
||
|
||
src/pipeline/unified_stream.py
|
||
|
||
Functions:
|
||
|
||
Load CRM dataset
|
||
|
||
Load clickstream activity logs
|
||
|
||
Pseudonymize user identifiers
|
||
|
||
Merge datasets
|
||
|
||
Normalize timestamps (UTC)
|
||
|
||
Output:
|
||
|
||
unified_dataset.csv
|
||
Birthday Recursion Trigger
|
||
|
||
File:
|
||
|
||
relative_date_trigger.py
|
||
|
||
Implements recurring campaign triggers such as:
|
||
|
||
Birthday approaching
|
||
|
||
Pre-birthday reminder
|
||
|
||
Post-birthday follow-up
|
||
|
||
Ensures contacts re-enter the workflow annually.
|
||
|
||
Recency-Frequency Scoring
|
||
|
||
File:
|
||
|
||
rf_scoring.py
|
||
|
||
Calculates engagement indicators:
|
||
|
||
Recency index
|
||
|
||
Frequency of sessions
|
||
|
||
Session change delta
|
||
|
||
Used as an early engagement signal.
|
||
|
||
List Hygiene Automation
|
||
|
||
File:
|
||
|
||
list_hygiene.py
|
||
|
||
Improves deliverability by removing:
|
||
|
||
Invalid email domains
|
||
|
||
Disposable email services
|
||
|
||
Role-based addresses
|
||
|
||
Ethics and Compliance Layer
|
||
|
||
File:
|
||
|
||
ethics_flags.py
|
||
|
||
Detects sensitive data usage:
|
||
|
||
medical_condition
|
||
|
||
political_opinion
|
||
|
||
dietary_restrictions
|
||
|
||
Ensures compliance with GDPR principles.
|
||
|
||
Deliverability Simulation
|
||
|
||
File:
|
||
|
||
deliverability_check.py
|
||
|
||
Simulates email infrastructure readiness:
|
||
|
||
SPF validation
|
||
|
||
DKIM compatibility
|
||
|
||
DMARC enforcement
|
||
|
||
inactive contact suppression
|
||
|
||
Week 3: Engagement Intelligence Engine
|
||
|
||
Week 3 converts the pipeline into a predictive analytics platform.
|
||
|
||
Engagement Scoring Engine
|
||
|
||
File:
|
||
|
||
src/models/engagement_scoring.py
|
||
|
||
Calculates a normalized engagement score (0–100) based on:
|
||
|
||
Recency of interaction
|
||
|
||
Session frequency
|
||
|
||
Session duration
|
||
|
||
Click engagement depth
|
||
|
||
Formula:
|
||
|
||
Engagement Score =
|
||
(Recency Weight × Normalized Recency)
|
||
+ (Frequency Weight × Session Count)
|
||
+ (Engagement Depth Weight × Interaction Index)
|
||
|
||
Output classification:
|
||
|
||
Score Tier
|
||
75–100 Highly Engaged
|
||
50–74 Stable
|
||
25–49 Declining
|
||
0–24 At Risk
|
||
Churn Risk Classification
|
||
|
||
File:
|
||
|
||
src/models/churn_classifier.py
|
||
|
||
Defines churn risk using behavioral signals.
|
||
|
||
Conditions:
|
||
|
||
No login ≥ X days
|
||
AND
|
||
Engagement score drop ≥ Y%
|
||
|
||
Risk categories:
|
||
|
||
Risk Level Description
|
||
Low Healthy engagement
|
||
Medium Engagement declining
|
||
High High probability of churn
|
||
|
||
Output fields:
|
||
|
||
churn_risk_flag
|
||
churn_probability_score
|
||
risk_class
|
||
Predictive Segmentation
|
||
|
||
File:
|
||
|
||
src/segmentation/predictive_segments.py
|
||
|
||
Creates behavioral marketing segments using:
|
||
|
||
Lifecycle Stage
|
||
Engagement Tier
|
||
Birthday Proximity
|
||
Churn Risk Overlay
|
||
|
||
Example segment:
|
||
|
||
At-Risk + Birthday Approaching
|
||
Send-Time Optimization
|
||
|
||
File:
|
||
|
||
src/models/send_time_optimizer.py
|
||
|
||
Analyzes historical open patterns and determines optimal send windows.
|
||
|
||
Outputs:
|
||
|
||
optimal_send_hour
|
||
optimal_send_day
|
||
Automation Triggers
|
||
|
||
File:
|
||
|
||
src/automation/reactivation_triggers.yaml
|
||
|
||
Defines campaign orchestration rules.
|
||
|
||
Example:
|
||
|
||
IF churn_risk_flag = True
|
||
AND birthday_within_30_days = True
|
||
|
||
THEN send reminder email
|
||
WAIT 24h
|
||
IF unopened → send SMS
|
||
Model Governance & Ethics
|
||
|
||
Documentation:
|
||
|
||
docs/model-audits/week3-bias-review.md
|
||
docs/ethics.md
|
||
|
||
Audits include:
|
||
|
||
Geographic bias
|
||
|
||
Age-based performance variance
|
||
|
||
False-positive churn classification
|
||
|
||
Transparency measures include clear documentation of automated decision logic.
|
||
|
||
Running the Pipeline
|
||
|
||
Run the full pipeline:
|
||
|
||
python main.py
|
||
|
||
Pipeline order:
|
||
|
||
Week 2:
|
||
Data Merge
|
||
Birthday Triggers
|
||
RF Scoring
|
||
List Hygiene
|
||
Ethics Checks
|
||
Deliverability Simulation
|
||
|
||
Week 3:
|
||
Engagement Scoring
|
||
Churn Classification
|
||
Predictive Segmentation
|
||
Send-Time Optimization
|
||
|
||
Final dataset:
|
||
|
||
data/processed/final_intelligence_output.csv
|
||
Success Criteria
|
||
|
||
The system is considered operational when:
|
||
|
||
Engagement scores generated for all active users
|
||
|
||
Churn risk classification validated
|
||
|
||
Predictive segments documented
|
||
|
||
Reactivation triggers tested
|
||
|
||
Send-time optimization operational
|
||
|
||
Ethics documentation updated
|
||
|
||
Bias audit completed
|
||
|
||
Outcome
|
||
|
||
At completion, the platform functions as an Engagement Intelligence Engine.
|
||
|
||
Capabilities include:
|
||
|
||
Predicting disengagement
|
||
|
||
Prioritizing high-value users
|
||
|
||
Automating reactivation campaigns
|
||
|
||
Personalizing birthday marketing
|
||
|
||
Ensuring ethical data usage
|
||
|
||
The platform transforms traditional birthday messaging into a behaviorally intelligent engagement strategy.
|
||
|