Observe

How monitoring works

Monitoring watches your agents and tells you the moment something breaks, so you're not refreshing dashboards hoping to catch a problem. This page explains exactly how it works — what's checked, when, and what happens when a rule trips.

The flow

Your calls, chats & API usage
            │
            ▼
   Monitoring engine  ── runs every 2 minutes
            │
            ▼
   Evaluate each monitor against real data
            │
      condition met?
       │          │
      no         yes
       │          │
   continue    Create an Issue
                  │
         is it already open?
          │              │
         yes            no
          │              │
    bump its count   Send notification
    (no re-alert)         │
                  ┌───────┼────────┐
                  ▼       ▼        ▼
                Email   Slack   Webhook

Separately, every 10 minutes a second sweep analyses finished calls to produce the quality signals some monitors depend on (see Post-call analysis).

What gets monitored

Your account

  • Failed calls & errors — errors across LLM, transcription, voice, or tool calls.
  • High error rate — the share of API events failing, not the raw count. Twenty failures out of twenty thousand events is noise; out of forty it's an outage.
  • Slow AI responses — median response latency. Median rather than average, so one slow outlier can't trigger a false alarm.
  • Unusually short calls — calls ending within seconds. This is the signature of a greeting that didn't play, one-way audio, or callers hanging up immediately.
  • Negative caller sentiment — how many callers ended the call unhappy.
  • Agent not understanding callers — the agent repeated itself or kept mishearing.
  • Monthly API budget — how much of your included usage is spent.
  • No agent activity — silence when you'd expect calls, often a misrouted number.

Platform health (visible to platform admins): server load, database latency, SSL expiry, and reachability of the providers Callable depends on.

The last two account monitors are the ones aggregates can't see. A call where the caller ends up furious, or where the agent asked the same question four times, is a perfectly "successful" call by every other measure — right duration, no errors. Only the transcript shows the problem.

Severity

Every issue carries one of four levels: Critical, High, Medium, Low. Severity is derived from how far past your threshold the condition is — an error rate at double your threshold is Critical where the threshold itself is High.

Issues: created, deduplicated, auto-resolved

When a monitor trips, Callable creates an Issue recording what happened, how severe it is, and when it started.

  • Deduplicated. A problem that persists doesn't alert every two minutes. The existing issue's count increases instead, and no new notification is sent.
  • Auto-resolved. There's nothing to tick off. When the condition clears, the next check marks the issue resolved and stamps the time. The Issues page shows recently resolved incidents with how long each lasted and how often it recurred — so a healthy account still shows you the engine is working.

Notifications

Configure a channel under Monitoring → Notifiers:

  • Email — a written alert with the issue title and detail.
  • SMS — texts a mobile from your Telnyx number. Alerts are shortened to stay within one message, since carriers bill per segment. Needs a sending number configured on the server.
  • Slack — posts to an Incoming Webhook. The URL must be the https://hooks.slack.com/services/… one Slack gives you; a normal website address will reject the post.
  • Webhook — POSTs JSON to any endpoint, with optional Bearer token, OAuth 2.0 (client-credentials), and custom headers. Outbound requests are checked so a URL can't be used to reach internal infrastructure.

Use Send test to confirm a channel works before you rely on it. A failed test explains the reason rather than showing a bare status code.

Post-call analysis

Sentiment and agent-confusion can't be measured from usage counters — they only exist in what was said. Every 10 minutes Callable analyses finished calls that have a transcript and haven't been analysed yet, recording the caller's sentiment, whether the agent repeated itself, and whether it kept failing to understand the caller.

Deliberate limits:

  • Calls shorter than 15 seconds are skipped — a wrong number isn't a quality signal, and counting it would distort the percentages.
  • A bounded number of calls are analysed per sweep, so a backlog is worked through steadily rather than all at once.
  • Only analysed calls count toward a percentage, so an unanalysed backlog can never make a struggling agent look healthy.
  • When the analysis is unsure, it records neutral. Monitoring should under-report rather than cry wolf.

Tuning it

Monitoring → Monitors lets you switch each monitor on or off and set its threshold. Thresholds are per-account, so a busy support line and a quiet booking line can have different definitions of "too many".

Next steps