Skip to main content
Three layers of observability: self-serve dashboards for day-to-day operations, webhooks for real-time integration, and exports for compliance and BI.

In-dashboard metrics

Available to every workspace under the Analytics section.

Real-time

  • Active calls (currently connected)
  • Calls in the last hour, broken down by agent
  • Today’s totals (inbound, outbound, transferred, voicemail)

Historical

  • Calls per day over the selected time range
  • Average call duration
  • Transfer success rate
  • AI resolution rate (calls that didn’t transfer)
  • Average wait-to-answer time
  • Cost per call (if billing is per-minute)
  • Per-agent performance comparisons

Call record detail

Every call shows:
  • Start time, duration, outcome (completed, transferred, voicemail, failed)
  • Direction (inbound or outbound)
  • Phone numbers involved
  • Full transcript
  • Audio recording (if enabled)
  • AI-generated summary
  • Sentiment tagging (positive, neutral, negative, flagged)
  • Tools invoked during the call
  • Transfer target if transferred

Webhooks

Real-time events pushed to your endpoint. Configure per agent in Agent Studio.

Event types

Webhook payload shape

Every payload is JSON:
Schemas are stable across releases; contact support for the full event catalogue while the public reference is in flight.

Delivery guarantees

  • Retried on 5xx responses up to 3 times with exponential backoff
  • Idempotency key in every payload so you can deduplicate
  • HMAC signature header for verification
  • Dead-letter queue for repeatedly failing webhooks (inspectable via admin UI)

Call detail record export

CSV export available via:
  • Dashboard: Analytics then Export
  • API: GET /v1/calls with date range
  • Scheduled email delivery: configure under Settings then Exports
Fields include everything visible in the Call Logs page, plus cost data if your plan includes it.

SIEM integration

Available on Enterprise plan.

Supported formats

  • Syslog (RFC 5424)
  • JSON over HTTPS (with HMAC signature)
  • AWS CloudWatch Logs (cross-account role)
  • Splunk HEC
  • Datadog logs

Events forwarded to SIEM

Same as webhook events, plus:
  • User logins (SmartAlex dashboard auth events)
  • Configuration changes (agents, trunks, extensions)
  • Credential lifecycle events
  • Role and permission changes
  • Data export requests

Grafana and custom dashboards

Metrics are available via a Prometheus-compatible endpoint (Enterprise plan). Point Grafana at it for custom dashboards. Standard metrics exposed:
  • smartalex_calls_total{agent,outcome,direction}
  • smartalex_call_duration_seconds{agent} (histogram)
  • smartalex_transfers_total{agent,outcome}
  • smartalex_trunk_registered{trunk}
  • smartalex_trunk_active_calls{trunk}
  • smartalex_api_requests_total{endpoint,status}

Per-number diagnostics

On the phone numbers page, every number has a Diagnostics button. Click it for a three-part diagnostic view: 1. Live health check
  • Phone number status: Active or Inactive
  • Agent assigned: yes / no / which
  • Voice platform registered: yes or no (Native Extension Mode trunks show registration state)
  • Telephony credentials: valid / missing / not applicable (skipped for Native Extension Mode numbers, there are no per-number credentials there)
  • Agent voice provider configured
2. Recent calls (last 10 in 24h) Each row shows direction (inbound or outbound), the other party, duration, and a friendly-label outcome (“No answer”, “Caller hung up”, “Reached us, agent never started”, etc.). Click a row to jump straight to the full call record. Native Extension Mode rows note that PBX-routed calls take ~1-2 seconds to appear after the call ends, because the reconciler picks them up out-of-band. 3. Recent errors (last 5 in 24h) Phone-related edge function errors with timestamps, error codes, and one-line context. Useful when a specific number is failing, the matching error usually lands here within seconds of the failure. The friendly disconnect labels are listed in Troubleshooting → Friendly-label disconnect reasons. The Diagnostics panel is the fastest path to understanding why a specific number isn’t behaving as expected, before reading raw call records.

Audit trail access

Available to admin users in Settings then Audit Log. Filters: by actor, by event type, by date range. Export as CSV. Retained for 1 year minimum. Longer retention available on Enterprise plans.

What SmartAlex cannot observe

Be clear about the boundary:
  • We don’t see your PBX logs. If a transfer failed because your PBX rejected it, the failure is visible in your PBX logs, not ours.
  • We don’t see your carrier CDRs. Carrier-level call data is with your carrier.
  • We don’t see internal extension-to-extension calls. Those never touch our platform.

Troubleshooting observability itself

Check the webhook status in Settings then Webhooks. Each configured endpoint shows recent delivery attempts and any failures. Common causes: endpoint 5xx, TLS cert expired, firewall blocking our IPs.
A failed call may not produce a full record if the failure happened before the AI started. Check the audit log for the call attempt.
If a caller said nothing (e.g., immediate hangup), the transcript will be minimal. If transcripts are empty on calls where conversation happened, contact support.
Metrics are eventually consistent. Allow up to 5 minutes for the dashboard to reflect recent activity.

Next steps

Testing & Validation

Validate a deployment is healthy.

Capacity & SLA

Operational targets.

MCP Server

Programmatic management via Claude, Cursor, or any MCP client.