Session viewer
The Session viewer is the room where you debug your agent. Every conversation is recorded as a timeline with the transcript, sentiment, tool calls, latency breakdown, and (on voice / video) the original media, synced to the millisecond.
Timeline
The timeline at the top of the viewer shows speaker turns, tool calls, sentiment shifts, and any escalation events. Scrub it like a video player, the transcript and audio scroll together. When you click a tool call you see the input, output, and duration inline.
Replay
Voice and video sessions can be replayed in the browser. Audio is mixed (caller / agent on separate channels), captions render alongside the transcript, and tool calls are highlighted in the timeline as they fire. Replay is the fastest way to catch turn-taking issues.
Sentiment
Sentiment is computed turn-by-turn (caller side) on a -1…+1 scale. The viewer shows a sparkline; analytics rolls it up to per-agent averages and per-version A/B comparisons. Sudden negative dips are usually where you need to fix a prompt.
Programmatic access
const { items } = await saaya.sessions.list({
agentId: "agt_2N3rH...",
since: "2026-04-01",
filter: { sentiment: { lt: -0.4 } },
limit: 50,
});
for (const s of items) {
const full = await saaya.sessions.get(s.id);
// …feed transcripts into your evals
}Exports
Use `sessions.exports` to push a batch of sessions out as JSONL or CSV, for warehousing, eval pipelines, or QA review. Exports respect your residency region; bytes never leave your region without an explicit cross-region export request.
Triage tip