Skip to main content

Engagement Levels

Engagement levels define score ranges that categorize leads based on their behavioral engagement. Use these to bucket leads into "Cold", "Warm", "Hot", etc. for easier prioritization.

When to Use This​

  • Categorize leads by engagement: Group leads into intuitive labels (Cold, Warm, Hot)
  • Simplify lead prioritization: Sales teams work with "Hot Leads" instead of "Leads with 75+ points"
  • Trigger actions by level: Send alerts when leads move from Warm to Hot
  • Reporting and dashboards: Show lead distribution across engagement levels

GET /engagement-scoring/levels​

List all engagement levels for the active Organizational Unit.

Request​

curl -u "CLIENT_ID:CLIENT_SECRET" \
"https://your-api.example.com/engagement-scoring/levels"

Response​

Status: 200 OK

{
"levels": [
{
"id": "level-123",
"name": "Cold",
"min_score": 0,
"max_score": 24,
"color": "#94a3b8",
"order": 1
},
{
"id": "level-456",
"name": "Warm",
"min_score": 25,
"max_score": 49,
"color": "#fbbf24",
"order": 2
},
{
"id": "level-789",
"name": "Hot",
"min_score": 50,
"max_score": 74,
"color": "#f97316",
"order": 3
},
{
"id": "level-abc",
"name": "Very Hot",
"min_score": 75,
"max_score": null,
"color": "#ef4444",
"order": 4
}
]
}

POST /engagement-scoring/levels​

Create a new engagement level.

Request​

curl -X POST https://your-api.example.com/engagement-scoring/levels \
-u "CLIENT_ID:CLIENT_SECRET" \
-H "Content-Type: application/json" \
-d '{
"name": "Super Hot",
"min_score": 100,
"max_score": null,
"color": "#dc2626",
"order": 5
}'

Request Body​

FieldRequiredTypeDescription
nameYesstringLevel label (e.g., "Hot", "Warm")
min_scoreYesnumberMinimum score for this level (inclusive)
max_scoreNonumberMaximum score for this level (inclusive). Use null for no upper limit.
colorNostringHex color code for UI display (default: #64748b)
orderNonumberDisplay order (lower = shown first)

Response​

Status: 201 Created

{
"id": "level-xyz",
"name": "Super Hot",
"min_score": 100,
"max_score": null,
"color": "#dc2626",
"order": 5,
"created_at": "2025-01-15T11:00:00Z"
}

Common Errors​

Status CodeErrorSolution
400Score ranges overlapEnsure max_score of one level doesn't overlap min_score of another
400Invalid color formatUse hex color codes like #ef4444
409Level name existsChoose a unique name or update existing level

Example Use Case​

Scenario: Create a 4-tier engagement level system

# Cold: 0-24 points
POST /engagement-scoring/levels
{"name": "Cold", "min_score": 0, "max_score": 24, "color": "#94a3b8", "order": 1}

# Warm: 25-49 points
POST /engagement-scoring/levels
{"name": "Warm", "min_score": 25, "max_score": 49, "color": "#fbbf24", "order": 2}

# Hot: 50-74 points
POST /engagement-scoring/levels
{"name": "Hot", "min_score": 50, "max_score": 74, "color": "#f97316", "order": 3}

# Very Hot: 75+ points
POST /engagement-scoring/levels
{"name": "Very Hot", "min_score": 75, "max_score": null, "color": "#ef4444", "order": 4}

Result: Leads are automatically categorized:

  • Lead with 20 points = "Cold"
  • Lead with 35 points = "Warm"
  • Lead with 65 points = "Hot"
  • Lead with 90 points = "Very Hot"

Important Notes​

Score Range Rules​

  • Ranges must not overlap
  • max_score can be null to indicate "no upper limit"
  • Highest level should have max_score: null
  • Lowest level should have min_score: 0

Display Order​

The order field controls how levels appear in the UI:

  • Lower numbers appear first
  • Use gaps (10, 20, 30) to allow insertions later
  • Independent of score ranges

See Also​