Browsing conversations
Navigate to Conversation History in the sidebar. The list shows all conversations from agents that belong to your account — other tenants’ conversations are automatically filtered out.Available filters
| Filter | Description |
|---|---|
| Agent | Show conversations from a specific agent |
| Call outcome | Filter by success or failure |
| Date range (before) | Show calls that started before a Unix timestamp |
| Date range (after) | Show calls that started after a Unix timestamp |
| Page size | Number of results per page (1–100, default 20) |
Conversation list fields
Each row in the list shows:| Field | Description |
|---|---|
| Agent name | The agent that handled the call |
| Date | Call start time formatted as Mar 25, 2026, 10:00 AM |
| Duration | Call length in M:SS format |
| Messages | Number of transcript turns |
| Status | successful, error, processing, or no_answer |
Viewing a conversation
Click any row to open the full conversation detail page. The detail view includes:Transcript
Transcript
The full turn-by-turn transcript with speaker labels (
user / assistant) and the time offset within the call for each message.Metadata
Metadata
Call start time, duration in seconds, cost in ElevenLabs credits, phone call details (caller/callee numbers), and whether the call originated from a batch campaign.
Analysis
Analysis
ElevenLabs call outcome (
call_successful), transcript summary, and any evaluation criteria results configured on the agent.LLM cost breakdown
LLM cost breakdown
Per-model token usage and cost split by
irreversible_generation (agent responses) and initiated_generation (proactive agent messages), plus the base llm_price charge.Dynamic variables
Dynamic variables
Any variables injected at the start of the conversation via
conversation_initiation_client_data, such as customer name or account ID.Audio playback
If the conversation has audio (has_audio: true), you can stream or download the recording:
audio/mpeg (MP3). The filename is conversation_{conversationId}.mp3.
has_audio, has_user_audio, and has_response_audio are separate flags. A conversation can have response audio (agent voice) without user audio (caller audio) depending on recording settings.AI-powered data extraction
Sniko uses OpenRouter to analyze a conversation’s transcript and extract structured information — such as caller intent, key details mentioned, and action items — using a language model. Extraction results are cached in theconversation_extractions table after the first run. Subsequent requests for the same conversation return the cached result instantly.
Triggering extraction on a single conversation
cached is true and message is "Information loaded from cache".
Auto-extraction
When you open the conversation list, Sniko automatically queues extraction jobs for any new conversations that have a transcript but no cached extraction. These jobs run in the background via the Laravel queue.Batch extraction
To extract data from all conversations that are missing an extraction record, use the batch extraction endpoint:BatchExtractMissingInformation) and returns a cache_key you can use to poll progress:
Polling extraction progress
processed equals total.
Checking how many conversations need extraction
Downloading extracted data
Single conversation
.txt file. If no extraction exists yet, it runs the extraction first and caches it before downloading.
Filename format: conversation_{conversationId}_info_{YYYY-MM-DD_HHmmss}.txt
All conversations (bulk report)
- Fetches all conversation pages (up to 10 pages × 100 results = 1,000 conversations)
- Uses cached extractions where available, runs fresh extraction for missing ones
- Formats each conversation with a header showing agent name and conversation ID
- Includes a summary at the end:
Successfully processed: N | Failed: M
text/plain.
Filename format: all_extractions_report_{YYYY-MM-DD_HHmmss}.txt
Bulk report generation sets a 5-minute execution time limit and 512 MB memory limit. For very large accounts, consider running batch extraction first so the report generation only reads from cache.
ConversationExtraction model
Extraction results are stored in theconversation_extractions database table:
| Field | Type | Description |
|---|---|---|
conversation_id | string | ElevenLabs conversation ID |
extracted_data | JSON | Structured data returned by OpenRouter |
model_used | string | The OpenRouter model that performed the extraction (e.g. openai/gpt-4o-mini) |
user_id | integer|null | User ID for attribution (set during batch extraction) |
created_at | timestamp | When the extraction was first run |
updated_at | timestamp | Last update time |
Deleting conversations
conversation_extractions record (if any) is not automatically removed — extraction data remains in the database after the source conversation is deleted.