From 8b3dbdcb35663e07955f5e0ecf807c71bcf764b6 Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Wed, 23 Sep 2026 10:20:40 -0700 Subject: [PATCH] Added a logs section --- .../sip/troubleshoot-sip-response-codes.mdx | 2 +- .../model-intelligence/understanding-cost.mdx | 7 +- .../structured-outputs-quickstart.mdx | 12 +- fern/billing/pricing-and-success-packages.mdx | 6 +- fern/calls/assistant-based-warm-transfer.mdx | 4 +- fern/calls/call-ended-reason.mdx | 2 +- fern/chat/quickstart.mdx | 1 + fern/chat/session-management.mdx | 1 + fern/chat/sms-chat.mdx | 8 +- fern/debugging.mdx | 66 +++++---- fern/docs.yml | 21 +++ fern/issue-reporting.mdx | 2 +- fern/observability/logs/api-request-logs.mdx | 54 ++++++++ fern/observability/logs/call-logs.mdx | 129 ++++++++++++++++++ fern/observability/logs/chat-logs.mdx | 71 ++++++++++ fern/observability/logs/overview.mdx | 63 +++++++++ fern/observability/logs/session-logs.mdx | 66 +++++++++ fern/observability/logs/webhook-logs.mdx | 54 ++++++++ fern/security-and-privacy/hipaa.mdx | 4 +- fern/server-url/events.mdx | 2 + .../images/observability/logs/call-detail.png | Bin 0 -> 437031 bytes .../images/observability/logs/calls-tab.png | Bin 0 -> 206997 bytes .../images/observability/logs/chat-tab.png | Bin 0 -> 170659 bytes .../observability/logs/sessions-tab.png | Bin 0 -> 155833 bytes fern/static/videos/debugging/api-logs.mp4 | Bin 1986283 -> 0 bytes fern/static/videos/debugging/call-logs.mp4 | Bin 2312867 -> 0 bytes fern/static/videos/debugging/tool-testing.mp4 | Bin 2571208 -> 0 bytes fern/static/videos/debugging/webhook-logs.mp4 | Bin 2197937 -> 0 bytes fern/tools/transfer-call.mdx | 2 +- fern/tools/transfer-call/blind-transfer.mdx | 2 +- fern/tools/transfer-call/warm-transfer.mdx | 2 +- 31 files changed, 524 insertions(+), 57 deletions(-) create mode 100644 fern/observability/logs/api-request-logs.mdx create mode 100644 fern/observability/logs/call-logs.mdx create mode 100644 fern/observability/logs/chat-logs.mdx create mode 100644 fern/observability/logs/overview.mdx create mode 100644 fern/observability/logs/session-logs.mdx create mode 100644 fern/observability/logs/webhook-logs.mdx create mode 100644 fern/static/images/observability/logs/call-detail.png create mode 100644 fern/static/images/observability/logs/calls-tab.png create mode 100644 fern/static/images/observability/logs/chat-tab.png create mode 100644 fern/static/images/observability/logs/sessions-tab.png delete mode 100644 fern/static/videos/debugging/api-logs.mp4 delete mode 100644 fern/static/videos/debugging/call-logs.mp4 delete mode 100644 fern/static/videos/debugging/tool-testing.mp4 delete mode 100644 fern/static/videos/debugging/webhook-logs.mp4 diff --git a/fern/advanced/sip/troubleshoot-sip-response-codes.mdx b/fern/advanced/sip/troubleshoot-sip-response-codes.mdx index fe0903736..f07471740 100644 --- a/fern/advanced/sip/troubleshoot-sip-response-codes.mdx +++ b/fern/advanced/sip/troubleshoot-sip-response-codes.mdx @@ -19,7 +19,7 @@ A response can originate from Vapi, your SIP provider, your PBX or Session Borde - Open the [**Vapi Dashboard**](https://dashboard.vapi.ai/), then choose **Observe** > **Logs**. Choose the **Calls** tab, then choose the failed call. + Open [**Logs → Calls**](/observability/logs/call-logs), then choose the failed call. diff --git a/fern/assistants/model-intelligence/understanding-cost.mdx b/fern/assistants/model-intelligence/understanding-cost.mdx index 72f8275b8..27e5023bd 100644 --- a/fern/assistants/model-intelligence/understanding-cost.mdx +++ b/fern/assistants/model-intelligence/understanding-cost.mdx @@ -8,9 +8,11 @@ slug: assistants/model-intelligence/understanding-cost The cost to run a voice agent mainly depends on the costs of the transcriber, LLM, and voice. Each component uses a different billing unit, so we've made some assumptions in order to provide a way for you to compare estimated cost per minute. -The Cost number within **Performance Metrics** provide estimates for comparison rather than exact quotes. Use them to compare models consistently and understand what affects cost. See [Vapi pricing](https://vapi.ai/pricing) for current pricing. For contracted customers, certain pricing may depend on your agreement, please contact your account team for contract-specific rates. +The **Cost** value under **Performance Metrics** estimates costs for model comparison; it is not an exact quote. See [Vapi pricing](https://vapi.ai/pricing) for current rates, or contact your account team for contract-specific rates. +To review costs for a completed call, open its [call log](/observability/logs/call-logs) and check the **Call Cost** tab when available. + ## Key concepts | Term | Definition | @@ -94,4 +96,7 @@ You can reduce cost in four ways. See how Vapi calculates model cost estimates. + + Open a completed call and check its **Call Cost** tab for the per-component breakdown when available. + diff --git a/fern/assistants/structured-outputs-quickstart.mdx b/fern/assistants/structured-outputs-quickstart.mdx index b263c7dd0..aa9ba2588 100644 --- a/fern/assistants/structured-outputs-quickstart.mdx +++ b/fern/assistants/structured-outputs-quickstart.mdx @@ -514,7 +514,7 @@ After the call ends, retrieve the extracted information: - 1. Navigate to **Call Logs** in the left sidebar + 1. Open **Logs → Calls** in the left sidebar 2. Click on your recent call to view details @@ -525,9 +525,9 @@ After the call ends, retrieve the extracted information: - ### How structured outputs appear in Call Logs + ### How structured outputs appear in call logs - When you view a call in the Call Logs page, structured outputs are displayed in the following format: + When you open a call from **Logs → Calls**, structured outputs appear in the following format: ```json { @@ -651,14 +651,14 @@ When accessing via API, this data is nested inside the structured output object ## HIPAA Compliance & Storage Settings -**Important for HIPAA users:** When HIPAA mode is enabled, Vapi does not store structured outputs by default. This protects privacy but limits your ability to view structured outputs in Insights and Call Logs. +**Important for HIPAA users:** When HIPAA mode is enabled, Vapi does not store structured outputs by default. This protects privacy but limits your ability to view structured outputs in Insights and [**Logs → Calls**](/observability/logs/call-logs). ### Understanding the default behavior When your organization or assistant has HIPAA mode enabled: - **Structured outputs are NOT stored** - Results are generated but not persisted in Vapi's systems -- **Limited visibility** - You cannot view outputs in the Dashboard's Call Logs or Insights +- **Limited visibility** - You cannot view outputs in [**Logs → Calls**](/observability/logs/call-logs) or Insights - **Privacy first** - This ensures sensitive data is not retained - **Webhook access only** - You can still receive outputs via webhooks during the call @@ -923,7 +923,7 @@ Common validation patterns for reliable extraction: | No data extracted | Verify the information was mentioned in the call and check schema validity | | Partial extraction | Make non-critical fields optional and simplify nested structures | | Incorrect values | Add more specific validation patterns and field descriptions | -| Extraction fails | Check API logs, verify assistant configuration, and test with simpler schema | +| Extraction fails | Open [**Logs → Calls**](/observability/logs/call-logs), inspect **Structured Outputs** and **Logs**, verify the assistant configuration, and test with a simpler schema | ## Get help diff --git a/fern/billing/pricing-and-success-packages.mdx b/fern/billing/pricing-and-success-packages.mdx index 4437c39ed..4fbd221ac 100644 --- a/fern/billing/pricing-and-success-packages.mdx +++ b/fern/billing/pricing-and-success-packages.mdx @@ -13,7 +13,11 @@ Every Vapi subscription starts with usage-based billing. Without an optional Suc A Success Package adds support, service commitments, and higher included limits. Add-ons increase individual capabilities without replacing usage-based billing or your Success Package. -See the [Vapi pricing page](https://vapi.ai/pricing) for the latest prices. +## Estimate costs + +Use the **Calculator** on the [Vapi pricing page](https://vapi.ai/pricing) to estimate your monthly cost. Set your minutes and choose your transcriber, model, and voice providers. The calculator breaks the estimate down into hosting, transcriber, model, voice, and transport costs. + +To review costs for a completed call, open its [call log](/observability/logs/call-logs) and check the **Call Cost** tab when available. ## Usage only diff --git a/fern/calls/assistant-based-warm-transfer.mdx b/fern/calls/assistant-based-warm-transfer.mdx index 5c33711c7..ae8c4ddfd 100644 --- a/fern/calls/assistant-based-warm-transfer.mdx +++ b/fern/calls/assistant-based-warm-transfer.mdx @@ -187,7 +187,7 @@ Place a test call and trigger the transfer. Confirm that: 3. Accepting the call connects the customer and operator. 4. Declining the call or reaching voicemail returns the customer to the original assistant or ends the call according to `fallbackPlan`. -In **Logs → Call Logs**, inspect the original call, destination call leg, transcript, and ended reason. To retrieve these details through the API, see the [Get Call API reference](/api-reference/calls/get). An `assistant-forwarded-call` ended reason confirms that the transfer was initiated; it does not confirm that the destination answered. +In [**Logs → Calls**](/observability/logs/call-logs), inspect the original call, destination call leg, transcript, and ended reason. To retrieve these details through the API, see the [Get Call API reference](/api-reference/calls/get). An `assistant-forwarded-call` ended reason confirms that the transfer was initiated; it does not confirm that the destination answered. ## Troubleshooting @@ -202,7 +202,7 @@ In **Logs → Call Logs**, inspect the original call, destination call leg, tran | The customer cannot continue after a failed transfer | `fallbackPlan.endCallEnabled` is `true` | Set it to `false` so the original assistant remains on the call. | | The transfer ends during a long operator interaction | A duration or silence timeout is too short | Increase `maxDurationSeconds` or `silenceTimeoutSeconds` within the supported ranges. | -Check **Logs → API Logs** for validation and transfer errors. If Vapi initiated the transfer but the destination never rings, inspect the telephony provider's call detail records and follow [Troubleshoot call forwarding drops](/phone-calling/in-call-control/transfer-calls/debug-forwarding-drops). +Check the affected call's **Logs** tab in [**Logs → Calls**](/observability/logs/call-logs) for validation and transfer errors. If Vapi initiated the transfer but the destination never rings, inspect the telephony provider's call detail records and follow [Troubleshoot call forwarding drops](/phone-calling/in-call-control/transfer-calls/debug-forwarding-drops). ## API reference diff --git a/fern/calls/call-ended-reason.mdx b/fern/calls/call-ended-reason.mdx index f5b00fdc3..24a29ce78 100644 --- a/fern/calls/call-ended-reason.mdx +++ b/fern/calls/call-ended-reason.mdx @@ -5,7 +5,7 @@ slug: calls/call-ended-reason description: Understand Vapi endedReason codes that explain why a call ended, where to find them in call logs and the Call object, and how to diagnose each one. --- -Every call in Vapi ends with an `endedReason` code that tells you exactly why it ended. You can find this value in the **"Ended Reason"** column of your [call logs](https://dashboard.vapi.ai/calls), or under the `endedReason` field on the [Call object](/api-reference/calls/get). +Every call in Vapi ends with an `endedReason` code that tells you exactly why it ended. You can find this value in the **Ended Reason** column of [call logs](/observability/logs/call-logs), or under the `endedReason` field on the [Call object](/api-reference/calls/get). For the full list of possible `endedReason` values, see the [API reference](/api-reference/calls/list#response.body.endedReason). diff --git a/fern/chat/quickstart.mdx b/fern/chat/quickstart.mdx index e6c9dec0b..4a3a8f80b 100644 --- a/fern/chat/quickstart.mdx +++ b/fern/chat/quickstart.mdx @@ -369,6 +369,7 @@ Take your chat bot to the next level: * **[Streaming responses](/chat/streaming)** - Add real-time typing indicators and progressive responses * **[Non-streaming responses](/chat/non-streaming)** - Learn about sessions and complex conversation flows * **[Session management](/chat/session-management)** - Learn advanced context management with sessions and previousChatId +* **[Chat logs](/observability/logs/chat-logs)** - Review chat inputs, outputs, message history, and costs * **[OpenAI compatibility](/chat/openai-compatibility)** - Integrate with existing OpenAI workflows diff --git a/fern/chat/session-management.mdx b/fern/chat/session-management.mdx index f171a47e2..7bf76757f 100644 --- a/fern/chat/session-management.mdx +++ b/fern/chat/session-management.mdx @@ -260,6 +260,7 @@ These webhooks are useful for tracking session lifecycle, managing session state * **[Streaming responses](/chat/streaming)** - Add real-time responses to session-managed chats * **[OpenAI compatibility](/chat/openai-compatibility)** - Use familiar OpenAI patterns with sessions * **[Function tools](/tools/custom-tools)** - Give assistants access to external APIs within sessions +* **[Session logs](/observability/logs/session-logs)** - Review session status and persisted messages, then use [Chat logs](/observability/logs/chat-logs) to find individual chats by session ID Need help? Ask other developers in the [Vapi Discord community](https://discord.gg/v5Ee6FhAZt) or mention us on [X/Twitter](https://x.com/Vapi_AI). diff --git a/fern/chat/sms-chat.mdx b/fern/chat/sms-chat.mdx index 178e8acc1..11824de58 100644 --- a/fern/chat/sms-chat.mdx +++ b/fern/chat/sms-chat.mdx @@ -54,7 +54,7 @@ SMS replies use the Chat API and follow its billing requirements. Usage-based or -View all SMS conversations in the [Session Logs](https://dashboard.vapi.ai/logs/session) page of your dashboard. Each SMS conversation creates a session where you can see the full message history and conversation flow. +View retained SMS conversations in [**Logs → Sessions**](/observability/logs/session-logs). Each SMS conversation creates a session. While it is retained, you can review its full message history and conversation flow. --- @@ -66,7 +66,7 @@ When a customer texts your number: 1. **Session Creation**: Vapi automatically creates a chat session for the customer 2. **Context Management**: All messages maintain conversation context within the session 3. **Response Delivery**: Assistant responses are sent back as SMS messages -4. **Session Expiry**: Sessions expire after 24 hours of inactivity, then create fresh sessions for new conversations +4. **Session Expiry**: Sessions expire 24 hours after creation by default, then Vapi creates a new session for later conversations ```mermaid sequenceDiagram @@ -91,8 +91,8 @@ sequenceDiagram SMS conversations use automatic session management: * **New customers**: Get a fresh session on first text -* **Returning customers**: Continue existing session if under 24 hours -* **Session expiry**: After 24 hours, new session created automatically +* **Returning customers**: Continue the existing session until it expires +* **Session expiry**: After the session expires, Vapi creates a new session automatically * **Context preservation**: Full conversation history maintained within session --- diff --git a/fern/debugging.mdx b/fern/debugging.mdx index bb380b65c..6496f47f2 100644 --- a/fern/debugging.mdx +++ b/fern/debugging.mdx @@ -2,7 +2,7 @@ title: Debugging voice agents subtitle: Learn to identify, diagnose, and fix common issues with your voice assistants slug: debugging -description: Diagnose and fix voice agent issues using the Vapi dashboard's Call Logs, API Logs, and webhook logs, component testing, and provider status checks. +description: Diagnose voice assistant issues with call, API request, and webhook logs, component testing, and provider status checks in the Vapi Dashboard. --- ## Overview @@ -42,17 +42,17 @@ Start with these immediate checks before diving deeper: - Shows tool execution results immediately - Navigate to the `Observe` section in your [dashboard](https://dashboard.vapi.ai/) sidebar: + Use the [Logs overview](/observability/logs/overview) to choose the right log, then open **Logs** in the [Dashboard](https://dashboard.vapi.ai/): - + Review call transcripts, durations, and error messages - - Check API requests and responses for integration issues + + Check logged API requests and responses for integration issues - - Verify webhook deliveries and server responses + + Verify logged webhook deliveries and server responses @@ -66,8 +66,8 @@ Start with these immediate checks before diving deeper: Test decisions at specific conversation points - - Test tools with sample data + + Test supported tools with sample data @@ -91,37 +91,34 @@ Start with these immediate checks before diving deeper: The [Vapi dashboard](https://dashboard.vapi.ai/) provides powerful debugging features to help you identify and fix issues quickly: -### Call Logs +### Call logs -Navigate to `Observe > Call Logs` to: -- Review complete call transcripts +Open [**Logs → Calls**](/observability/logs/call-logs) to: + +- Review available call transcripts - Check call duration and completion status - Identify where calls failed or ended unexpectedly - See tool execution results and errors - Analyze conversation flow -