Skip to main content

Overview

The rulesExecutionSummary object is returned whenever the rules engine runs: on Create Transaction, Create Person, Create Company, Create Entity, Create Event, and in webhook payloads for Risk Analysis events. It summarizes which rules matched (hit), which did not (no hit), executed actions, and scoring metadata.

Where it appears

ContextLocation
Create transaction (with executeRules: true)Response root and rulesResult.rulesExecutionSummary
Create person/company/entity (when risk matrix runs)Response root and rulesResult.rulesExecutionSummary
Create event (when rules run)Response root and rulesResult.rulesExecutionSummary
Risk analysis webhookspayload.rulesExecutionSummary

Field reference

FieldTypeDescription
rulesHitarrayRules whose conditions were met. Each item has name, description, score, priority, category, status, conditions, and optionally actions.
rulesNoHitarrayRules evaluated but conditions not met. Same structure as each rulesHit item.
actionsExecutedobjectPresent only when at least one action ran. Aggregated actions from all rules that hit.
totalScorenumberSum of the score of all rules that hit (excluding shadow rules).
scoreResultobjectNormalized score and label: rawScore, normalizedScore, and optional label (name, range, minScore, maxScore).
riskMatrixNamestringName of the risk matrix that was executed.
executionTimeMsnumberExecution time of the rules engine in milliseconds.
triggerstringEvent that triggered the evaluation (e.g. manual_evaluation, entity_created, enrichment_completed, created).
matchedRulesCountnumberNumber of rules that matched (same as rulesHit.length).

rulesHit / rulesNoHit item

FieldTypeDescription
namestringRule name.
descriptionstringRule description.
scorenumber | nullRule score (points when it hits).
prioritynumber | nullRule priority.
categorystringRule category.
statusstringRule status (e.g. active, shadow).
conditionsarrayConditions evaluated: each { field, value, operator? }.
actionsobjectFor rulesHit: executed actions. For rulesNoHit: configured actions. See below.

actions (inside each rule item)

FieldTypeDescription
alertsarrayAlert definitions: name, type, severity, description.
suggestionstringSuggestion type: BLOCK, SUSPEND, or FLAG.
statusstringStatus set by the rule.
assignedUserobject{ userId: string } if the rule assigns a user.
customKeysarrayCustom action keys (e.g. for workflows).

actionsExecuted (root)

FieldTypeDescription
alertsarrayAll alerts from rules that hit. Each alert can include ruleId, ruleExternalId, and investigationId (set after consolidation; null in the immediate response).
suggestionstringWinning suggestion by weight: BLOCK, SUSPEND, or FLAG.
statusstringFinal status applied (from the rule with highest weight).
assignedUserobject{ userId: string } if any rule assigned a user.
customKeysarrayAll custom action keys from rules that hit.

Complete example

The following example shows rulesExecutionSummary with every field populated as it would appear in an API response or webhook payload.
{
  "rulesHit": [
    {
      "name": "High-risk country",
      "description": "Flags entities or transactions linked to high-risk jurisdictions.",
      "score": 30,
      "priority": 1,
      "category": "compliance",
      "status": "active",
      "conditions": [
        { "field": "entity.countryCode", "value": ["IR", "KP", "SY"], "operator": "in" },
        { "field": "entity.type", "value": "person" }
      ],
      "actions": {
        "alerts": [
          {
            "name": "High-risk country alert",
            "type": "create_alert",
            "severity": "high",
            "description": "Entity is linked to a high-risk jurisdiction."
          }
        ],
        "suggestion": "FLAG",
        "status": "PENDING_REVIEW"
      }
    }
  ],
  "rulesNoHit": [
    {
      "name": "PEP match",
      "description": "Flags when PEP screening returns a match.",
      "score": 25,
      "priority": 2,
      "category": "compliance",
      "status": "active",
      "conditions": [
        { "field": "enrichment.complyadvantage_pep_enrichment.isPep", "value": true }
      ],
      "actions": {
        "alerts": [
          {
            "name": "PEP match",
            "type": "create_alert",
            "severity": "medium",
            "description": "PEP screening returned a match."
          }
        ],
        "suggestion": "SUSPEND"
      }
    }
  ],
  "actionsExecuted": {
    "alerts": [
      {
        "name": "High-risk country alert",
        "type": "create_alert",
        "severity": "high",
        "description": "Entity is linked to a high-risk jurisdiction.",
        "ruleId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "ruleExternalId": "RG-ENTITY-1",
        "investigationId": null
      }
    ],
    "suggestion": "FLAG",
    "status": "PENDING_REVIEW"
  },
  "totalScore": 30,
  "scoreResult": {
    "rawScore": 30,
    "normalizedScore": 42,
    "label": {
      "name": "Medium",
      "range": "30-80",
      "minScore": 30,
      "maxScore": 80
    }
  },
  "riskMatrixName": "Default Entity Matrix",
  "executionTimeMs": 156,
  "trigger": "entity_created",
  "matchedRulesCount": 1
}

Minimal example (no rules hit)

When no rules match, you still get rulesHit, rulesNoHit, totalScore, and metadata; actionsExecuted is omitted when empty.
{
  "rulesHit": [],
  "rulesNoHit": [
    {
      "name": "PEP match",
      "description": "Flags when PEP screening returns a match.",
      "score": 25,
      "priority": 2,
      "category": "compliance",
      "status": "active",
      "conditions": [
        { "field": "enrichment.complyadvantage_pep_enrichment.isPep", "value": true }
      ],
      "actions": {
        "alerts": [
          {
            "name": "PEP match",
            "type": "create_alert",
            "severity": "medium",
            "description": "PEP screening returned a match."
          }
        ],
        "suggestion": "SUSPEND"
      }
    }
  ],
  "totalScore": 0,
  "scoreResult": {
    "rawScore": 0,
    "normalizedScore": 0,
    "label": {
      "name": "Low",
      "range": "0-30",
      "minScore": 0,
      "maxScore": 30
    }
  },
  "riskMatrixName": "Default Entity Matrix",
  "executionTimeMs": 98,
  "trigger": "manual_evaluation",
  "matchedRulesCount": 0
}

Notes

  • investigationId in actionsExecuted.alerts is assigned asynchronously after alert consolidation; it is null in the immediate API response.
  • scoreResult.normalizedScore is the 0–100 value persisted on the entity or audit; totalScore (and scoreResult.rawScore) is the raw sum of rule scores.
  • trigger values include: manual_evaluation, entity_created, enrichment_completed, check_completed, created, updated, and others depending on context.