Skip to main content
The handoff portal is a single-screen brief that summarizes a caller’s most recent conversation so a human agent can take over with full context. It is built on demand from the latest conversation matching a phone number and is never stored — every load generates a fresh analysis. The portal is backed by GET /core/agent-assist/{phone_number}. The page is deep-link only: it has no entry in the sidebar, so you reach it by opening a direct link (for example from a transfer notification or another tool).

How it works

When you open the portal, the backend finds the most recent conversation whose caller id (user_id) matches phone_number, ordered by created_at descending. It does not require the call to be live — it analyzes whichever conversation is newest for that number. If no conversation matches, the request returns 404 and the page shows a Not Found message.
GET /core/agent-assist/{phone_number}


  latest conversation for user_id == phone_number
  (order by created_at desc, limit 1)

        ├── none found ─────────────► 404 Not Found


  build brief from transcript + metadata


  AgentAssistPortal (returned, not persisted)
The brief is generated fresh on every request and is not saved anywhere. Reloading the page re-runs the analysis, so the result can vary slightly between loads.

What the brief contains

The response is an AgentAssistPortal object with seven sections.
SectionTypeDescription
headerobjectCaller name, phone number, call duration, and overall sentiment.
transfer_reasonstringA concise explanation of why the call needs a human.
call_summaryarray of stringsA short bulleted summary of the conversation (3–5 points).
information_collectedarrayKey/value pairs of details gathered during the call.
suggested_next_stepsarray1–3 recommended actions, each with a confidence level.
transcriptarrayThe full conversation with markers on notable moments.
compliance_flagsarrayCompliance concerns, empty when there are none.
FieldTypeDescription
caller_namestringThe caller’s name, or Unknown Caller when not found.
phone_numberstringThe caller’s phone number.
call_duration_secondsinteger or nullCall length in seconds; null when unknown.
sentimentobjectOverall caller sentiment (see below).
sentiment has a human-readable label and a level from a fixed enum:
levelMeaning
calmNo frustration detected.
slightly_frustratedEarly signs of frustration.
frustratedClearly frustrated.
angryAngry.
escalatedEscalated.

Information collected

Each item is a { key, value } pair, for example an account number or issue detail. The UI renders these as a two-column table.

Suggested next steps

Each step has an action and a confidence of high, medium, or low.

Annotated transcript

Each transcript entry has a role (user or assistant), the message content, and a list of markers. A marker has a type and a description highlighting why that moment matters. Marker types include:
typeWhat it flags
frustrationThe caller shows frustration or anger.
identity_verifiedThe caller’s identity was verified.
ai_commitmentThe AI made a promise or commitment.
escalation_triggerSomething triggered escalation to a human.
key_infoImportant information was shared.
sentiment_shiftA noticeable change in caller sentiment.

Compliance flags

Each flag has a type and a description. The list is empty when no concerns are found. Flags cover issues such as sensitive data shared without verification, promises that may not be fulfillable, and unmet regulatory requirements.

Access

The endpoint requires the conversations:read_sensitive scope. Because the brief exposes the full transcript and collected details, it is gated behind sensitive-conversation access rather than ordinary read access.
curl https://api.anyreach.ai/core/agent-assist/+15551234567 \
  -H "Authorization: Bearer <token>" \
  -H "X-Anyreach-Org: <organization_id>"
User PATs (pat_) also need the X-Anyreach-Org header. Org API keys (ak_) carry their organization implicitly and omit it.

Agent Assist overview

How Agent Assist fits into live and post-call handoffs.

Conversation detail

The persisted record of a single conversation, including its transcript.