Skip to content

Alerts

CalcBridge alerts notify you when important events occur, such as compliance threshold breaches, calculation errors, or workbook changes. This guide covers creating alerts, configuring conditions, setting up notification channels, and managing alerts.


Overview

Alerts help you stay informed without constantly monitoring the platform:

  • Proactive Monitoring - Get notified before issues become problems
  • Multi-Channel Delivery - Email, Slack, webhooks, and more
  • Customizable Conditions - Set thresholds that matter to your business
  • Audit Trail - Complete history of all alert triggers

Compliance Alerts

For CLO managers, compliance alerts are critical. Set up alerts for cushion thresholds to catch potential breaches before they occur.


Creating Alerts

Via UI

  1. Navigate to Alerts in the main menu
  2. Click Create Alert
  3. Configure the alert:
    • Name - Descriptive name for the alert
    • Type - What to monitor (see Alert Types below)
    • Condition - When to trigger
    • Channels - Where to send notifications
  4. Click Create

Via API

curl -X POST https://api.calcbridge.io/api/v1/alerts \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "CCC Bucket Warning",
    "type": "compliance_threshold",
    "workbook_id": "550e8400-e29b-41d4-a716-446655440000",
    "condition": {
      "test_name": "ccc_bucket",
      "operator": "greater_than",
      "threshold": 6.0,
      "cushion_warning": 1.5
    },
    "channels": ["email", "slack"],
    "recipients": {
      "email": ["compliance@example.com"],
      "slack": ["#compliance-alerts"]
    },
    "enabled": true
  }'

Alert Types

Compliance Alerts

Monitor compliance test results and cushion levels.

Alert Type Triggers When
Threshold Breach A compliance test fails
Cushion Warning Cushion falls below threshold
Status Change Test status changes (pass to fail, etc.)
Trend Alert Cushion trending toward breach

Example - Cushion Warning:

{
  "type": "compliance_threshold",
  "condition": {
    "test_name": "single_obligor",
    "cushion_warning": 2.0
  }
}
This alert triggers when the single obligor test cushion falls below 2%.

Calculation Alerts

Monitor calculation status and errors.

Alert Type Triggers When
Calculation Error A formula produces an error
Calculation Complete Recalculation finishes
Calculation Timeout Calculation exceeds time limit

Example - Calculation Error:

{
  "type": "calculation_error",
  "condition": {
    "error_types": ["#DIV/0!", "#REF!", "#VALUE!"],
    "cell_count_threshold": 1
  }
}

Workbook Alerts

Monitor workbook changes and activity.

Alert Type Triggers When
Workbook Modified Data changes in workbook
Workbook Uploaded New workbook is uploaded
Workbook Deleted Workbook is deleted
Schema Change Column structure changes

Example - Workbook Modified:

{
  "type": "workbook_modified",
  "condition": {
    "sheets": ["Portfolio", "Holdings"],
    "change_types": ["value_change", "formula_change"]
  }
}

System Alerts

Monitor system health and usage.

Alert Type Triggers When
API Error Rate Error rate exceeds threshold
Rate Limit Rate limit is approached
Quota Warning Usage quota nearing limit

Alert Conditions

Operators

Operator Description Example
equals Exact match status equals "failed"
not_equals Does not match status not_equals "passed"
greater_than Exceeds value cushion greater_than 5.0
less_than Below value cushion less_than 2.0
contains Contains substring name contains "CCC"
in In list of values status in ["failed", "warning"]
between Within range cushion between [1.0, 5.0]

Compound Conditions

Combine multiple conditions with AND/OR logic:

{
  "condition": {
    "operator": "and",
    "conditions": [
      {
        "field": "test_name",
        "operator": "equals",
        "value": "ccc_bucket"
      },
      {
        "field": "cushion",
        "operator": "less_than",
        "value": 1.5
      }
    ]
  }
}

Time-Based Conditions

Add time constraints to alerts:

{
  "condition": {
    "test_name": "oc_ratio",
    "operator": "less_than",
    "threshold": 120.0
  },
  "time_constraints": {
    "active_hours": {
      "start": "08:00",
      "end": "18:00",
      "timezone": "America/New_York"
    },
    "active_days": ["monday", "tuesday", "wednesday", "thursday", "friday"]
  }
}

Notification Channels

Email

Send alert notifications via email.

Configuration:

{
  "channels": ["email"],
  "recipients": {
    "email": [
      "user@example.com",
      "team@example.com"
    ]
  },
  "email_options": {
    "include_details": true,
    "format": "html"
  }
}

Email Contents: - Alert name and type - Condition that triggered - Current value and threshold - Link to view details in CalcBridge - Timestamp

Slack

