Call Imports
POST
/api/v1/call-imports/{call_import_id}/rows/{row_id}/diarised-speaker-swap

Flip the user <-> agent mapping on a diarised row.

The worker's "first speaker is the agent" heuristic is right most of the time but does fail on inbound recordings where the customer greets first, on recordings where the agent stays silent for the intro, etc. Rather than rerun the (expensive) STT + pyannote pipeline for those cases, we let reviewers flip the mapping in place: the structured diarised_segments are the source of truth and we re-render the plain-text diarised_transcript from them with the swap applied. The next CSV export will then show the corrected labels.

Returns the updated row so the frontend can refresh without an extra round-trip.

Authorization

AuthorizationBearer <token>

JWT access token. Use: Authorization: Bearer .

In: header

Path Parameters

call_import_id*Call Import Id
Formatuuid
row_id*Row Id
Formatuuid

Header Parameters

Authorization?string|null
X-API-Key?string|null
X-EFFICIENTAI-API-KEY?string|null
X-Workspace-Id?string|null

Response Body

application/json

application/json

curl -X POST "https://example.com/api/v1/call-imports/497f6eca-6276-4993-bfeb-53cbbbba6f08/rows/497f6eca-6276-4993-bfeb-53cbbbba6f08/diarised-speaker-swap"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "row_index": 0,  "conversation_id": "string",  "recording_url": "string",  "recording_date": "2019-08-24",  "transcript": "string",  "transcript_source": "string",  "transcript_provider": "string",  "transcript_model": "string",  "transcript_status": "string",  "transcript_error": "string",  "transcribed_at": "2019-08-24T14:15:22Z",  "diarised_transcript": "string",  "diarised_transcript_provider": "string",  "diarised_transcript_model": "string",  "diarised_transcript_status": "string",  "diarised_transcript_error": "string",  "diarised_at": "2019-08-24T14:15:22Z",  "diarised_llm_provider": "string",  "diarised_llm_model": "string",  "diarised_prompt": "string",  "diarised_segments": [    {}  ],  "diarised_speaker_swap": false,  "status": "pending",  "recording_s3_key": "string",  "recording_content_type": "string",  "recording_size_bytes": 0,  "error_message": "string",  "attempts": 0,  "raw_columns": {},  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}

Community & contact

  1. Found a bug or have a feature request? Open a GitHub issue.
  2. Join our Discord for faster replies!