For the complete documentation index, see llms.txt. This page is also available as Markdown.

Analytics & Observability

Analyze call quality, production evaluations, operational health, recordings, event streams, and external-write review activity across a workspace.

Workspace-level analytics, call management, recording access, and private-preview external-write proposal review.

Analytics

  • Usage summary: Event counts by type with daily breakdown

  • Call statistics: Volume and duration metrics

  • Event breakdown: Distribution by type and source

  • Data quality: Overall and by-source confidence distributions, review-pipeline fields, and daily confidence/event-volume trends

Call Intelligence

Per-call intelligence summaries are recorded at call end for analytics use. Fully analyzed records can include a rule-based quality score (0-100), emotion summary, latency metrics, conversation shape, tool performance, and operator data. risk_summary and safety_summary remain in the wire shape for compatibility but are empty in the current runtime; safety escalation is authored in the agent and its context graph rather than produced by a separate call-risk classifier. Some external voice runtimes persist only a terminal call envelope, so quality_score can be null and analysis summaries can be empty. See Voice Agent, Call Intelligence Persistence for field details and scoring rules.

Call Intelligence Analytics (5 Endpoints)

These workspace-scoped operations require viewer+ access. Quality distribution tiers are excellent (90-100), good (70-89), fair (50-69), and poor (0-49).

Call Quality

Call Quality Analytics

get

Call quality score trends, distribution, and summary statistics.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
date_fromstring · date · nullableOptional
date_tostring · date · nullableOptional
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json

Call quality score trends, distribution, and summary over time.

Served from the live Delta projection analytics.source_call_intelligence.

get/v1/{workspace_id}/analytics/call-quality
GET /v1/{workspace_id}/analytics/call-quality HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "summary": {
    "avg_quality_score": 1,
    "p50_quality_score": 1,
    "p95_quality_score": 1,
    "total_calls": 1,
    "escalation_rate": 1,
    "avg_duration_seconds": 1
  },
  "trend": [
    {
      "date": "text",
      "avg_quality": 1,
      "call_count": 1,
      "escalation_count": 1
    }
  ],
  "quality_distribution": {
    "excellent_90_100": 1,
    "good_70_89": 1,
    "fair_50_69": 1,
    "poor_0_49": 1
  }
}
get

Emotion distribution and valence/arousal trends.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
date_fromstring · date · nullableOptional
date_tostring · date · nullableOptional
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/v1/{workspace_id}/analytics/emotion-trends
GET /v1/{workspace_id}/analytics/emotion-trends HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Latency

Latency Analytics

get

Voice latency metrics — p50/p95/p99 by component with trends.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
date_fromstring · date · nullableOptional
date_tostring · date · nullableOptional
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/v1/{workspace_id}/analytics/latency
GET /v1/{workspace_id}/analytics/latency HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Tool Performance

Tool Performance Analytics

get

Tool execution analytics — success rates, failure trends.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
date_fromstring · date · nullableOptional
date_tostring · date · nullableOptional
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/v1/{workspace_id}/analytics/tool-performance
GET /v1/{workspace_id}/analytics/tool-performance HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Operator Performance

Operator Performance Analytics

get

Operator escalation stats and quality comparison.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
date_fromstring · date · nullableOptional
date_tostring · date · nullableOptional
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json

Operator escalation performance and quality comparison over time.

get/v1/{workspace_id}/analytics/operator-performance
GET /v1/{workspace_id}/analytics/operator-performance HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "summary": {
    "total_calls": 1,
    "escalated_count": 1,
    "escalation_rate": 1,
    "operator_handled_count": 1,
    "avg_escalated_duration_seconds": 1,
    "avg_escalated_quality_score": 1,
    "avg_non_escalated_quality_score": 1
  },
  "trend": [
    {
      "date": "2026-01-01",
      "total_calls": 1,
      "escalated_count": 1
    }
  ]
}

Production Eval Quality

Reports channel-agnostic production-evaluation quality across voice, text, SMS, and email. When no verdicts exist, arrays are empty and rate fields are null rather than producing an error.

