diff --git a/fern/docs.yml b/fern/docs.yml
index 02b352f8f..62bf5b256 100644
--- a/fern/docs.yml
+++ b/fern/docs.yml
@@ -331,6 +331,12 @@ navigation:
path: test/voice-testing.mdx
icon: fa-light fa-volume-high
+ - section: Observability
+ contents:
+ - page: Boards
+ path: observability/boards-quickstart.mdx
+ icon: fa-light fa-chart-line
+
- section: Phone numbers
contents:
- page: Free Vapi number
diff --git a/fern/observability/boards-quickstart.mdx b/fern/observability/boards-quickstart.mdx
new file mode 100644
index 000000000..8005742aa
--- /dev/null
+++ b/fern/observability/boards-quickstart.mdx
@@ -0,0 +1,455 @@
+---
+title: Boards quickstart
+subtitle: Create custom analytics dashboards in minutes
+slug: observability/boards-quickstart
+---
+
+## Overview
+
+Boards is Vapi's custom analytics dashboard system that enables you to create visual dashboards with real-time insights. Build drag-and-drop dashboards tailored to your teams, use cases, and reporting needs—all through the Vapi Dashboard interface.
+
+**Boards allow you to:**
+
+- Add and configure insights (bar charts, line charts, pie charts, text metrics)
+- Apply global time range filters and granularity settings
+- Build queries visually with field selectors and filter builders
+- Create calculated metrics using formulas
+- Drag, resize, and position widgets on a responsive grid
+
+### When to use Boards
+
+Boards are ideal for:
+
+- **Sales tracking** - Monitor call volume, conversion rates, and booking metrics
+- **Support metrics** - Track resolution times, issue categories, and customer satisfaction
+- **Cost monitoring** - Analyze spending patterns, cost per call, and budget tracking
+- **Performance analysis** - Measure assistant performance, call quality, and efficiency
+
+## What you'll build
+
+A Sales Performance Dashboard that displays:
+
+- Total calls and bookings for today
+- Call volume trends over the past 30 days
+- Bookings by assistant
+- Call outcomes distribution
+- Booking conversion rate (calculated metric)
+
+## Prerequisites
+
+
+
+ Account with Boards access enabled
+
+
+ Existing call data helps create meaningful visualizations
+
+
+
+
+ Boards are accessible through the Vapi Dashboard at
+ [dashboard.vapi.ai](https://dashboard.vapi.ai)
+
+
+## Step 1: Access Boards
+
+Navigate to the Boards feature in your dashboard.
+
+1. Log into your Vapi Dashboard at [dashboard.vapi.ai](https://dashboard.vapi.ai)
+2. Click **Boards** in the left sidebar (under the "Reporting" or "Analytics" section)
+3. Your board will be automatically created on first visit
+
+
+ Your board is created automatically when you first access the Boards page.
+ You'll see an empty 6-column grid layout where you can add insights.
+
+
+## Step 2: Add your first insights
+
+Start with key performance indicators that show single important numbers.
+
+
+
+ 1. Click **Add Widget** or the **+** button
+ 2. Select **Text** widget type
+ 3. Configure the insight:
+ - **Name**: "Total Calls Today"
+ - **Data Source**: Select "Calls"
+ - **Metric**: Choose "Count"
+ - **Field**: Select "Call ID"
+ - **Time Range**: Set to "Last 24 hours"
+ 4. Click **Preview** to see the result
+ 5. Click **Add to Board**
+ 6. Drag the insight to your desired position
+ 7. Resize if needed by dragging the bottom-right corner
+
+
+ The number updates in real-time. Hover over the insight to see additional details.
+
+
+
+
+ Repeat the process for a second insight:
+
+ 1. Click **Add Widget** → **Text**
+ 2. Configure:
+ - **Name**: "Total Bookings Today"
+ - **Data Source**: Calls
+ - **Metric**: Count of Call ID
+ - **Time Range**: Last 24 hours
+ 3. Add a filter to count only successful bookings:
+ - Click **Add Filter**
+ - **Field**: Status
+ - **Operator**: equals (=)
+ - **Value**: "ended"
+ 4. Click **Add to Board**
+ 5. Position it next to your first insight
+
+
+
+## Step 3: Create visualizations
+
+Add charts to visualize trends and patterns in your data.
+
+
+
+ Create a bar chart showing calls by assistant:
+
+ 1. Click **Add Widget**
+ 2. Select **Bar Chart**
+ 3. Configure:
+ - **Name**: "Calls by Assistant"
+ - **Data Source**: Calls
+ - **Metric**: Count of Call ID
+ - **Group By**: Select "Assistant" from dropdown
+ - **Time Range**: Last 7 days
+ - **Group By Time**: Day
+ 4. Click **Preview** to see bars showing calls per assistant per day
+ 5. Customize appearance (optional):
+ - **X-axis Label**: "Date"
+ - **Y-axis Label**: "Number of Calls"
+ - **Colors**: Choose color scheme
+ 6. Click **Add to Board**
+
+
+{" "}
+
+
+ Track call volume over time: 1. Click **Add Widget** 2. Select **Line Chart**
+ 3. Configure: - **Name**: "Call Volume Trend" - **Data Source**: Calls -
+ **Metric**: Count of Call ID - **Time Range**: Last 30 days - **Group By
+ Time**: Day 4. Optional - Add multiple lines: - Click **Add Another Metric** -
+ Configure second metric (e.g., "Average Duration") 5. Click **Add to Board**
+
+ Line charts are ideal for showing trends over time. Use them to identify
+ patterns and anomalies.
+
+
+
+
+ Show distribution of call outcomes:
+
+ 1. Click **Add Widget**
+ 2. Select **Pie Chart**
+ 3. Configure:
+ - **Name**: "Calls by Status"
+ - **Data Source**: Calls
+ - **Metric**: Count of Call ID
+ - **Group By**: Select "Status"
+ - **Time Range**: Last 7 days
+ 4. Click **Add to Board**
+
+
+ Pie charts don't have time series grouping. They show distribution across categories only.
+
+
+
+
+## Step 4: Apply filters to insights
+
+Filter data to focus on specific segments or conditions.
+
+
+
+ Open any insight's settings and add filters:
+
+ 1. Click the **⚙️ (settings)** icon on any insight
+ 2. Click **Add Filter** button
+ 3. Configure first filter:
+ - **Field**: Select "Status" from dropdown
+ - **Operator**: Choose "equals" (=)
+ - **Value**: Type or select "ended"
+ 4. Click **Add Another Filter** for multiple conditions
+ 5. Example second filter:
+ - **Field**: Cost
+ - **Operator**: Greater than (>)
+ - **Value**: 0.50
+ 6. Click **Save**
+
+ **Common filter patterns:**
+ - Filter by assistant: `Assistant ID =
+
+
+## Step 5: Create calculated metrics
+
+Build custom metrics using formulas to calculate rates, averages, and more. Formulas use [Math.js](https://mathjs.org/) syntax for calculations.
+
+
+
+ Calculate booking rate using a formula:
+
+ 1. Click **Add Widget** → **Text**
+ 2. Enter **Name**: "Booking Rate (%)"
+ 3. Click **Enable Formula Mode** toggle
+ 4. Add first query:
+ - **Query Name**: totalBookings
+ - **Metric**: Count of Call ID
+ - Add filter: Status = "booking_confirmed"
+ 5. Click **Add Query** to add second query:
+ - **Query Name**: totalCalls
+ - **Metric**: Count of Call ID
+ 6. Enter formula in the formula editor:
+ ```
+ ({{totalBookings}} / {{totalCalls}}) * 100
+ ```
+ 7. Click **Preview** to validate
+ 8. Click **Add to Board**
+
+
+ The formula editor supports syntax highlighting and variable autocomplete. Type `{{` to see available queries.
+
+
+
+
+### Formula examples
+
+Common calculated metrics you can create using Math.js syntax:
+
+```javascript
+// Average Cost Per Minute
+{{totalCost}} / ({{totalMinutes}} / 60)
+
+// Conversion Rate (percentage)
+({{conversions}} / {{totalCalls}}) * 100
+
+// Average Handle Time
+{{totalDuration}} / {{totalCalls}}
+
+// Cost Per Call
+{{totalCost}} / {{totalCalls}}
+
+// Success Rate
+({{successfulCalls}} / {{totalCalls}}) * 100
+```
+
+
+ **Formula editor features:** - Syntax highlighting - Variable autocomplete -
+ Validation on preview - Supports all [Math.js](https://mathjs.org/)
+ operations: `+`, `-`, `*`, `/`, `%`, parentheses, and more
+
+
+## Step 6: Organize your dashboard
+
+Arrange insights for optimal visual hierarchy and readability.
+
+**Layout actions:**
+
+- **Drag insights**: Click and hold the drag handle (**⋮⋮** icon) in insight header
+- **Resize insights**: Drag the resize handle in bottom-right corner
+- **Delete insights**: Click trash icon (**🗑️**) in insight settings
+- **Edit insights**: Click settings icon (**⚙️**) to modify configuration
+
+### Layout tips
+
+
+
+ - KPI cards: 1-2 column widths - Charts: 3-4 column widths - Tables: 4-6
+ column widths
+
+
+ - Place most important metrics at the top - Group related metrics together -
+ Use consistent sizing for similar insights
+
+
+
+## Step 7: Apply global filters
+
+Control time range and granularity for all insights at once.
+
+
+
+ Look for the filter bar at the top of your board: 1. **Time Range Picker**:
+ - Click the time range dropdown - Choose preset: Today, Yesterday, Last 7
+ days, Last 30 days, This month, Last month - Or select **Custom Range** to
+ pick specific dates 2. **Granularity Selector** (appears next to "grouped
+ by"): - Choose: Minute, Hour, Day, Week, Month, Quarter, Year - Available
+ options depend on time range 3. Click **Apply** button to update all
+ insights
+
+ All insights on the board update simultaneously. Applied filters show in
+ the filter bar, and unsaved changes display a blue "Apply" button.
+
+
+
+
+
+ You can't group by minute for a year of data. Granularity options are limited
+ based on the selected time range.
+
+
+## Example dashboards
+
+### Sales Performance Dashboard
+
+Track sales metrics and conversion rates:
+
+**Insights:**
+
+1. **Text**: Total Calls (last 24h)
+2. **Text**: Total Bookings (last 24h)
+3. **Text**: Booking Rate - formula: `(bookings/calls) * 100`
+4. **Line Chart**: Daily call volume (last 30 days)
+5. **Bar Chart**: Bookings by assistant (last 7 days)
+6. **Pie Chart**: Call outcomes distribution
+
+### Support Metrics Dashboard
+
+Monitor customer support performance:
+
+**Insights:**
+
+1. **Text**: Average call duration
+2. **Text**: Total support tickets
+3. **Text**: Resolution rate
+4. **Line Chart**: Call volume trend
+5. **Bar Chart**: Issues by category
+6. **Bar Chart**: Average resolution time by agent
+
+### Cost Monitoring Dashboard
+
+Analyze spending and optimize costs:
+
+**Insights:**
+
+1. **Text**: Total cost today
+2. **Text**: Average cost per call
+3. **Text**: Cost per minute
+4. **Line Chart**: Daily spending trend
+5. **Bar Chart**: Cost by assistant
+6. **Pie Chart**: Cost by call type (inbound/outbound)
+
+## Best practices
+
+### Dashboard design
+
+**Best practices:**
+
+- Start with 3-5 key metrics (avoid overcrowding)
+- Use consistent time ranges across related insights
+- Place most important metrics at the top
+- Use appropriate chart types for your data
+- Add filters to focus on specific segments
+
+**Avoid these mistakes:**
+
+- Too many insights (impacts performance)
+- Mix incompatible time granularities
+- Ignore visual hierarchy
+- Use pie charts for time-series data
+- Query years of data when you need today's metrics
+
+### Data strategy
+
+- **Text insights** for single important numbers
+- **Line charts** for trends over time
+- **Bar charts** for comparing categories
+- **Pie charts** for proportional breakdowns (not time-series)
+- Apply filters to remove noise from data
+
+### Performance considerations
+
+
+ Boards with 10+ complex insights may load slower. Use appropriate time ranges
+ and shorter time periods for better performance.
+
+
+## Sharing and viewing
+
+### Fullscreen mode
+
+Click the fullscreen icon (**⛶**) to display your board in fullscreen—great for TV displays or presentations.
+
+### Refreshing data
+
+- Boards auto-refresh based on time range
+- Manual refresh: Click refresh icon (**🔄**) if available
+
+## Troubleshooting
+
+| Issue | Solution |
+| --------------------------- | ----------------------------------------------------------------------------------- |
+| Insight shows "No data" | Check time range—may be too narrow or no data exists for that period |
+| Insight not loading | Verify query configuration, check if filters are too restrictive |
+| Can't see "Apply" button | Filters haven't changed—button only appears when you modify settings |
+| Insight appears empty | Data may exist but filters exclude it—try removing filters |
+| Drag not working | Click the drag handle (**⋮⋮**) icon, not the insight body |
+| Granularity options missing | Time range may be too narrow—Day granularity requires multi-day range |
+| Formula shows error | Check syntax—variables must be wrapped in `{{}}` and query names must match exactly |
+| Insight won't resize | May have reached minimum size limit |
+
+### Common errors
+
+**"Query failed"**: Check your filters and ensure fields exist in your data
+
+**"Invalid time range"**: Adjust time range to valid dates
+
+**"Formula syntax error"**: Verify formula uses correct Math.js variable names matching your query names
+
+## Next steps
+
+
+
+ Master complex filtering techniques for precise data analysis
+
+
+{" "}
+
+
+ Explore more formula patterns for custom metrics
+
+
+{" "}
+
+
+ Learn about call analysis and insights
+
+
+
+ Access analytics data programmatically via API
+
+
+
+## Tips for success
+
+
+ **Getting started:** - Start simple with a few key metrics - Test with real
+ data from your calls - Iterate based on team feedback - Use global filters to
+ quickly analyze different time periods - Combine text insights with charts for
+ comprehensive views
+