Linking Vapi as a source

Alpha release

This source is currently in alpha. The interface and available tables may change.

The Vapi connector syncs your AI voice agent data into PostHog, including call transcripts, analysis, cost breakdowns, assistants, phone numbers, and more. Use it to join your Vapi call data with product analytics to understand how voice interactions impact user behavior.

Adding a data source

  1. Go to the sources tab of the data pipeline section in PostHog.
  2. Click + New source and then click Link next to Vapi.
  3. You need an API key from Vapi. In your Vapi dashboard, go to Organization Settings and copy your Private API Key.
  4. Back in PostHog, paste the API key in the API key field and click Next.
  5. Select the tables you want to sync, set the sync method and frequency, then click Import.

Once the syncs are complete, you can start using Vapi data in PostHog.

Available tables

TableDescriptionSync method
callsPhone and web calls with transcripts, analysis, ended reasons, and per-component cost breakdownsIncremental (by createdAt or updatedAt)
assistantsConfigured voice assistants with transcriber, LLM, and voice settingsFull refresh
phone_numbersPhone numbers attached to your org, provisioned through Vapi or brought from other providersFull refresh
squadsGroups of multiple assistants that can transfer calls between themFull refresh
toolsTools that assistants can invoke during calls (API requests, transfers, etc.)Full refresh
filesFiles uploaded to Vapi, typically used as knowledge-base sources for assistantsFull refresh
chatsText-based chat interactions with assistantsIncremental (by createdAt)
sessionsSessions that group related chats and calls into one conversation contextIncremental (by createdAt)
campaignsOutbound call campaigns with live progress countersFull refresh

Incremental tables sync only new or updated records on each run. Full refresh tables reload all data on each sync.

Sync behavior

The calls table supports incremental sync by either createdAt (default) or updatedAt. Using updatedAt re-syncs calls whose analysis or artifacts were attached after the call ended. The chats and sessions tables only support createdAt incremental sync since the Vapi API can't sort these by updatedAt.

Configuration tables like assistants, squads, tools, and campaigns use full refresh because they mutate in place – a createdAt watermark would miss updates to existing records.

Configuration

OptionTypeRequired
API keypasswordYes

Supported tables

TableDescriptionSync methodIncremental fieldPrimary key
calls

Phone and web calls handled by Vapi voice assistants, squads, or workflows, including transcript artifacts, analysis, ended reason, and per-component cost breakdown.

Incremental, Full refreshcreatedAt, updatedAt
assistants

Configured Vapi voice assistants: transcriber, LLM, and voice settings plus call behavior, analysis, and artifact plans.

Full refresh
phone_numbers

Phone numbers attached to the org, either provisioned through Vapi or brought from providers like Twilio, Vonage, or Telnyx.

Full refresh
squads

Squads group multiple assistants so calls can be transferred between them mid-conversation.

Full refresh
tools

Tools that assistants can invoke during calls, such as API requests, call transfers, or external integrations.

Full refresh
files

Files uploaded to Vapi, typically used as knowledge-base sources for assistants.

Full refresh
chats

Text-based chat interactions with assistants, including input, output messages, and cost.

Incremental, Full refreshcreatedAt
sessions

Sessions group related chats and calls into one continuous conversation context.

Incremental, Full refreshcreatedAt
campaigns

Outbound call campaigns that dial a list of customers with an assistant or workflow, with live progress counters.

Full refresh

Community questions

Was this page useful?

Questions about this page? or post a community question.