Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion fern/advanced/sip/troubleshoot-sip-response-codes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ A response can originate from Vapi, your SIP provider, your PBX or Session Borde

<Steps>
<Step title="Open the failed call">
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.
</Step>

<Step title="Collect the call context">
Expand Down
7 changes: 6 additions & 1 deletion fern/assistants/model-intelligence/understanding-cost.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<Note>
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.
</Note>

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 |
Expand Down Expand Up @@ -94,4 +96,7 @@ You can reduce cost in four ways.
<Card title="Performance metrics and methodology reference" href="/assistants/model-intelligence/metrics-methodology">
See how Vapi calculates model cost estimates.
</Card>
<Card title="Call cost breakdown" href="/observability/logs/call-logs">
Open a completed call and check its **Call Cost** tab for the per-component breakdown when available.
</Card>
</CardGroup>
12 changes: 6 additions & 6 deletions fern/assistants/structured-outputs-quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,7 @@ After the call ends, retrieve the extracted information:
<Tab title="Dashboard">
<Steps>
<Step title="View call details">
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
</Step>

Expand All @@ -525,9 +525,9 @@ After the call ends, retrieve the extracted information:
</Step>
</Steps>

### 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
{
Expand Down Expand Up @@ -651,14 +651,14 @@ When accessing via API, this data is nested inside the structured output object
## HIPAA Compliance & Storage Settings

<Warning>
**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).
</Warning>

### 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

Expand Down Expand Up @@ -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

Expand Down
6 changes: 5 additions & 1 deletion fern/billing/pricing-and-success-packages.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions fern/calls/assistant-based-warm-transfer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand Down
2 changes: 1 addition & 1 deletion fern/calls/call-ended-reason.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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).

<Note>
For the full list of possible `endedReason` values, see the [API reference](/api-reference/calls/list#response.body.endedReason).
Expand Down
1 change: 1 addition & 0 deletions fern/chat/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

<Callout>
Expand Down
1 change: 1 addition & 0 deletions fern/chat/session-management.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

<Callout>
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).
Expand Down
8 changes: 4 additions & 4 deletions fern/chat/sms-chat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ SMS replies use the Chat API and follow its billing requirements. Usage-based or
</Steps>

<Tip>
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.
</Tip>

---
Expand All @@ -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
Expand All @@ -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

---
Expand Down
66 changes: 31 additions & 35 deletions fern/debugging.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -42,17 +42,17 @@ Start with these immediate checks before diving deeper:
- Shows tool execution results immediately
</Step>
<Step title="Check logs">
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/):

<CardGroup cols={3}>
<Card title="Call Logs" icon="phone">
<Card title="Calls" icon="phone" href="/observability/logs/call-logs">
Review call transcripts, durations, and error messages
</Card>
<Card title="API Logs" icon="code">
Check API requests and responses for integration issues
<Card title="API" icon="code" href="/observability/logs/api-request-logs">
Check logged API requests and responses for integration issues
</Card>
<Card title="Webhook Logs" icon="webhook">
Verify webhook deliveries and server responses
<Card title="Webhooks" icon="webhook" href="/observability/logs/webhook-logs">
Verify logged webhook deliveries and server responses
</Card>
</CardGroup>
</Step>
Expand All @@ -66,8 +66,8 @@ Start with these immediate checks before diving deeper:
<Card title="Evals" icon="clipboard-check" href="/observability/evals-quickstart">
Test decisions at specific conversation points
</Card>
<Card title="Tool Testing" icon="wrench" href="#tool-testing">
Test tools with sample data
<Card title="Tool testing" icon="wrench" href="#tool-testing">
Test supported tools with sample data
</Card>
</CardGroup>
</Step>
Expand All @@ -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

<video autoPlay loop muted src="./static/videos/debugging/call-logs.mp4" type="video/mp4" style={{ aspectRatio: '16 / 9', width: '100%' }} />
### API request logs

### API Logs
Open [**Logs → API**](/observability/logs/api-request-logs) to:

Navigate to `Observe > API Logs` to:
- Monitor all API requests and responses
- Check for authentication errors
- Inspect logged API requests and responses
- Review recorded `401` and `403` responses
- Verify request payloads and response codes
- Debug integration issues with external services
- Debug integrations that call the Vapi API

<video autoPlay loop muted src="./static/videos/debugging/api-logs.mp4" type="video/mp4" style={{ aspectRatio: '16 / 9', width: '100%' }} />
### Webhook logs

### Webhook Logs
Open [**Logs → Webhooks**](/observability/logs/webhook-logs) to:

