Get Your Data
tl;dv - How to Get Your Conversation Data
A practical guide to getting your conversation data out of tl;dv - covering API access, webhook-triggered extraction, transcript retrieval, meeting recordings, and how to route structured data into your downstream systems.
What you'll learn
- What conversation data you can extract from tl;dv - transcripts, AI summaries, speaker labels, and recording URLs
- How to access data via the tl;dv REST API (v1alpha1) - authentication, endpoints, and Business Plan requirements
- Two extraction patterns: webhook-triggered (MeetingReady / TranscriptReady) and incremental polling
- How to connect tl;dv data pipelines to Zapier, n8n, and Make
- Advanced use cases - coaching, team knowledge aggregation, onboarding QA, and custom meeting intelligence
Data
What Data You Can Extract From tl;dv
tl;dv captures more than just the recording. Every meeting produces a set of structured assets that can be extracted via API - the transcript itself, AI-generated summaries, speaker identification, timing metadata, and the recording URL for the original video.
Common fields teams care about
API Access
How to Get Transcripts via the tl;dv API
tl;dv exposes meetings and transcripts through a REST API (v1alpha1). The workflow is: generate an API key from your tl;dv account, list meetings, then fetch the transcript and metadata for each meeting ID.
Business Plan Required
API access is only available on the tl;dv Business Plan. Free and Pro plans do not include API credentials. Confirm your plan tier before building any integration. Contact tl;dv sales to upgrade if needed.
Authenticate
tl;dv uses API key authentication. Generate an API key from your tl;dv account settings (under Integrations or API). Pass the key in the x-api-key header on every request.
x-api-key: <your_tldv_api_key> Content-Type: application/json
List meetings
Call the GET /v1alpha1/meetings endpoint to retrieve your recorded meetings. Results are paginated - use the offset and limit query parameters to page through results.
GET https://api.tldv.io/v1alpha1/meetings?limit=50&offset=0 Headers: x-api-key: <your_tldv_api_key>
The response returns an array of meeting objects with id, title, created_at, duration, participants, and source (Zoom / Meet / Teams). Keep paginating until the result set is smaller than your limit.
Fetch the transcript
For each meeting ID, request the transcript via GET /v1alpha1/meetings/:meetingId/transcript. The response contains an array of segments, each with a speaker name, timestamp, and text.
GET https://api.tldv.io/v1alpha1/meetings/abc123/transcript Headers: x-api-key: <your_tldv_api_key>
Each segment in the transcript response includes speaker, start (timestamp), end, and text. Reassemble into plain text by concatenating segments, or preserve the structured format for per-speaker analysis.
Use webhooks for real-time triggers
MeetingReady
Fires when a meeting recording has been fully processed and is available for retrieval. Use this event to trigger metadata extraction or to queue the meeting for transcript fetching once the transcript is also ready.
TranscriptReady
Fires when the transcript for a meeting has been generated. This is the primary trigger for analysis pipelines - when this event arrives, you can immediately fetch the full transcript and route it to Semarize or your downstream systems.
// Example webhook payload (TranscriptReady)
{
"event": "TranscriptReady",
"meeting_id": "abc123",
"title": "Discovery Call - Acme Corp",
"created_at": "2025-06-15T14:30:00Z",
"source": "zoom"
}Patterns
Key Extraction Flows
There are two practical patterns for getting transcripts out of tl;dv. The right choice depends on whether you need near real-time processing or are running ongoing batch extraction.
Webhook-Triggered (Recommended)
Near real-time on transcript availability
Register a webhook endpoint in your tl;dv settings. Subscribe to the TranscriptReady event to get notified when a transcript is available
When the webhook fires, parse the event payload to extract the meeting ID, title, and source platform
Immediately fetch the transcript via GET /v1alpha1/meetings/:meetingId/transcript using the meeting ID from the event
Route the transcript and meeting metadata downstream - to Semarize for structured analysis, your CRM, or automation platform
Store the meeting ID as a processed marker to prevent duplicate processing if the webhook fires again
Incremental Polling
Ongoing extraction on a schedule
Set a cron job or scheduled trigger (hourly, daily, etc.) that runs your extraction script
On each run, call GET /v1alpha1/meetings with pagination to retrieve recently recorded meetings. Compare against your stored list of already-processed meeting IDs
For each new meeting ID, fetch the transcript via GET /v1alpha1/meetings/:meetingId/transcript. Skip meetings where the transcript is not yet available
Route each transcript and its metadata to your downstream pipeline - analysis tool, warehouse, or automation platform
Update your stored list of processed meeting IDs for the next polling cycle
Automation
Send tl;dv Transcripts to Automation Tools
Once you can extract transcripts from tl;dv, the next step is routing them through Semarize for structured analysis and into your downstream systems. Below are end-to-end example flows - each showing the full pipeline from tl;dv trigger through Semarize evaluation to CRM, Slack, or database output.
tl;dv → Zapier → Semarize → CRM
Detect new tl;dv meeting transcripts via webhook, fetch the full transcript, send it to Semarize for structured analysis, then write the scored output - signals, flags, and evidence - directly to your CRM.
Setup steps
Create a new Zap. Choose "Webhooks by Zapier" as the trigger and select "Catch Hook". Copy the webhook URL and register it in your tl;dv settings for the TranscriptReady event.
Add a "Webhooks by Zapier" Action (Custom Request) to fetch the transcript from tl;dv. Set method to GET, URL to https://api.tldv.io/v1alpha1/meetings/{{meeting_id}}/transcript, and add your x-api-key header.
Add a second "Webhooks by Zapier" Action. Set method to POST, URL to https://api.semarize.com/v1/runs. Add your Semarize API key as a Bearer token. In the body, set kit_code to your Kit, mode to "sync", and map the transcript text into input.transcript.
Add a Formatter step to extract individual brick values from the Semarize JSON response - overall_score, risk_flag, action_items, etc.
Add a HubSpot (or Salesforce, Sheets, etc.) Action to write the extracted scores and signals to your CRM record.
Test each step end-to-end with a real tl;dv recording, then turn on the Zap.
tl;dv → n8n → Semarize → Database
Poll tl;dv for new meetings on a schedule or receive webhook events, fetch transcripts, send each one to Semarize for analysis, then write the structured scores and signals to your database. n8n's native loop support handles pagination and batch processing.
Setup steps
Add a Webhook node as the workflow trigger. Set the HTTP method to POST, define a path (e.g. /tldv-transcript), and optionally add header authentication. Register this URL in your tl;dv webhook settings for the TranscriptReady event.
Add an HTTP Request node to fetch the transcript from tl;dv. Set method to GET, URL to https://api.tldv.io/v1alpha1/meetings/{{$json.meeting_id}}/transcript, and add your x-api-key header.
Add a Code node (JavaScript) to reassemble the transcript segments into a single string. Join each segment's text, prefixed by speaker name and timestamp.
Add another HTTP Request node to send the transcript to Semarize. Set method to POST, URL to https://api.semarize.com/v1/runs. Add your API key as a Bearer token. Set kit_code, mode to "sync", and map the transcript into input.transcript.
Add a Code node to extract the brick values from the Semarize response - overall_score, action_items, risk_flag, evidence, confidence.
Add a Postgres (or MySQL / HTTP Request) node to write the structured output. Use meeting_id as the primary key for upserts.
Activate the workflow. Test with a real tl;dv recording to verify the full pipeline works end to end.
tl;dv → Make → Semarize → CRM + Slack
Receive tl;dv webhook events in Make, fetch the full transcript, send it to Semarize for structured analysis, then use a Router to branch the scored output - alert on risk flags via Slack and write all signals to your CRM.
Setup steps
Create a new Scenario. Add a Custom Webhook module as the trigger. Copy the webhook URL and register it in your tl;dv settings for the TranscriptReady event.
Add an HTTP module to fetch the transcript. Set method to GET, URL to https://api.tldv.io/v1alpha1/meetings/{{meeting_id}}/transcript, and add your x-api-key header.
Add a Text Aggregator or JSON module to reassemble the transcript segments into a single text string suitable for analysis.
Add another HTTP module to send the transcript to Semarize. Set URL to https://api.semarize.com/v1/runs, add your Bearer token, and set kit_code, mode to "sync", and input.transcript from the previous step. Parse the response as JSON.
Add a Router module. Define Branch 1 with a filter: bricks.risk_flag.value equals true. Leave Branch 2 as a fallthrough (no filter).
On Branch 1, add a Slack module to alert your team when risk is detected. Map the score, risk flag, and meeting title into the message.
On Branch 2, add a HubSpot (or Salesforce) module to write all brick values (score, risk_flag, action_items) to the contact or deal record.
Test the scenario with a real tl;dv recording. Monitor the first few runs in Make's execution log, then activate the schedule.
What you can build
What You Can Do With tl;dv Data in Semarize
Custom scoring frameworks, cross-meeting aggregation, ramp measurement, and building your own tools on structured conversation signals.
Knowledge-Grounded Demo Accuracy Scoring
Factual Verification for Sales Demos
What Semarize generates
Your AEs record every demo. Scoring frameworks can tell you whether they followed the methodology — but did they state things that were factually correct? Run every demo transcript through a knowledge-grounded kit against your current product documentation, pricing sheet, and competitive battlecard. Semarize verifies whether feature claims were accurate, whether pricing references were current, and whether competitive positioning followed the approved battlecard. After scoring 150 demos, the data shows that 23% of demos include at least one outdated feature claim and 11% reference pricing from the previous quarter. Product marketing gets a weekly accuracy report — corrections happen within days.
Learn more about Sales CoachingProspect Objection Pattern Mining
Cross-Call Objection Intelligence
What Semarize generates
Your sales leadership wants to understand which objections come up most often and how well reps handle them. Objections are scattered across hundreds of call recordings with no way to categorize or compare them at scale. Run 6 months of transcripts through an objection analysis kit. Semarize extracts objection_type (pricing, timing, competitor, authority), objection_response_quality, and resolution_outcome for every objection in every call. A quarterly report reveals that "we're already using [Competitor X]" appears in 42% of lost deals but reps only handle it effectively 31% of the time. Enablement builds a targeted objection handling playbook.
Learn more about Data ScienceRenewal Risk Early Warning System
Proactive Churn Detection
What Semarize generates
Your CS team records QBRs and check-ins. The real question is whether you can detect risk early enough to act on it. Run every customer meeting through a renewal risk kit. Semarize tracks sentiment_trajectory across meetings, detects escalation_language, monitors feature_complaint_density, and flags competitor_exploration. When a customer who scored 85 on satisfaction three months ago drops to 52 and mentions “evaluating alternatives,” the system fires an alert to the CS director. The save conversation happens 6 weeks before renewal — not 6 days.
Learn more about Customer SuccessRenewal risk alert — Acme Corp sentiment dropped 33 points over 4 months
Churn Risk Detected
Account: Acme Corp — Enterprise
Sentiment: 85 → 52 (Nov–Feb)
Signals: escalation language, competitor mention
Renewal: 6 weeks away
From last QBR
“We’ve been evaluating alternatives that might better fit our current workflow…”
Custom Interview Evaluation Platform
Structured Candidate Scoring
What Semarize generates
A hiring manager vibe-codes a Retool app that scores interview recordings from tl;dv. Each interview gets run through a structured evaluation kit. Semarize scores technical_depth (did the candidate demonstrate expertise?), communication_clarity, problem_solving_approach, and culture_alignment. Every interviewer's feedback is standardised — no more "I got a good vibe" vs. detailed writeups. The hiring committee reviews structured scorecards side-by-side. Interview bias drops measurably because every candidate is evaluated on the same criteria with evidence from the transcript.
Learn more about QA & ComplianceWatch out for
Common Challenges & Gotchas
These are the issues that come up most often when teams start extracting transcripts from tl;dv at scale.
Alpha-stage API (v1alpha1)
The tl;dv API is in alpha. Endpoint shapes, authentication methods, and response formats may change without deprecation notice. Pin to a version, validate responses defensively, and monitor the changelog.
Business Plan requirement
API access is gated behind the Business Plan. Teams on Free or Pro plans cannot access the API at all - there is no workaround. Confirm your plan tier before building any integration.
Transcript processing delay
Transcripts are generated asynchronously after a meeting ends. Attempting to fetch a transcript too soon will return empty or incomplete data. Use the TranscriptReady webhook instead of polling immediately after a meeting.
Webhook delivery reliability
Webhook events can be missed due to network issues, endpoint downtime, or processing delays. Implement idempotency checks using meeting IDs and consider a periodic polling fallback to catch any events your webhook handler missed.
Speaker label accuracy
Speaker identification is not always perfect. Multiple participants, poor audio, or guest users who are not registered in the workspace can lead to misattributed segments. Validate labels before using them for per-speaker analysis.
Rate limits and pagination
The API enforces rate limits that may vary as the product matures. Implement exponential backoff and respect pagination cursors. For bulk operations, pace requests conservatively - the alpha API may have lower limits than you expect.
Cross-platform meeting ID mapping
tl;dv records meetings from Zoom, Google Meet, and Teams. Mapping a tl;dv meeting ID back to the original platform's meeting ID requires careful handling of the metadata. Build a lookup table if you need to correlate across systems.
FAQ
Frequently Asked Questions
Explore