Safety & Monitoring
Agent safety guidance, supported audit and PHI-access evidence, configured retention policy, and compliance reporting boundaries.
This page covers the safety model, the audit trail, retention, and compliance reporting. The other pages in this section cover the rest of the monitoring and observability surface:
Analytics & Observability - workspace analytics, call intelligence aggregates, recordings, dashboards, the real-time event stream, and private-preview external-write proposal review
Insights - read-only SQL, schema discovery, and workspace health digests
Metric Store - built-in and custom metric definitions, AI evaluation, and metric queries
Call Trace Analysis - per-call emotional arcs, key decision moments, and coaching recommendations
Voice Judge - audio-native quality scores across ten voice dimensions
Production Evals - assertion and metric checks against live completed calls
Simulation Coverage - systematic exploration of context graph state space
Prompt Logs - full LLM inputs and outputs for auditing and debugging
Trace Export - tool-call trace spans for external observability collectors
Safety Model
Safety behavior is authored in the agent and its Context Graph through guidance, entry states, exit conditions, eligible tools, and escalation instructions. A model can still miss or misclassify a concern, so teams must test representative cases and preserve a human fallback. Supported workflows can forward a call or let an operator join; there is no separate configuration surface that makes every conversation independently safety-certified.
See Voice Agent for the call escalation flow and Operators for the operator join flow.
Audit Trail
The Platform API provides a workspace-scoped audit surface for supported event producers. Covered routes and services record the context available to that producer; the audit API is not proof that every platform action or downstream system mutation was captured.
PHI Access Logging
Supported PHI-sensitive routes classify their audit events, including selected entity reads, FHIR patient data, call recordings, call intelligence, and audit-report access. Covered events use phi_accessed: true for reporting. Each entry keeps the resource identifier from the request, including call IDs and other external identifiers, with the matched route and outcome. An authenticated request that fails before a response starts is recorded as a failure with no HTTP status. Validate route coverage against your own audit requirements instead of assuming the PHI report observes every access path.
Audit publication is separate from the primary operation on supported asynchronous paths. An operation can therefore succeed even if its audit write is delayed or fails; monitor audit delivery rather than treating it as transactionally coupled evidence.
Audit Query Endpoints
All audit query endpoints require admin or owner permissions and are workspace-scoped.
List Audit Events
List audit events with filters and pagination.
Permissions: admin, owner (Audit.view)
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Filter by service name
Filter by action type
Filter by actor entity
Filter by resource type
Filter by specific resource
Only PHI access events
falseStart of date range
End of date range
Page size
50Page offset
0Successful Response
Validation Error
Rate limited
GET /v1/{workspace_id}/audit HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"events": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "text",
"service": "text",
"actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
"actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
"action": "text",
"resource_type": "text",
"resource_id": "text",
"resource_name": "text",
"ip_address": "text",
"user_agent": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"phi_accessed": false
}
],
"total": 1,
"limit": 1,
"offset": 1,
"has_more": true
}Get the PHI Access Report
PHI access report — who accessed what patient data, when, from where.
Required for HIPAA breach investigation (§164.312(b)).
Permissions: admin, owner (Audit.view)
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Filter by patient entity
Start of date range
End of date range
Page size
50Page offset
0Successful Response
Validation Error
Rate limited
GET /v1/{workspace_id}/audit/phi-access HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"events": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "text",
"service": "text",
"actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
"actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
"action": "text",
"resource_type": "text",
"resource_id": "text",
"resource_name": "text",
"ip_address": "text",
"user_agent": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"phi_accessed": false
}
],
"total": 1,
"limit": 1,
"offset": 1,
"has_more": true
}Get an Entity Access Log
Per-entity access history — all audit events for a specific resource.
Permissions: admin, owner (Audit.view)
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Start of date range
End of date range
Page size
50Page offset
0Successful Response
Entity not found
Validation Error
Rate limited
GET /v1/{workspace_id}/audit/entity/{entity_id}/access-log HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"events": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"timestamp": "text",
"service": "text",
"actor_entity_id": "123e4567-e89b-12d3-a456-426614174000",
"actor_credential_id": "123e4567-e89b-12d3-a456-426614174000",
"action": "text",
"resource_type": "text",
"resource_id": "text",
"resource_name": "text",
"ip_address": "text",
"user_agent": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"phi_accessed": false
}
],
"total": 1,
"limit": 1,
"offset": 1,
"has_more": true
}Get the Audit Summary
Audit summary statistics for compliance dashboard.
Permissions: admin, owner (Audit.view)
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Start of date range
End of date range
Successful Response
Validation Error
Rate limited
GET /v1/{workspace_id}/audit/summary HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"total_events": 1,
"phi_access_events": 1,
"unique_actors": 1,
"services_with_events": 1
}Data Lineage
For entity-level provenance and the currently populated lineage fields, see Entity Intelligence. Compatibility arrays that are empty do not establish destination-delivery or review history.
Retention Policies
Get the Retention Policy
Get the workspace retention policy.
Returns HIPAA-compliant defaults (2190 days / 6 years) for any field not explicitly configured. Advisory in v1 — no automated deletion.
Permissions: authenticated (any role).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Rate limited
GET /v1/{workspace_id}/settings/retention HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"call_recordings_days": 1,
"call_transcripts_days": 1,
"audit_log_days": 1,
"world_events_days": 1,
"phi_data_days": 1,
"legal_hold": true,
"legal_hold_reason": "text"
}Returns configured defaults of 2,190 days (6 years) for fields that are not explicitly set. A stored duration is not by itself a compliance determination.
Update the Retention Policy
Update the workspace retention policy.
Partial updates supported — only provided fields are changed. Advisory in v1: policy is stored and displayed but no automated deletion is performed. Legal hold overrides all retention.
Permissions: admin, owner (Workspace.update).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Workspace not found
Validation error
Rate limited
PUT /v1/{workspace_id}/settings/retention HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 156
{
"call_recordings_days": 1,
"call_transcripts_days": 1,
"audit_log_days": 1,
"world_events_days": 1,
"phi_data_days": 1,
"legal_hold": true,
"legal_hold_reason": "text"
}{
"call_recordings_days": 1,
"call_transcripts_days": 1,
"audit_log_days": 1,
"world_events_days": 1,
"phi_data_days": 1,
"legal_hold": true,
"legal_hold_reason": "text"
}Updates are partial: omitted fields remain unchanged.
The retention GET endpoint is available to any authenticated user; the PUT endpoint requires admin or owner. Retention changes are audit-logged.
Audit Log Export
Create an Audit Export
Submit an async audit-events export.
Runs the filtered query on the SQL warehouse with results staged to
presigned CSV EXTERNAL_LINKS, and returns a Databricks statement_id.
Poll GET /export/{statement_id} for the download links. Nothing is
materialized in platform-api, so the export scales to large date windows.
Permissions: admin, owner
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Filter by service name.
Filter by action type.
falseSuccessful Response
Databricks statement handle — poll GET /export/{statement_id} for links.
pending: still running. ready: links available immediately.
Validation Error
Rate limited
POST /v1/{workspace_id}/audit/export HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 127
{
"date_from": "2026-01-01T00:00:00.000Z",
"date_to": "2026-01-01T00:00:00.000Z",
"service": "text",
"action": "text",
"phi_only": false
}{
"statement_id": "text",
"status": "pending"
}Poll an Audit Export
Poll a submitted audit export and return presigned CSV download links.
status is pending until the statement finishes, then ready with
chunks carrying short-lived presigned URLs the client downloads
directly from object storage. The links expire quickly (~15 min) — re-poll
to refresh. The workspace scope was fixed into the statement at submit
time; statement_id is an unguessable, short-lived capability.
Permissions: admin, owner (Audit.export — same gate as create).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Result file format (CSV).
0Invalid statement_id
Rate limited
GET /v1/{workspace_id}/audit/export/{statement_id} HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"statement_id": "text",
"status": "pending",
"result_format": "text",
"total_row_count": 0,
"chunks": [
{
"chunk_index": 1,
"row_count": 1,
"byte_count": 1,
"external_link": "text",
"expiration": "text"
}
]
}Export creation is asynchronous. Save the returned statement identifier and poll until the export is ready, then download the CSV chunks through the returned short-lived presigned links. Re-poll to refresh expired links. Treat the statement identifier and download URLs as sensitive capabilities.
The old export inventory and filename-based download endpoints have been removed. The export is no longer a synchronous NDJSON file capped at 50,000 events.
Creating an export records a PHI-sensitive audit event. A direct download from a presigned URL is separate from the authenticated Platform API and does not establish a separate Platform download audit event. Creating and polling exports require the Audit.export permission.
Compliance Reports
These reports provide compliance-oriented summaries and access evidence.
Get the Compliance Dashboard
Composite compliance dashboard — HIPAA status, retention, credentials summary.
Aggregates compliance signals into a single dashboard view.
Permissions: admin, owner (Audit.view).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Composite compliance health overview.
Rate limited
GET /v1/{workspace_id}/compliance/dashboard HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"hipaa_status": "text",
"retention_days": 1,
"legal_hold": true,
"total_credentials": 1,
"active_credentials": 1,
"last_audit_export": "text",
"generated_at": "text"
}Get the HIPAA Evidence Report
HIPAA compliance evidence report.
Aggregates audit statistics, retention policy, encryption status, and API key summary for the specified period. Identity-specific fields (MFA, SSO, lockout) return null pending integration.
Permissions: admin, owner (Audit.view).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Report period in days
90Successful Response
Validation Error
Rate limited
GET /v1/{workspace_id}/compliance/hipaa HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"generated_at": "text",
"report_period_days": 1,
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"audit_summary": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"retention_policy": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"encryption": {
"ANY_ADDITIONAL_PROPERTY": true
},
"access_controls": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"api_key_summary": {
"ANY_ADDITIONAL_PROPERTY": 1
},
"compliance_status": "text"
}Get the Access Review
Access review export for SOC2 attestation.
Lists all API key credentials with role, status, and activity dates. Download, review, and upload signed attestation for SOC2 compliance.
Permissions: admin, owner (Audit.view).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Rate limited
GET /v1/{workspace_id}/compliance/access-review HTTP/1.1
Host: platform.api-us.concurrence.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"generated_at": "text",
"workspace_id": "123e4567-e89b-12d3-a456-426614174000",
"credentials": [
{
"ANY_ADDITIONAL_PROPERTY": "anything"
}
],
"total_credentials": 1,
"jwt_credentials_note": "text"
}All three require admin or owner permissions. Treat their responses as product evidence, not an independent certification or a complete assessment of the customer's control environment.
Last updated
Was this helpful?

