The Persuora API
Pull your coached calls and reads into any system, create records from your tools, and receive every debrief the moment a call ends. If your team already lives in Salesforce, HubSpot, or a spreadsheet, Cue feeds it.
Authentication
Every request carries your access key, the same key that signs the Cue app in. Mint per-user keys in the admin panel; revoke any time.
curl -H "x-cue-app-token: cue_YOUR_KEY" https://app.persuora.com/api/cue/dossier
Read endpoints
GET /api/cue/dossier | Workspace overview: accounts with rollups + the open pipeline. |
GET /api/cue/accounts/:id | One account: contacts with reads, deals, coached calls, timeline. |
GET /api/cue/contacts | All contacts, freshest reads first. |
GET /api/cue/contacts/:id | One contact: the living RICE read with evidence quotes, calls, timeline. |
GET /api/cue/sessions | Your coached calls with debrief summaries. |
GET /api/cue/sessions/:id | One call in full: transcript, debrief, assignments. |
GET /api/cue/search?q= | Search every call: titles + what was actually said, with snippets. |
GET /api/cue/commitments | Open loops: promises either side made on calls. Filters: status, accountId, sessionId. |
Write endpoints
POST /api/cue/dossier | {"name", "domain?"} creates an account. |
POST /api/cue/contacts | {"accountId", "name", "title?", "email?"} creates a contact. |
POST /api/cue/opportunities | {"accountId", "name", "valueUsd?", "stage?"} creates a deal. |
POST /api/cue/activities | {"kind", "body", "accountId?|contactId?"} logs a timeline entry. |
PATCH /api/cue/opportunities/:id | {"stage"} moves a deal. |
PATCH /api/cue/sessions/:id | {"title?", "accountId?", "opportunityId?", "contactId?"} renames or assigns a call; null clears. |
DELETE /api/cue/sessions/:id | Removes a call and its debrief permanently. |
PATCH /api/cue/commitments/:id | {"status"} closes or reopens a commitment (open, done, dropped). |
POST /api/cue/prep | {"accountId"|"contactId"|"opportunityId"} synthesizes the pre-call prep sheet: objectives, questions, landmines, open loops. |
Everything is scoped to your workspace automatically; foreign IDs read as not found.
The debrief webhook
Set a webhook URL in Cue under Settings, Integrations. After every coached call, Persuora POSTs:
{
"event": "debrief.completed",
"workspace": { "id": "…", "name": "Acme" },
"session": { "id": "…", "title": "Discovery call", "owner": "rep@acme.com",
"contactId": null, "accountId": null },
"debrief": { "overall": 84, "summary": "…",
"scores": [{ "dimension": "discovery", "score": 88 }],
"nextTime": ["…"] },
"rice": { "dominant": "ego", "confidence": 82 },
"occurredAt": "2026-08-13T22:41:00.000Z"
}
Delivery is fire-and-forget with a 5 second timeout; respond with any 2xx. Point it at Zapier, Make, or a 20-line function that writes to your CRM.
Limits
Requests are scoped per workspace. Transcripts cap at 500 turns. Be gentle; this is a beta API and unpublished endpoints may change.