Eval Quality Analytics

get

Production-eval pass-rate and score trends (channel-agnostic — voice, text, SMS, email).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json

Production-eval quality: overall pass-rate/score, per-eval-key breakdown, and a trend.

The channel-agnostic quality surface. Returns zeroed shapes (empty by_eval_key and trend, null rates) when no verdicts exist for the workspace/window — the console renders an empty-state rather than erroring, so this ships safely ahead of the eager-eval trigger being enabled in production.

get/v1/{workspace_id}/analytics/eval-quality
GET /v1/{workspace_id}/analytics/eval-quality HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "summary": {
    "eval_key": "text",
    "total_evals": 1,
    "judged": 1,
    "pass_rate": 1,
    "avg_score": 1
  },
  "by_eval_key": [
    {
      "eval_key": "text",
      "total_evals": 1,
      "judged": 1,
      "pass_rate": 1,
      "avg_score": 1
    }
  ],
  "trend": [
    {
      "date": "2026-01-01",
      "total_evals": 1,
      "judged": 1,
      "pass_rate": 1,
      "avg_score": 1
    }
  ]
}

Calls & Recordings

  • Call listing: Filter by date, status, and duration. Calls include the final state and, when computed, a quality score from call intelligence. Supports continuation_token for cursor-based pagination alongside offset.

  • Call detail: Full call detail with turns, timeline, and playback data (proxied from the voice agent for rich conversation reconstruction)

  • Call intelligence: Terminal operational summary with quality breakdown, key moments, emotion, latency, conversation, tool, and operator data when available

  • Phone volume: Call volume per phone number over a time window

  • Recordings: Time-limited signed URLs for audio playback, plus recording metadata

Review Queue

The review queue API holds external write proposals awaiting a human decision: list pending proposals, inspect a proposal's payload, and approve or reject it. See the Review Queue guide for the lifecycle and the Review Queue API reference for endpoint schemas. Conversation-scoped integration approval is a different mechanism documented in Approval-Gated Integration Writes.

In the current Console, this connector proposal surface is labeled Outbound Write Approvals. The operator-shell Review Queue refers to patient-facing Surface approvals, not external write proposals.

Population Health Analytics

