Voice Tools

Analytics & Monitoring

Call scoring, CRM auto-sync, knowledge gap detection, speed-to-lead, and post-call analytics for voice agents.

Analytics & Monitoring

These features run automatically during or after calls to track performance, sync data, and improve your agent over time.


Call Summary & Transcript

Automatically generate a summary after each call ends. The summary is saved to the session and optionally sent via webhook.

{
  "callSummaryEnabled": true,
  "callSummaryPrompt": "Summarize: key topics discussed, action items, customer sentiment, and outcome."
}

The LLM processes the full transcript and generates a concise summary.


Call Tagging / Disposition

Automatically tag calls with categories and disposition codes based on the conversation content.

{
  "callTaggingEnabled": true,
  "callTaggingCategories": ["sales", "support", "billing", "complaint", "inquiry"],
  "callTaggingModel": "gpt-4o-mini"
}

After the call, the LLM analyzes the transcript and assigns relevant tags.


CRM Auto-Sync

Automatically log call data to your CRM after each call — including duration, summary, outcome, and next steps.

{
  "crmAutoSyncEnabled": true,
  "crmProvider": "hubspot",
  "crmApiKey": "...",
  "crmSyncFields": ["duration", "summary", "outcome", "next_steps", "sentiment"]
}
SettingTypeDescription
crmAutoSyncEnabledbooleanEnable automatic CRM logging
crmProviderstringCRM provider: hubspot, salesforce, custom
crmApiKeystringCRM API key
crmSyncFieldsstring[]Fields to sync to the CRM

Speed-to-Lead Timer

Track how quickly the agent responds to the first inbound call. Useful for measuring lead response time.

{
  "speedToLeadEnabled": true,
  "speedToLeadWebhookUrl": "https://your-app.com/webhooks/speed-to-lead"
}

Records the time between call arrival and first agent response, then sends it via webhook.


Call Scoring & QA

Automatically score each call against quality criteria using an LLM review of the transcript.

{
  "callScoringEnabled": true,
  "scoringCriteria": [
    "greeting_quality",
    "issue_resolution",
    "professionalism",
    "call_efficiency"
  ],
  "scoringModel": "gpt-4o-mini"
}

Scores are saved to the session metadata for dashboards and reporting.


Knowledge Gap Detection

Track questions the agent couldn't answer. Gaps are extracted from the transcript and sent to a webhook for knowledge base improvement.

{
  "knowledgeGapDetectionEnabled": true,
  "knowledgeGapWebhookUrl": "https://your-app.com/webhooks/knowledge-gaps"
}

The agent marks uncertain responses with [KNOWLEDGE_GAP: topic]. After the call, these markers are extracted and reported.


Webhook Events

Receive real-time event notifications for call lifecycle events.

{
  "webhookUrl": "https://your-app.com/webhooks/voice",
  "webhookSecret": "whsec_...",
  "webhookEvents": ["call_started", "call_ended", "message_received", "error_occurred"],
  "webhookRetryCount": 3
}

Event Types

EventWhen It Fires
call_startedCall connected and agent is ready
call_endedCall ended (with summary, duration, reason)
message_receivedAgent received a message from the caller
agent_speechAgent spoke a message
error_occurredAn error occurred during the call
sentiment.alertSentiment escalation triggered
caller.authenticatedCaller identity verified
caller.auth_failedCaller authentication failed

Webhook Security

Webhooks are signed with HMAC-SHA256 using your webhookSecret:

X-Webhook-Signature: sha256=<signature>
X-Event-Type: call_ended

Verify the signature by computing HMAC-SHA256(webhookSecret, requestBody) and comparing.


Batch Outbound Campaign

Run automated outbound call campaigns with retry logic and voicemail handling.

{
  "batchOutboundEnabled": true,
  "batchRetryAttempts": 2,
  "batchRetryDelayMinutes": 30,
  "batchVoicemailAction": "leave_message"
}
SettingTypeDefaultDescription
batchOutboundEnabledbooleanfalseEnable batch outbound
batchRetryAttemptsinteger2Retry attempts for unanswered calls
batchRetryDelayMinutesinteger30Delay between retries
batchVoicemailActionstringleave_messageOn voicemail: leave_message or skip

Progressive / Predictive Dialer

Automatically dial the next number when an agent becomes available.

{
  "predictiveDialerEnabled": true,
  "dialerMode": "progressive",
  "dialerMaxConcurrent": 1,
  "dialerCallbackEnabled": true,
  "dialerCallbackDelayMinutes": 60
}
ModeBehavior
progressiveDials one number at a time as agents become available
predictiveDials multiple numbers anticipating agent availability

Example — Create Agent with Analytics & Monitoring

curl -X POST https://api.thinnest.ai/v1/agents \
  -H "Authorization: Bearer $THINNESTAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Monitored Sales Agent",
    "model": "gpt-4o",
    "instructions": "You are a sales agent. Handle inbound calls professionally and try to convert leads.",
    "voiceEnabled": true,
    "transcriber": { "provider": "deepgram", "model": "nova-2-conversationalai" },
    "voice": { "provider": "deepgram", "voiceId": "aura-2-thalia-en" },
    "callSummaryEnabled": true,
    "callSummaryPrompt": "Summarize: key topics, action items, sentiment, and outcome.",
    "callTaggingEnabled": true,
    "callTaggingCategories": ["sales", "support", "billing", "complaint"],
    "crmAutoSyncEnabled": true,
    "crmProvider": "hubspot",
    "crmSyncFields": ["duration", "summary", "outcome", "sentiment"],
    "speedToLeadEnabled": true,
    "callScoringEnabled": true,
    "scoringCriteria": ["greeting_quality", "issue_resolution", "professionalism", "call_efficiency"],
    "webhookUrl": "https://your-app.com/webhooks/voice",
    "webhookEvents": ["call_started", "call_ended", "sentiment.alert"],
    "webhookRetryCount": 3
  }'

On this page