Announcing General Availability of <Start><Recording> for Voice Recording

November 10, 2025
Written by
Reviewed by
Paul Kamp
Twilion

We’re excited to announce new TwiML for Voice Call recording: <Start><Recording> !

Today, customers can initiate call recording using the Calls or Conference Participants resource or the <Dial> and <Conference> TwiML verbs. Additionally, customers implementing a leave-a-message or voicemail function can record the inbound audio call using the <Record> TwiML verb; however, as a synchronous verb, no other TwiML can be executed while <Record> is taking place. This meant that the only way to start a recording on an in-progress call and continue to programmatically manage that call was by using the Recordings resource. Until now, that is!

With the launch of <Start><Recording>, you can trigger recording at any point during a TwiML workflow – including as the very first TwiML instruction – to capture 100% of the call audio you want in your recording. Now, customers can start recording inbound or outbound calls immediately using TwiML instead of waiting for a callback from the Recordings resource to initiate recording.

How It works

<Recording>, a new TwiML noun, contains the same parameters (attributes) as the Recordings resource. When <Recording> is triggered by the <Start> verb, it provides the ability to create an asynchronous recording using TwiML. Whether your application is receiving or making a call, <Start><Recording> gives the instruction to initiate a recording and will flow onto the next TwiML verb.

Example <Start><Recordings> usage

In this section, I’ll share some examples of how <Start><Recording> can be used in Voice workflows to capture audio and downstream services in one place.

The following TwiML instruction uses <Start><Recording> to begin a dual-channel call recording that includes the <Say> instruction:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Start>
        <Recording channels="dual" recordingStatusCallback = 
"https://example.com/your-callback-url" />
    </Start>
    <Say> The recording has started.</Say>
</Response>

Next, I’ll show how to use <Start><Recording> to begin a dual-channel call recording that includes <Gather> and <Say> instructions to identify why someone is calling, and route them accordingly:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
   <Start>
      <Recording channels="dual" recordingStatusCallback = 
"https://example.com/your-callback-url" />
    </Start>
          <Gather input="speech input" finishOnKey="#" timeout="5">
             <Say>Welcome to Twilio, please tell us why you're calling or press #0 to be routed to an agent.</Say>
          </Gather>
         <Say>We didn't receive any input. Goodbye!</Say>
</Response>

The following TwiML instruction uses <Start><Recording> that flows to the <Connect> verb with <ConversationRelay> nested within to record and analyze a call using Twilio’s Conversational Intelligence services:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Start>
     <Recording channels="dual" recordingStatusCallback = 
"https://example.com/your-callback-url" />
 </Start>
   <Connect>
     <ConversationRelay url="wss://mywebsocketserver.com/websocket" welcomeGreeting = "Hello, how can I direct your call?" intelligenceService = "GAaaaaaaaaaaaaaaaaaaaaa">
     </ConversationRelay>
  </Connect>
</Response>

Once a recording is started using <Start><Recording>, you can stop, pause, or resume the recording by posting to the Recordings resource.

Pricing

Since <Start><Recording> offers the same capabilities as the other Call recording methods, it is priced at the same rate. See details here.

Unlock the power of <Start><Recording>!

Now that there is dedicated TwiML for Voice recording, customers can record their call and use additional Twilio features like <Gather> to record your IVR, or Conversational Intelligence for regulatory recording requirements and QAing transcriptions. To get started, visit the <Recording> documentation for an overview. We can’t wait to see what you build!

Jessica Rabin is a Product Manager at Twilio leading the Voice Recordings product suite. Outside of work, Jessica enjoys practicing balance by staying active and indulging her sweet tooth. Her email address is jrabin [at] twilio.com