A layered epidemiology pipeline materializes six per-workspace analytics output tables for downstream risk stratification, dashboard visualizations, and explainable cohort analysis:

  • patient_condition_fact: exploded patient × condition fact with onset, age at onset, normalized code system, and cohort bucket.

  • disease_trends_monthly: incident counts by code × month × cohort.

  • disease_prevalence_current: active-condition prevalence with Wilson 95% confidence intervals, which stay reliable for small samples.

  • disease_cohort_drivers: Standardized Prevalence Ratio (SPR - the ratio of a cohort's observed condition prevalence to the prevalence expected from the overall population) per (code, cohort) with Byar 95% confidence intervals. The canonical measure of whether a cohort over- or under-indexes for a condition.

  • patient_condition_burden: per-patient Charlson Comorbidity Index (CCI - a weighted comorbidity score that predicts mortality risk from a patient's condition list; Quan 2005 ICD-10 mapping) and age-adjusted CCI (Charlson 1994). Feature-ready for risk models.

  • condition_cooccurrence_pairs: association statistics for condition pairs - Jaccard similarity, lift, pointwise mutual information (PMI - how much more often two conditions co-occur than chance would predict), and chi-square.

All association and ratio tables emit a min_support_met flag at the standard small-cell suppression threshold (observed ≥ 5). Filter on it to avoid reporting unstable rates.

Methodology follows the standard epidemiology literature: Wilson (1927), Breslow & Day (1987), Charlson et al. (1987, 1994), Quan et al. (2005).

Platform Health Monitoring

These operations provide real-time visibility without querying the analytics warehouse. Both require viewer+ access and use the standard read-rate policy.

Connector Health

Per-source event health for the workspace (last 24h)

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
as_ofstring · date-timeRequired

Server clock at query time (UTC).

read_model_statusstring · enumRequired

ready = Lakebase projection returned rows; empty = no summary rows; unavailable = read failed.

Possible values:
read_model_synced_atstring · date-time · nullableOptional

Most recent platform.connector_health_summary synced_at value in this response.

get/v1/{workspace_id}/sensorium/connector-health
GET /v1/{workspace_id}/sensorium/connector-health HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Successful Response

{
  "sources": [
    {
      "source": "text",
      "events_per_minute": 1,
      "events_last_hour": 1,
      "events_last_24h": 1,
      "last_ingested_at": "2026-01-01T00:00:00.000Z",
      "freshness": "fresh"
    }
  ],
  "as_of": "2026-01-01T00:00:00.000Z",
  "read_model_status": "ready",
  "read_model_synced_at": "2026-01-01T00:00:00.000Z"
}

Sense-to-Act Latency

Sense→act latency distribution for the workspace

get
Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
window_hoursinteger · min: 1 · max: 168Optional

Window size in hours (1-168).

Default: 24
Responses
200

Successful Response

application/json
as_ofstring · date-timeRequired

Server clock at query time (UTC).

window_hoursintegerRequired
overall_countintegerRequired

Total pairs across the window.

overall_p50_secondsnumber · nullableOptional

Median latency across the whole window; null if no pairs.

truncatedbooleanOptional

True when the underlying query hit the row cap; p50 is computed over the truncated sample.

Default: false
get/v1/{workspace_id}/sensorium/loop-latency
GET /v1/{workspace_id}/sensorium/loop-latency HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "as_of": "2026-01-01T00:00:00.000Z",
  "window_hours": 1,
  "overall_count": 1,
  "overall_p50_seconds": 1,
  "sparkline": [
    {
      "hour": "2026-01-01T00:00:00.000Z",
      "count": 1,
      "p50_seconds": 1
    }
  ],
  "truncated": false
}

Voice Judge

Audio-native quality evaluation can score eligible recorded calls across ten dimensions directly from stereo audio when the feature and required recording are available. Unlike post-interaction quality scoring, the Voice Judge evaluates the audio artifact and produces per-dimension scores with evidence for UI drill-down. The ten dimensions are also represented as aggregate built-in metrics in the metric store.

Voice Judge

Pipeline Health

Read-only endpoints under /v1/{workspace_id}/pipeline/ provide connector observability for the pipeline dashboard: composite pipeline status, per-source health and history, outbound summaries and logs, entity resolution metrics, and event throughput. If live connector status is unavailable, stored source and event history remains distinguishable from live health data. See Connector Runner, Pipeline Observability for the full endpoint reference.

Workspace Health Aggregate

The compatibility-named command-center operation returns a composite workspace health snapshot; it is not a current Console page. Legacy Console routes redirect to Home.

Get Command Center

get

Single-pane workspace health dashboard combining voice, pipeline, data quality, and identity metrics.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
workspace_idstring · uuidRequired
degraded_sectionsstring[]OptionalDefault: []
generated_atstringRequired
cachedbooleanOptionalDefault: false
get/v1/{workspace_id}/command-center
GET /v1/{workspace_id}/command-center HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "workspace_id": "123e4567-e89b-12d3-a456-426614174000",
  "voice": {
    "active_calls": 0,
    "active_escalated": 0,
    "calls_today": 0,
    "avg_quality_score_today": 1,
    "escalation_rate_today": 0
  },
  "pipeline": {
    "sources_total": 0,
    "sources_healthy": 0,
    "sources_degraded": 0,
    "sources_failing": 0,
    "events_last_hour": 0,
    "outbound_pending": 0,
    "outbound_failed": 0,
    "connector_status": "unavailable"
  },
  "data_quality": {
    "pending_reviews": 0,
    "approval_rate_7d": 1,
    "avg_confidence": 1,
    "entities_total": 0,
    "entities_merged_7d": 0
  },
  "identity": {
    "active_api_keys": 0,
    "active_sessions": 1,
    "failed_auths_1h": 1,
    "locked_accounts": 1,
    "mfa_coverage_pct": 1
  },
  "alerts": [
    {
      "level": "info",
      "code": "text",
      "message": "text",
      "section": "text"
    }
  ],
  "degraded_sections": [
    "text"
  ],
  "generated_at": "text",
  "cached": false
}

