Call recording settings
Connect the source of your call recordings, choose the speech-to-text engine, set how calls are matched and posted to HaloPSA tickets, and configure the digest that tells agents about unmatched recordings.
Written By Chris Scaminaci
Last updated About 2 hours ago
The Settings tab of Call Recordings controls how recordings reach QuantumOps, how they are transcribed, how they are matched to tickets and posted to HaloPSA, and how agents hear about recordings that could not be matched. Open Call Recordings in the sidebar and select Settings. Call recordings describes the Recordings tab you use day to day.
Before you start.
- The Call Recording & Transcription module is off for a new organisation. An Administrator turns it on in Module Management. Until then the Call Recordings link is missing from the sidebar.
- Only an Administrator can change these settings, including the API keys and connection details on the tab. Service Desk Manager, Dispatcher and Customer Success users can still open Call Recordings and the Settings tab, but they see it read-only: a note says Read-only. Only an administrator can change the Call Recording settings., every box and button in the settings is disabled, saved keys and secrets show as a row of dots instead of their values, and there is no Save Configuration button. Test Digest Notification and Manual Operations (below the settings) stay available to them.
- You need either a storage container that your phone system uploads recordings to, or a Yeastar P-Series PBX with its API enabled. You also need an account with the speech-to-text engine you choose.
- Each agent needs an Extension number, set in the person's Edit team member dialog (see Inviting people, roles and agent links). QuantumOps uses it to tell whose call a recording is.
Save your changes
Nothing on the tab is stored until an Administrator selects Save Configuration at the bottom. QuantumOps checks the form first. If something is wrong it shows Configuration is invalid with the reasons. The rules that matter most:
The sidebar badge on Call Recordings reads Configure until the saved configuration passes these checks, then Active.
The first time you open the tab, the form is pre-filled: AssemblyAI as the engine, with every AssemblyAI option ticked, Universal-3 Pro and Summarization included; Auto Match to Tickets, Post to Tickets and Private Notes ticked; Match Time Window (minutes) at 60; Max Parallel Processing at 5; Process Newest First ticked; Enable Dispatcher Correlation and Auto-Group Related Recordings ticked; digests off. The digest settings have their own starting values, listed under Tell agents about unmatched recordings. Read Match recordings to tickets before you save, because Post to Tickets starts ticked.
Choose where recordings come from
Under Recording Ingestion Source, select Azure Blob Storage or Yeastar PBX API. The tab shows only the section for the one you select.
Use Azure Blob Storage
Choose this when your phone system uploads recording files into a storage container.
- Select Azure Blob Storage.
- Enter the Connection String. The field hides what you type. Enter the Container Name.
- Select Test Connection. Connection Successful means QuantumOps can reach the container. Connection Failed gives the reason, for example that the container does not exist. The test gives up after 30 seconds.
- Fill in the Filename Format Template below, so QuantumOps can read the caller, the extension and the direction from each file name.
- Select Save Configuration.
QuantumOps looks for new files in the background. Scan Storage on the Recordings tab looks now.
Use the Yeastar PBX API
Choose this with a Yeastar P-Series PBX that has OpenAPI enabled. QuantumOps asks the PBX for new recordings on a schedule and fetches each audio file itself.
- Select Yeastar PBX API.
- Enter the PBX Base URL, the Client ID and the Client Secret from the PBX's API settings.
- Set Poll Interval (minutes), from 5 to 1440. A new configuration starts at 15.
- Select Test Connection. QuantumOps signs in, lists the extensions and the latest recordings, and reports how many it found, or why it could not.
- Select Save Configuration.
QuantumOps links each recording to an agent through the Extension number you set for that agent in the person's Edit team member dialog (Inviting people, roles and agent links). The agent filter and the agent named on each recording come from it.
Two more panels sit under the Yeastar fields:
- Enable PBX call presence is ticked in a new configuration. It lets QuantumOps follow the PBX's live call events, so the dispatch board and call sessions know who is on a call. The PBX call presence panel shows whether the connection to the PBX is up, when the last event arrived, any warnings and the phone state of each monitored extension. Refresh reloads it. The PBX needs its status monitors switched on for this to work: see Connecting your phone system.
- Real-Time CDR Webhook (Optional) shows a read-only Webhook URL with a copy button. Point your PBX at it and the PBX sends each call's details as soon as the call ends, so QuantumOps does not wait for the next poll. Polling and the webhook can run together, and duplicates are prevented. The URL is unique to your organisation: treat it as private. Connecting your phone system has the PBX steps.
Choose the speech-to-text engine
Speech-to-Text Engine offers three engines. Select a card, then fill in the fields that appear under it.
Diarization separates the speakers, so the transcript shows who said what. OpenAI Whisper cannot do it. The screen says so: use AssemblyAI for recordings with more than one speaker.
Summaries and sentiment scores come from AssemblyAI. With Azure Speech or OpenAI Whisper a recording has a transcript but no summary and no sentiment score.
AssemblyAI options
All six start ticked in a new configuration.
With Universal-3 Pro ticked:
- Custom Transcription Prompt gives the engine context: your company and product names, technical terms and the kind of call. The screen allows up to 1,500 words and counts characters against 7,500.
- Temperature runs from 0.0 to 1.0. The screen recommends 0.0, which is deterministic. Higher values add randomness.
Custom Key Terms (for transcription accuracy) takes company names, technical terms and proper nouns that are hard to transcribe. Type a term and press comma or Enter to add it. Select the cross on a term to remove it. The box appears for AssemblyAI.
If the engine's account runs out of credit or its key is revoked, the recordings it refused land in the Failed view with the Provider Account badge. Fix the account, then use Retry Parked (see Call recordings).
Set how recordings are processed
Processing Options controls the transcription queue.
Describe your file names
Filename Format Template tells QuantumOps how your PBX names its files, so it can read the caller, the extension and the direction from the name. It applies to Azure Blob Storage. With the Yeastar PBX API the PBX supplies those details directly, and the template is only a fallback.
Type the template in Filename Template, with placeholders in braces. Each placeholder, except {_}, can appear once.
The example under the field is the Yeastar one: {timestamp}-{endtime}-{extension}-{number}-{direction}.
To check a template, paste a real file name into Test Filename and select Test. Template matched! lists what QuantumOps read from the name. Otherwise the box says why the name did not match. Test before you rely on a template: one that does not fit your file names can leave recordings without a caller's number, and those cannot be matched.
Match recordings to tickets
Halo Ticket Matching decides what happens after a recording is transcribed.
QuantumOps matches a call by the caller's phone number, the agent's extension and how close the ticket was opened to the call. It matches automatically only when one ticket clearly stands out, for example the agent's own ticket opened just before the call. If several tickets fit, or none does, the recording stays Pending or No Match for a person.
What posting writes to HaloPSA
Posting adds two things to the ticket:
- A call log entry for the call: the caller's number, the direction, the length and the AI summary, or Call Recording and the length when there is no summary.
- A note, with the outcome Call Transcript, that holds the full transcript in a collapsed section with the agent, the date and the caller. The note is private: HaloPSA hides it from the customer. When related recordings are combined, the note is headed with the number of segments.
When a person makes the match, QuantumOps also asks HaloPSA to record the caller's number on the ticket's user, so later calls from that number are found. It never does this for an automatic match.
Decide whether you want a call's summary and full transcript on your tickets before you leave Post to Tickets ticked. What QuantumOps writes into HaloPSA lists everything QuantumOps can put on a ticket.
When a call posts without a person
With Post to Tickets ticked, QuantumOps posts on its own only in two cases, and only for calls from the last seven days:
- The recording was linked to a ticket through a dispatcher's Call Taking session (see below).
- An AI check matched the recording with a confidence of 90% or more.
Every other match waits for a person. A match made by the phone number, extension and time rules shows as Matched in the Ready to Post view. So does a recording someone attached by hand. A recording is never posted twice to the same ticket.
Match transferred calls
Dispatcher Correlation (Multi-Leg Calls) handles a call that a dispatcher takes and then transfers to an engineer, which leaves more than one recording.
Tell agents about unmatched recordings
Digest Notifications sends each agent a Slack message that lists their recordings that no ticket has been matched to, with a button to open them. Matching your own recordings shows what the agent sees.
A new configuration starts with Enable Digest Notifications unticked and Send via Slack and Include AI Suggestions ticked. Digest Frequency starts at Daily, Digest Time at 09:00, Weekdays Only ticked, Day of Week at Monday and Min Recordings for Digest at 1.
QuantumOps checks every 15 minutes. Daily and Weekly digests go out in the 15 minutes after Digest Time. Hourly goes out at the start of each hour. Immediate goes out at every check, but never to the same agent more than once in 30 minutes. An agent is not sent a second digest in the same period.
Digests are delivered as Slack direct messages. Keep Send via Slack ticked and give each agent a Slack ID. A scheduled digest reaches an agent who has a Slack ID, has at least the minimum number of unmatched recordings and has not been excluded from messaging mapping. Set the Slack ID under Agent Mapping in the Messaging tab of Q-Director Settings (Q-Director Config in the sidebar; see Q-Director: Slack, Teams and agent mapping) or in the agent's Edit team member dialog (Inviting people, roles and agent links). A recording counts as unmatched when it is transcribed and its match status is Pending or No Match, and it belongs to an agent through the extension.
Check a digest before you turn it on
Under Test Digest Notification:
- Choose an agent under Select Agent to Send Test Digest To. The list holds only agents with a Slack or Teams ID. If it is empty the screen says No agents have Slack or Teams IDs configured.
- Select Preview Digest. Digest Preview shows the message as the platform receives it, in a code view, under a Slack tab and a Teams tab. Above it are how many recordings the digest covers and how many have suggestions, marked Real Data or Sample Data.
- Select Send Test Digest to send the message to that agent's Slack direct messages, which needs a Slack ID. It uses the agent's real unmatched recordings, and sample ones when there are none. The result is shown under the buttons.
Use a test digest to confirm a message reaches the agent in Slack before you enable digests for everyone.
Run a job now
Manual Operations has two buttons that do work on demand.
Batch Match & Post has the button Run Batch Match & Post. It runs an AI check over unmatched recordings that have a transcript, are from the last seven days, have no suggestion yet and have not been checked in the last 24 hours, up to 500 at a time. A match of 90% or more is applied, and posted when Post to Tickets is ticked. A match of 50% to 89% is saved as a suggestion, which shows in the digest and in the browser extension. Anything lower is counted under No Match in the result, and the recording stays unmatched. The result lists Processed, Auto-Matched, Auto-Posted, Candidates Created, No Match, Errors and the time taken. The same check runs by itself every two hours, on recordings from the last seven days that were transcribed more than 12 hours ago, 50 at a time. Older calls wait for a person: use Post to Ticket on the Recordings tab, or an agent matches them on My Call Recordings.
Send All Digests has the button Send Digests to All Agents. It sends a digest now to every agent who has unmatched recordings. The result lists Total Agents, Sent, Skipped and Failed. Skipped counts agents with fewer recordings than Min Recordings for Digest.
Other boxes on the tab
Six more boxes appear on the tab. Ticking or unticking them does not change how QuantumOps collects, transcribes, matches or posts recordings, so you can leave them as they are. Each is shown here with the hint the screen gives it.
A digest shows each recording's summary whether or not Include Transcript Preview is ticked.
Related
- Call recordings: the list, the transcript window and how a recording gets to a ticket.
- Matching your own recordings: what an agent does with a digest.
- Connecting your phone system: PBX call presence, the webhook and screen-pop.
- Module Management: where the Call Recording & Transcription module is turned on.
Was this helpful?
Still need help? Ask the team