Skip to main content
Nixflex records the audio of every call and keeps it alongside the transcript, so you can listen back to anything your agent handled. Recording is on by default and can be switched off for an agent, or for a single number.
Switching recording off does not affect the transcript. Speech recognition runs independently, so you still get the full transcript, summary, sentiment and extracted data - just no audio file.

Who records

When recording is on, you choose who captures the audio. The default is your carrier - exactly what happened before this setting existed. Set it per agent in the dashboard (Call recording -> Recorded by) or with recording_source on Create agent and Update agent. A single number can override its agent with recording_source on Update phone number; null on a number means inherit the agent. Any other value is rejected with invalid_recording_source.
Recording off always wins. With record_call off nothing is recorded by anyone, whatever recording_source says.
Nixflex recordings are mono 8 kHz WAV - the same quality as the phone line - with both voices balanced to the same level. If the caller interrupts the agent mid-sentence, the recording contains only what the caller actually heard. Like carrier recordings, they go to your own storage bucket when one is connected.

Turning it off

Per agent (dashboard) Open the agent, find Call actions, and switch off Call recording. Every number on that agent stops recording from the next call onwards. Per number (API) A single number can override its agent - useful when one client’s privacy policy forbids recording but the rest of your numbers are fine.
null is not the same as false. null means “no opinion, follow the agent”, so a null number under an agent with recording on will still record. To switch one number off while the agent keeps recording, send false, not null.
Agent-level can also be set through the API with record_call on Create agent and Update agent.

What happens when it is off

  • No audio is captured at all. Nixflex never asks the carrier to record, so there is no file anywhere - not on your carrier, not with us.
  • recording_url is null on the call record and in the call.completed webhook. If your code reads that field, handle null.
  • Past recordings are untouched. Switching off applies to future calls only.
  • You are not charged by your carrier for recording those calls.

Where the audio is stored

When a call ends, a carrier recording is downloaded from your carrier, stored in EU (Ireland) storage, and the carrier’s copy is deleted. A Nixflex recording is written straight to that same EU storage - there is never a carrier copy to fetch or delete. Prefer the audio in your own region? Connect your own S3-compatible bucket and recordings go there instead, with Nixflex keeping no copy - see Your own storage.
This is what both carriers recommend. Twilio charges for recording storage and documents downloading recordings to avoid those charges. Telnyx keeps recordings for up to a year and advises fetching what you need in good time. Pulling the file to EU storage also keeps recordings inside the EU, which matters if your end-customers are covered by GDPR.
Recordings are deleted automatically after 90 days along with the rest of the call record - see Data retention.

Reading a recording

The URL arrives in two places:
  • On the call record: GET /v1/calls/:id returns recording_url
  • In the post-call webhook: call.completed includes recording_url
If you need recordings for longer than 90 days, download the file from recording_url when the call.completed webhook fires and store it in your own system.

Audio format

Dual-channel audio is easier to analyse per speaker. The carrier difference between inbound and outbound is long-standing behaviour and is kept as-is so existing integrations are not changed. If your code assumes a file extension, read it from recording_url rather than building the name yourself.
Recording calls is regulated, and the rules differ by country and by state. In many places you must tell the caller the call is recorded, and in some you need their explicit consent. Nixflex does not announce recording for you - if you need an announcement, put it in your agent prompt or your greeting.

Testing it

1

Switch it off

Turn off Call recording on the agent, or PATCH record_call: false on the number.
2

Make a call

Call the number and talk for a few seconds, then hang up.
3

Check the call record

GET /v1/calls/:id - recording_url should be null, while the transcript and summary are still there.
4

Switch it back on

Set it back to true, or null on the number to inherit the agent again, and call once more. recording_url should be populated.