Boards quickstart

Create custom analytics dashboards in minutes

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

Vapi account

Account with Boards access enabled

Call data

Existing call data helps create meaningful visualizations

Boards are accessible through the Vapi Dashboard at 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
  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

Add Total Calls insight

  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.

2

Add Total Bookings insight

Repeat the process for a second insight:

  1. Click Add WidgetText
  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.

1

Add a bar chart

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
4

Add a pie chart

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.

1

Add filters to an insight

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 = <select assistant>
  • Filter by date range: Started At > <date>
  • Filter by cost: Cost > <value>
  • Filter by status: Status = ended

Step 5: Create calculated metrics

Build custom metrics using formulas to calculate rates, averages, and more. Formulas use Math.js syntax for calculations.

1

Create a conversion rate metric

Calculate booking rate using a formula:

  1. Click Add WidgetText
  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:

1// Average Cost Per Minute
2{{totalCost}} / ({{totalMinutes}} / 60)
3
4// Conversion Rate (percentage)
5({{conversions}} / {{totalCalls}}) * 100
6
7// Average Handle Time
8{{totalDuration}} / {{totalCalls}}
9
10// Cost Per Call
11{{totalCost}} / {{totalCalls}}
12
13// Success Rate
14({{successfulCalls}} / {{totalCalls}}) * 100

Formula editor features: - Syntax highlighting - Variable autocomplete - Validation on preview - Supports all Math.js 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

Insight sizing
  • KPI cards: 1-2 column widths - Charts: 3-4 column widths - Tables: 4-6 column widths
Visual hierarchy
  • 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.

1

Set time range and granularity

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

IssueSolution
Insight shows “No data”Check time range—may be too narrow or no data exists for that period
Insight not loadingVerify query configuration, check if filters are too restrictive
Can’t see “Apply” buttonFilters haven’t changed—button only appears when you modify settings
Insight appears emptyData may exist but filters exclude it—try removing filters
Drag not workingClick the drag handle (⋮⋮) icon, not the insight body
Granularity options missingTime range may be too narrow—Day granularity requires multi-day range
Formula shows errorCheck syntax—variables must be wrapped in {{}} and query names must match exactly
Insight won’t resizeMay 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

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