Get Your Data
Clari Copilot - How to Get Your Conversation Data
A practical guide to getting your conversation data out of Clari Copilot - covering REST API access, call details extraction, transcript retrieval, rate limit management, and how to route structured data into your downstream systems.
What you'll learn
- What conversation data you can extract from Clari Copilot - transcripts, call analytics, deal context, and participant metadata
- How to access data via the Clari Copilot REST API - authentication, the /call-details endpoint, and pagination
- Three extraction patterns: historical backfill, incremental polling, and webhook-triggered
- How to connect Clari Copilot data pipelines to Zapier, n8n, and Make
- Advanced use cases - deal inspection, revenue forecasting, coaching analytics, and pipeline intelligence
Data
What Data You Can Extract From Clari Copilot
Clari Copilot captures more than just the recording. Every call produces a set of structured assets accessible via the REST API - call details, transcripts, participant data, conversation analytics, and revenue-linked deal context from your CRM.
Common fields teams care about
API Access
How to Get Data via the Clari Copilot API
Clari Copilot exposes call data through a REST API documented at api-doc.copilot.clari.com. The core workflow is: authenticate with an API key, query the /call-details endpoint with filters, then extract transcripts and metadata from the response.
Authenticate
Clari Copilot uses API key authentication. Obtain your API key from your Clari Copilot admin settings and pass it in the Authorization header on every request. The API documentation at api-doc.copilot.clari.com details the exact header format for your account.
Authorization: ApiKey <your_api_key> Content-Type: application/json
Query call details by date range
Call the GET /call-details endpoint with date range parameters to retrieve call records. Results are paginated - use the offset and limit parameters to page through the full result set.
GET https://api.copilot.clari.com/call-details
?start_date=2025-01-01
&end_date=2025-02-01
&offset=0
&limit=50The response returns an array of call objects with call ID, timestamp, duration, participants, transcript data, and associated CRM context. Keep incrementing offset until you've retrieved all records in the date range.
Extract the transcript and analytics
Each call detail response includes transcript segments, speaker identification, and conversation analytics. The transcript is returned as structured JSON with utterances broken out by speaker and timestamp.
// Response shape (simplified)
{
"call_id": "cc-9847231",
"duration": 1842,
"participants": [
{ "name": "Sarah Chen", "role": "rep" },
{ "name": "James Park", "role": "prospect" }
],
"transcript": [
{ "speaker": "Sarah Chen", "start": 0, "text": "..." },
{ "speaker": "James Park", "start": 12, "text": "..." }
],
"analytics": {
"talk_ratio": { "rep": 0.42, "prospect": 0.58 },
"topics": ["pricing", "integration", "timeline"]
}
}Reassemble the transcript into plain text by concatenating segments, or preserve the structured format for per-speaker analysis. The analytics object provides pre-computed conversation metrics you can use directly or complement with custom scoring via Semarize.
Handle rate limits and data availability
Rate limits
Clari Copilot enforces 10 records/sec and a weekly cap of 100,000 requests/week. When you receive a 429 response, back off and retry. For bulk operations, pace requests at 8-9 per second to stay safely within limits and plan multi-week extraction for large historical datasets.
Data availability
Call data is not available the instant a call ends. Clari Copilot processes recordings asynchronously - typical lag is minutes to hours depending on call length and system load. Build a buffer into your extraction timing or implement a retry with exponential backoff for recently completed calls.
Patterns
Key Extraction Flows
There are three practical patterns for getting call data out of Clari Copilot. The right choice depends on whether you're doing a one-off migration, running ongoing extraction, or need near real-time processing.
Backfill (Historical Export)
One-off migration of past calls
Define your date range - typically 6-12 months of historical calls, or all available data if migrating platforms
Call GET /call-details with start_date and end_date parameters. Paginate through the full result set using offset and limit, collecting all call records
For each call, extract the transcript and metadata from the response. Pace requests at 8-9 per second to stay within the 10 records/sec limit
Store each transcript with its call metadata (call ID, date, participants, deal context, analytics) in your data warehouse or object store
Monitor your weekly request count - large backfills may need to be spread across multiple weeks to stay within the 100K/week cap
Incremental Polling
Ongoing extraction on a schedule
Set a cron job or scheduled trigger (hourly, daily, etc.) that runs your extraction script on a recurring basis
On each run, call GET /call-details with start_date set to your last successful poll timestamp and end_date set to the current time
Extract transcripts and metadata for any new call records returned. Use the call ID as a deduplication key to avoid reprocessing
Route each transcript and its metadata to your downstream pipeline - analysis tool, data warehouse, or automation platform
Update your stored timestamp to the current run time for the next poll cycle
Webhook-Triggered
Near real-time on call completion
Register a webhook endpoint in your Clari Copilot admin settings. Clari Copilot can fire events when a call is processed and data becomes available
When the webhook fires, parse the event payload to extract the call ID and metadata
Fetch the full call details via GET /call-details with the specific call ID from the webhook event
Route the transcript, analytics, and metadata downstream - to your analysis pipeline, CRM updater, or automation tool
Automation
Send Clari Copilot Data to Automation Tools
Once you can extract call data from Clari Copilot, the next step is routing transcripts through Semarize for structured analysis and into your downstream systems. Below are end-to-end example flows - each showing the full pipeline from Clari Copilot through Semarize evaluation to CRM, Slack, or database output.
Clari Copilot → Zapier → Semarize → CRM
Poll Clari Copilot for new calls on a schedule, fetch the 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 "Schedule by Zapier" as the trigger and set the interval to hourly. This will poll Clari Copilot for new calls on each run.
Add a "Webhooks by Zapier" Action (Custom Request) to fetch new calls from Clari Copilot. Set method to GET, URL to https://api.copilot.clari.com/call-details, add your API key header, and pass start_date as the last run timestamp.
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 - deal_confidence, risk_flag, champion_identified, etc.
Add a Salesforce (or HubSpot, Sheets, etc.) Action to write the extracted scores and signals to your CRM record.
Test each step end-to-end, then turn on the Zap.
Clari Copilot → n8n → Semarize → Database
Poll Clari Copilot for new calls on a schedule, 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 natively.
Setup steps
Add a Cron node as the workflow trigger. Set the interval to your desired polling frequency (hourly works well for most teams).
Add an HTTP Request node to list new calls from Clari Copilot. Set method to GET, URL to https://api.copilot.clari.com/call-details, configure API key auth, and set start_date to one interval ago.
Add a Split In Batches node to iterate over the returned call records. Inside the loop, add a Code node to extract and reassemble the transcript from the call detail response.
Add a Code node (JavaScript) to format the transcript segments into a single string. Join each segment's text, prefixed by speaker name.
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 - deal_confidence, risk_flag, champion_identified, evidence, confidence.
Add a Postgres (or MySQL / HTTP Request) node to write the structured output. Use call_id as the primary key for upserts.
Activate the workflow. Monitor the first few runs to verify Semarize responses are arriving and writing correctly.
Clari Copilot → Make → Semarize → CRM + Slack
Fetch new Clari Copilot call data on a schedule, send each transcript 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 Schedule module as the trigger, set to your desired interval (15-60 minutes is typical for Clari Copilot polling).
Add an HTTP module to list new calls from Clari Copilot. Set method to GET, URL to https://api.copilot.clari.com/call-details, configure API key auth, and filter by start_date since the last run.
Add an Iterator module to loop through each call record. For each, add a Text Parser module or JSON module to extract and reassemble the transcript from the call detail response.
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 call ID into the message.
On Branch 2, add a Salesforce module to write all brick values (deal_confidence, risk_flag, champion_identified) to the Opportunity record.
Set the scenario schedule and activate. Monitor the first few runs in Make's execution log.
What you can build
What You Can Do With Clari Copilot Data in Semarize
Custom deal signal extraction, conversation-weighted forecasting, structured coaching analytics, and building your own tools on programmable conversation data.
Playbook-Grounded Claim Verification
Source-of-Truth Accuracy Scoring
What Semarize generates
Your reps make product claims, reference pricing, and position against competitors on every call. Are those statements accurate? Run a knowledge-grounded kit against your product documentation, pricing sheets, and competitive battlecards on every transcript. Semarize flags every inaccurate product claim, roadmap leak, and outdated competitive statement with the exact quote and the source document it violates. Product marketing gets a weekly accuracy report — the 6-week lag between a messaging change and reps actually using it becomes visible and measurable.
Learn more about QA & Compliance“We need to revisit this in Q4” — CFO, Jan 15 call
Methodology Adherence Scoring
MEDDICC Coverage Analysis at Scale
What Semarize generates
Your team adopted MEDDICC — but are reps actually following it on calls? Pull transcripts and run a MEDDICC kit through Semarize. Each call gets scored on Metrics, Economic Buyer, Decision Criteria, Decision Process, Identify Pain, and Champion. After scoring 300 calls, the data shows that 68% of lost deals had zero coverage on Decision Process. The enablement team builds a targeted workshop on mapping decision processes — and the quarterly win rate increases by 12%.
Learn more about Sales CoachingSame-Week Coaching Signal Detection
Structured Skill Metrics for Immediate Action
What Semarize generates
By the time a skill gap surfaces in pipeline metrics, the damage spans dozens of calls. Run every transcript through a coaching signal kit that returns objection_handling_score, discovery_technique_depth, and value_articulation_clarity as typed fields. When a rep’s objection handling drops below threshold on 3 consecutive calls, the structured output triggers a Slack alert to their manager the same week — not the same quarter. The time from skill regression to coaching intervention shrinks from 6 weeks to 3 days.
Learn more about Sales CoachingSkill regression detected — Jake R. dropped below threshold on 3 consecutive calls
Coaching Signal: Objection Handling
objection_handling_score: 0.41 (threshold: 0.60)
discovery_technique: surface_level
calls_since_training: 6
regression_detected: true
Custom Win/Loss Analysis Engine
Conversation Signals That Predict Outcomes
What Semarize generates
A data analyst vibe-codes a Retool app that pulls Semarize scores from every Clari Copilot transcript associated with closed deals. The app correlates conversation signals with outcomes: which Brick values predict wins vs losses? After analysing 500 closed deals, the model reveals that deals where budget_confirmed=true AND decision_maker_present=true AND discovery_depth>65 close at 4x the rate. The team updates their deal qualification criteria based on actual conversation evidence — not CRM checkbox data.
Learn more about RevOpsWatch out for
Common Challenges & Gotchas
These are the issues that come up most often when teams start extracting call data from Clari Copilot at scale.
Weekly request cap
The 100,000 requests per week limit means you need to plan bulk operations carefully. A backfill of 10,000 calls can consume 20,000-30,000 requests when accounting for list, detail, and transcript fetches. Spread large operations across multiple weeks and prioritise recent data first.
Per-second rate limiting
At 10 records per second, you cannot burst-fetch large volumes. Implement a request queue with throttling to stay within limits. Exceeding the rate results in 429 responses that add latency if you lack proper backoff logic.
Transcript processing delay
Clari Copilot processes recordings asynchronously after a call ends. Attempting to fetch call details or transcripts too soon returns incomplete data. Build in a delay or retry mechanism - polling with a 1-2 hour lag reduces empty fetches significantly.
API credential scoping
API access requires credentials with the right scope and plan tier. If your integration user lacks the necessary read permissions, requests will fail or return partial data. Verify credential access with your Clari admin before building pipelines.
Pagination handling
Call listing endpoints return paginated results. Track your pagination state carefully - losing your position mid-backfill means re-scanning from the start or risking missed records. Persist pagination tokens between runs.
CRM data mapping
Clari Copilot links calls to CRM records, but the mapping depends on your CRM integration quality. Unmatched calls or stale CRM data can result in orphaned transcripts that lack deal context. Validate the CRM linkage before relying on it for deal-level analytics.
Duplicate processing protection
Without idempotency checks, re-running an extraction flow can process the same call twice. Use call IDs as deduplication keys to ensure each record is handled exactly once in your downstream pipeline.
FAQ
Frequently Asked Questions
Explore