Engagement Rulesets
Engagement rulesets are containers that group related engagement scoring rules together. Each ruleset tracks a separate engagement score, allowing you to test different scoring models or track different engagement types simultaneously.
When to Use This
- Organize scoring logic: Group related rules (e.g., "Email Engagement", "Product Trial Activity")
- Test scoring models: Run multiple rulesets side-by-side to compare effectiveness
- Campaign-specific scoring: Create temporary rulesets for specific campaigns or time periods
- Multi-dimensional scoring: Track different aspects of engagement separately
GET /rulesets
List all engagement rulesets for the active Organizational Unit.
Request
curl -u "CLIENT_ID:CLIENT_SECRET" \
"https://your-api.example.com/rulesets"
Response
Status: 200 OK
{
"rulesets": [
{
"id": "ruleset-abc",
"name": "Standard Engagement",
"score_field": "engagement_score",
"active": true,
"start_date": null,
"end_date": null,
"created_at": "2025-01-15T10:00:00Z"
},
{
"id": "ruleset-xyz",
"name": "Q1 Campaign",
"score_field": "campaign_score",
"active": true,
"start_date": "2025-01-01",
"end_date": "2025-03-31",
"created_at": "2025-01-15T11:00:00Z"
}
]
}
POST /rulesets
Create a new engagement ruleset.
Request
curl -X POST https://your-api.example.com/rulesets \
-u "CLIENT_ID:CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Product Trial Engagement",
"score_field": "trial_score",
"active": true
}'
Request Body
| Field | Required | Type | Description |
|---|---|---|---|
name | Yes | string | Ruleset name |
score_field | No | string | Custom score field name (default: "engagement_score") |
active | No | boolean | Whether ruleset is active (default: true) |
start_date | No | string | ISO 8601 date when ruleset becomes active |
end_date | No | string | ISO 8601 date when ruleset expires |
Response
Status: 201 Created
{
"id": "ruleset-new",
"name": "Product Trial Engagement",
"score_field": "trial_score",
"active": true,
"start_date": null,
"end_date": null,
"created_at": "2025-01-15T12:00:00Z"
}
Common Errors
| Status Code | Error | Solution |
|---|---|---|
| 400 | Missing name | Provide a ruleset name |
| 409 | Duplicate name | Ruleset with this name already exists |
| 400 | Invalid date format | Use ISO 8601 format (YYYY-MM-DD) |
Example Use Cases
Use Case 1: Campaign-Specific Scoring
Track engagement for a specific campaign with time boundaries:
POST /rulesets
{
"name": "Q1 Webinar Series",
"score_field": "webinar_engagement",
"start_date": "2025-01-01",
"end_date": "2025-03-31"
}
# Add rules for webinar-specific events
POST /rules
{"ruleset_id": "...", "event_type": "webinar_registration", "weight": 10}
POST /rules
{"ruleset_id": "...", "event_type": "webinar_attendance", "weight": 30}
Use Case 2: A/B Test Scoring Models
Run two scoring models simultaneously to see which better predicts conversions:
# Model A: Conservative scoring
POST /rulesets
{"name": "Scoring Model A", "score_field": "score_a"}
POST /rules
{"ruleset_id": "model-a-id", "event_type": "email_open", "weight": 3}
# Model B: Aggressive scoring
POST /rulesets
{"name": "Scoring Model B", "score_field": "score_b"}
POST /rules
{"ruleset_id": "model-b-id", "event_type": "email_open", "weight": 10}
Result: Each lead has two scores (score_a and score_b). Compare which model's high-scorers convert better.
Use Case 3: Multi-Stage Engagement
Track engagement across different customer journey stages:
# Awareness stage
POST /rulesets
{"name": "Awareness Engagement", "score_field": "awareness_score"}
# Consideration stage
POST /rulesets
{"name": "Consideration Engagement", "score_field": "consideration_score"}
# Decision stage
POST /rulesets
{"name": "Decision Engagement", "score_field": "decision_score"}
Important Notes
Score Fields
Each ruleset can track scores in a custom field:
- Default:
engagement_score - Custom: Any field name (e.g.,
campaign_score,trial_score) - Multiple rulesets can write to the same field (scores add up) or different fields (separate tracking)
Active vs. Inactive
- Active: Rules in this ruleset currently award points
- Inactive: Historical data preserved, but no new points awarded
Time Boundaries
start_date: Ruleset inactive before this dateend_date: Ruleset inactive after this date- Both optional - omit for always-active rulesets
Related Endpoints
- List Rules for Ruleset - View all rules in a ruleset
- Create Engagement Rule - Add rules to rulesets
- Update/Delete Rulesets - Modify or remove rulesets (not yet documented)
- Profile Scoring Rulesets - Score based on demographics/firmographics