Send alerts to Slack channels.

Configuration:

{
  "channels": ["slack"],
  "recipients": {
    "slack": [
      "#compliance-alerts",
      "@john.doe"
    ]
  },
  "slack_options": {
    "include_chart": true,
    "mention_users": ["U123ABC"]
  }
}

Slack Integration

You must first connect your Slack workspace in Settings > Integrations > Slack.

Webhooks

Send alerts to any HTTP endpoint.

Configuration:

{
  "channels": ["webhook"],
  "recipients": {
    "webhook": {
      "url": "https://your-service.com/alerts",
      "method": "POST",
      "headers": {
        "X-API-Key": "your-api-key"
      }
    }
  }
}

Webhook Payload:

{
  "alert_id": "alt_abc123",
  "alert_name": "CCC Bucket Warning",
  "triggered_at": "2025-01-15T10:30:00Z",
  "type": "compliance_threshold",
  "severity": "warning",
  "details": {
    "test_name": "ccc_bucket",
    "current_value": 6.2,
    "threshold": 7.5,
    "cushion": 1.3
  },
  "workbook": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Q1 Portfolio"
  }
}

PagerDuty

Escalate critical alerts to PagerDuty.

Configuration:

{
  "channels": ["pagerduty"],
  "recipients": {
    "pagerduty": {
      "routing_key": "your-pagerduty-routing-key",
      "severity": "critical"
    }
  }
}

Microsoft Teams

Send alerts to Microsoft Teams channels.

Configuration:

{
  "channels": ["teams"],
  "recipients": {
    "teams": {
      "webhook_url": "https://outlook.office.com/webhook/..."
    }
  }
}


Managing Alerts

Viewing Alerts

Navigate to Alerts to see:

Tab Description
Active Currently enabled alerts
Triggered Recent alert triggers
All All alerts including disabled

Alert Actions

Action Description
Enable/Disable Toggle alert on/off
Edit Modify alert configuration
Test Send test notification
Duplicate Copy alert with modifications
Delete Remove alert permanently

Alert History

View the complete history of alert triggers:

  1. Click on an alert
  2. Select the History tab
  3. See all trigger events with:
    • Timestamp
    • Trigger reason
    • Notification status
    • Value at trigger time

Alert Suppression

Temporarily suppress alerts to avoid noise:

{
  "suppression": {
    "enabled": true,
    "duration_minutes": 60,
    "reason": "Scheduled maintenance"
  }
}

Alert Severity

Alerts have severity levels that affect notification behavior:

Severity Description Typical Use
Info Informational, no action needed Workbook uploaded
Warning Attention recommended Cushion approaching threshold
Error Action required Calculation error
Critical Immediate action required Compliance breach

Severity Escalation

Configure escalation for unacknowledged alerts:

{
  "escalation": {
    "enabled": true,
    "escalate_after_minutes": 30,
    "escalate_to": {
      "channels": ["pagerduty"],
      "recipients": {
        "pagerduty": {
          "severity": "critical"
        }
      }
    }
  }
}

Best Practices

Alert Fatigue Prevention

  1. Set meaningful thresholds - Avoid alerts that trigger too frequently
  2. Use warning levels - Alert before breaches, not just on breach
  3. Group related alerts - Use single alert with multiple conditions
  4. Review and tune - Regularly review alert effectiveness

Critical Alert Setup

For compliance-critical alerts:

  1. Use multiple channels - Email + Slack + PagerDuty
  2. Configure escalation - Auto-escalate if not acknowledged
  3. Include stakeholders - Notify all relevant team members
  4. Document response - Create runbooks for each alert type

Testing Alerts

Always test new alerts:

  1. Create the alert
  2. Click Test to send test notification
  3. Verify notification received on all channels
  4. Adjust formatting and content as needed

Example Alert Configurations

Compliance Breach Alert (Critical)

{
  "name": "Compliance Test Failed",
  "type": "compliance_threshold",
  "severity": "critical",
  "condition": {
    "status": "failed"
  },
  "channels": ["email", "slack", "pagerduty"],
  "escalation": {
    "enabled": true,
    "escalate_after_minutes": 15
  }
}

Cushion Warning Alert

{
  "name": "Cushion Below 2%",
  "type": "compliance_threshold",
  "severity": "warning",
  "condition": {
    "cushion": {
      "operator": "less_than",
      "value": 2.0
    }
  },
  "channels": ["email", "slack"]
}

Daily Summary Alert

{
  "name": "Daily Compliance Summary",
  "type": "scheduled_summary",
  "severity": "info",
  "schedule": {
    "frequency": "daily",
    "time": "08:00",
    "timezone": "America/New_York"
  },
  "channels": ["email"]
}