What you can export
Finn produces three kinds of call data: the recording, the transcript, and the structured post-call analysis fields you defined. Every export route below carries some subset of those.
| Route | Contains | Where you trigger it |
|---|---|---|
| Per-deployment CSV | One row per call, every field as a column | Deployment Analytics page, in the dashboard |
| PDF report | Top-line metrics, charts, notable transcripts | Deployment Analytics page, in the dashboard |
| Webhook stream | One call.completed payload per call, pushed after the call ends | Webhooks configuration |
| Calls API | Call records fetched on demand | API reference |
CSV and PDF are dashboard actions. There is no endpoint that generates them, so you cannot put a nightly CSV on a cron. If you want data on a schedule, use the webhook stream or the Calls API instead.
CSV export
Open a deployment in Deployment Analytics and export from there. The file covers that deployment only. There is no all-deployments CSV, so a campaign split across several deployments needs several exports concatenated on your side.
Columns fall into four groups:
- Caller fields, including any custom fields carried in from the audience.
- Call metadata: outcome, duration, cost, timestamps.
- Every post-call analysis field you defined, one column each.
- AI analysis: sentiment, summary, outcome category.
Two things will surprise you when you load the file.
Fields added late are blank for old calls. A post-call analysis field is only extracted for calls that completed after you added it. Earlier rows stay empty for that column. Editing a field's question does not re-extract past calls either, so a single column can hold answers to two different questions depending on when the call ran. Contact support if you need a backfill pass.
Not every value is a real answer. When the transcript did not contain enough information, the field has no usable answer. A blank cell can mean the topic never came up, not that the answer was "no".
Webhook stream
For anything continuous, push beats pull. The call.completed event carries all post-call fields in its payload. It is sent once analysis is saved, usually within about 5 minutes of the call ending, and after about an hour it is sent anyway with whatever analysis exists. See webhook-post-call.
Point Finn at an endpoint that returns 2xx quickly and does its real work asynchronously. Slow endpoints get retried, and retries mean duplicate deliveries, so make your handler idempotent on the call ID. See webhook retries for the retry schedule and webhook security for signature verification. Verify signatures before you write anything to your warehouse.
Pulling through the API
The Calls API returns call records, including analysis fields, for backfills and reconciliation. Read pagination before writing the loop, and rate limits before backfilling a large date range. Authenticate as described in authentication.
Use the API for repair work, not for your primary pipeline. If you poll it on a tight interval to approximate a stream, you will hit rate limits and still be slower than the webhook.
Timing and freshness
Deployment data in the dashboard is cached for up to 5 minutes, so a fresh export can lag the most recent calls by that much.
Exporting mid-deployment gives you completed-so-far calls, and success rate computed against that partial set moves as more calls finish. Export after the deployment completes if the numbers need to be stable.
What exports do not include
Recordings and transcripts are kept for the retention period set under Settings → Data → Data retention: 30, 90, 180 or 365 days, 2 years, or never deleted. Once a recording or transcript ages past retention, it is gone from exports too, so pull anything you need to keep before then. See retention.
Recording is a paid add-on, set per deployment. The dashboard's Save recordings switch starts on; through the API, recording_enabled defaults to false. Calls on a deployment without it have no recording to export. Where recording is on, recordings are playable and downloadable one call at a time from the sidebar. The CSV does not include audio files.
Related
- Call logs for the searchable log of every call.
- Analysis fields for what each column means.
- Metrics for how the headline numbers are computed.