Navigate to `Observe > Webhook Logs` to:
- Verify webhook deliveries to your server
- Verify logged webhook deliveries to your server
- Check server response codes and timing
- Debug webhook authentication issues
- Monitor event delivery failures

<video autoPlay loop muted src="./static/videos/debugging/webhook-logs.mp4" type="video/mp4" style={{ aspectRatio: '16 / 9', width: '100%' }} />

Use the Vapi CLI to forward webhooks to your local development server:

```bash
Expand All @@ -145,15 +142,14 @@ choosing a tool, asking for missing information, or escalating the call.
See [testing voice agents](/test/voice-testing) for guidance on choosing a test
and turning production failures into regression coverage.

### Tool Testing
### Tool testing

For any tool in your `Tools` section:
- Navigate to `Tools > [Select Tool]`
- Use the `Test` button to send sample payloads
- Verify tool responses and error handling
- Debug parameter extraction and API calls
The Dashboard can test API request, function, and Model Context Protocol (MCP) tools. To test one from **Tools**:

<video autoPlay loop muted src="./static/videos/debugging/tool-testing.mp4" type="video/mp4" style={{ aspectRatio: '16 / 9', width: '100%' }} />
- Select the tool.
- Select **Test**.
- Configure and run the test in the panel.
- Review the response and any error details.

## Speech and language issues

Expand All @@ -175,13 +171,13 @@ For any tool in your `Tools` section:
| **Responses too long** | Add "Keep responses under X words" to system prompt |
| **Robotic speech** | Switch to a different voice provider |
| **Forgetting context** | Use models with larger context windows |
| **Wrong information** | Check tool outputs and knowledge base accuracy via `Call Logs` |
| **Wrong information** | Check tool outputs and knowledge base accuracy in [call logs](/observability/logs/call-logs) |

## Tool and variable debugging

| Problem Type | Issue | Solution |
|--------------|-------|----------|
| **Tool execution** | Tools failing, HTTP errors, parameter issues | Navigate to `Observe > Call Logs` and check tool execution section, test tools individually at `Tools > [Select Tool] > Test`, validate configuration |
| **Tool execution** | Tools failing, HTTP errors, parameter issues | Open [**Logs → Calls**](/observability/logs/call-logs) and check the **Logs** tab. For API request, function, and MCP tools, use **Test**, then validate the configuration. |
| **Variable extraction** | Variables not extracted, wrong values, missing data | Be specific in variable descriptions, use distinct enum values, add validation prompts |

**Variable extraction details:**
Expand All @@ -199,7 +195,7 @@ For any tool in your `Tools` section:
| **Agent misinterpreting speech** | Speech recognition issue | Check transcriber model, add custom keyterms |
| **Irrelevant responses** | Poor prompt engineering | Be more specific in system prompt |
| **Call drops immediately** | Configuration error | Check all required fields in assistant settings |
| **Tool errors** | API integration issue | Test tools individually, verify endpoint URLs |
| **Tool errors** | API integration issue | Use **Test** for API request, function, and MCP tools, then verify endpoint URLs. |
| **Long silences** | Model processing delay | Use faster models or reduce response length |

<Tip>
Expand Down Expand Up @@ -237,7 +233,7 @@ When you're stuck:
</CardGroup>

**Before asking for help:**
- Include call ID and timestamp from `Call Logs` in your [dashboard](https://dashboard.vapi.ai/)
- Include the call ID and timestamp from [**Logs → Calls**](/observability/logs/call-logs)
- Describe expected vs. actual behavior
- Share relevant configuration (without API keys)
- Include error messages from [dashboard](https://dashboard.vapi.ai/) logs
21 changes: 21 additions & 0 deletions fern/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -686,6 +686,27 @@ navigation:
- page: Quickstart
path: observability/monitoring-quickstart.mdx
icon: fa-light fa-rocket
- section: Logs
icon: fa-light fa-rectangle-list
contents:
- page: Overview
path: observability/logs/overview.mdx
icon: fa-light fa-circle-info
- page: Call logs
path: observability/logs/call-logs.mdx
icon: fa-light fa-phone
- page: Chat logs
path: observability/logs/chat-logs.mdx
icon: fa-light fa-comments
- page: Session logs
path: observability/logs/session-logs.mdx
icon: fa-light fa-clock-rotate-left
- page: Webhook logs
path: observability/logs/webhook-logs.mdx
icon: fa-light fa-plug
- page: API request logs
path: observability/logs/api-request-logs.mdx
icon: fa-light fa-code

- section: Best practices
collapsed: open-by-default
Expand Down
Loading
Loading