The cached field is true when the response reuses a recently generated snapshot and false when it was generated for the current request. The response defines six alert checks, but checks that depend on placeholder metrics do not establish outbound, confidence, or identity health. Permissions: viewer+.

Percentile Analytics

Advanced Call Metrics

Advanced Call Stats

get

Percentile-based call metrics: p50/p95/p99 for duration, quality, latency.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
daysinteger · min: 1 · max: 90OptionalDefault: 30
date_fromstring · date · nullableOptional
date_tostring · date · nullableOptional
intervalstring · enumOptionalDefault: 1dPossible values:
service_idstring · max: 64 · nullableOptional
directionstring · enum · nullableOptional

Filter by call direction: inbound or outbound

Possible values:
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/v1/{workspace_id}/analytics/calls/advanced
GET /v1/{workspace_id}/analytics/calls/advanced HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Period Comparison

Call Comparison

get

Period-over-period comparison of key call metrics.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
current_fromstring · dateRequired

Start of current period

current_tostring · dateRequired

End of current period

previous_fromstring · dateRequired

Start of previous period

previous_tostring · dateRequired

End of previous period

service_idstring · max: 64 · nullableOptional
Responses
200

Successful Response

application/json
Other propertiesanyOptional
get/v1/{workspace_id}/analytics/calls/comparison
GET /v1/{workspace_id}/analytics/calls/comparison?current_from=2026-01-01&current_to=2026-01-01&previous_from=2026-01-01&previous_to=2026-01-01 HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "ANY_ADDITIONAL_PROPERTY": "anything"
}

Entity Intelligence & World Sync

Entity-level intelligence endpoints (relationship graph, provenance, lineage, duplicate detection, entity search) and the outbound world sync events endpoint are documented with the rest of the world model API.

Data & World Model

Real-Time Event Stream

The Server-Sent Events stream carries real-time workspace updates.

Event Stream

get

Server-Sent Events stream for real-time workspace updates.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

SSE stream

or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
or
get/v1/{workspace_id}/events/stream
GET /v1/{workspace_id}/events/stream HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "event_type": "call.started",
  "call_sid": "text",
  "direction": "inbound",
  "service_id": "123e4567-e89b-12d3-a456-426614174000",
  "caller_id": "text"
}

Subscribes to the workspace event channel and streams events as they occur:

Event Type
When It Fires

call.started

New call begins

call.ended

Call completes

call.escalated

Operator escalation triggered

pipeline.sync_completed

Data source poll finished

pipeline.error

Pipeline error detected

review.submitted

Reserved legacy review event type; external-write proposal decisions are audit-logged and do not emit this event

alert

Alert threshold crossed

Protocol details:

  • Media type: text/event-stream

  • Heartbeat: Comment every 30s to keep connection alive

  • Reconnection: Send Last-Event-ID header on reconnect for replay of recent events

  • Backpressure: Oldest events dropped when the event buffer is full

  • Falls back to error event if the event system is unavailable

Permissions: viewer+.

Dashboards

Workspace-scoped analytics dashboards that can be rendered in the Console or embedded in external applications.

Dashboards are managed through CRUD endpoints under /v1/{workspace_id}/dashboards/. Each dashboard has a slug (URL-friendly identifier), title, description, and chart configuration. The list endpoint returns all dashboards for the workspace. The get-by-slug endpoint returns the full dashboard definition including data queries and chart layout.

The @amigo-ai/dashboards package provides an embeddable React component (DashboardEmbed) that renders a dashboard given a workspace ID and slug. The component supports two authentication modes: explicit API token or backend-for-frontend proxy (where the hosting application handles authentication and the component omits the token).

Last updated

Was this helpful?