Engagement Rules
Engagement rules assign points based on behavioral actions (email opens, page views, form submissions, etc.). These rules define how lead engagement scores are calculated.
GET /rules
List all engagement rules across all rulesets for the active Organizational Unit.
Request
curl -u "CLIENT_ID:CLIENT_SECRET" \
"https://your-api.example.com/rules"
Response
Status: 200 OK
{
"rules": [
{
"id": "rule-123",
"ruleset_id": "ruleset-abc",
"event_type": "email_open",
"weight": 5,
"active": true
},
{
"id": "rule-456",
"ruleset_id": "ruleset-abc",
"event_type": "page_view",
"weight": 10,
"active": true
}
]
}
POST /rules
Create a new engagement rule within a ruleset.
Request
curl -X POST https://your-api.example.com/rules \
-u "CLIENT_ID:CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"ruleset_id": "ruleset-abc",
"event_type": "demo_request",
"weight": 50
}'
Request Body
| Field | Required | Type | Description |
|---|---|---|---|
ruleset_id | Yes | string | The ruleset to add this rule to |
event_type | Yes | string | The event type to score (e.g., "email_open", "page_view") |
weight | Yes | number | Points to award when this event occurs (can be negative) |
active | No | boolean | Whether rule is active (default: true) |
Response
Status: 201 Created
{
"id": "rule-789",
"ruleset_id": "ruleset-abc",
"event_type": "demo_request",
"weight": 50,
"active": true,
"created_at": "2025-01-15T11:30:00Z"
}
Example: Build a Scoring Model
# 1. Create ruleset
POST /rulesets
{"name": "Standard Engagement", "score_type": "engagement"}
# 2. Add rules for different event types
POST /rules
{"ruleset_id": "ruleset-abc", "event_type": "email_open", "weight": 5}
POST /rules
{"ruleset_id": "ruleset-abc", "event_type": "page_view", "weight": 10}
POST /rules
{"ruleset_id": "ruleset-abc", "event_type": "form_submit", "weight": 25}
POST /rules
{"ruleset_id": "ruleset-abc", "event_type": "demo_request", "weight": 50}
Result: Leads earn 5 points for email opens, 10 for page views, 25 for form submissions, and 50 for demo requests.
Common Errors
| Status Code | Error | Solution |
|---|---|---|
| 400 | Missing ruleset_id | Provide valid ruleset ID |
| 400 | Missing event_type | Specify event type to score |
| 404 | Ruleset not found | Verify ruleset exists |
| 409 | Duplicate rule | Rule for this event_type already exists in ruleset |
Related Endpoints
- Engagement Rulesets - Manage rulesets
- Update/Delete Rules - Modify or remove rules
- List Rules for Ruleset - View all rules in a specific ruleset
- Profile Scoring Rules - Score based on demographics/firmographics
See Also
- Engagement Scoring Guide
- Event Ingestion - How to send events that trigger scoring