Menu

Expand
Rate this page:

Play

The Play action instructs Autopilot to play recorded audio to the user by fetching an audio file from the URL provided. Play is currently only supported on Voice and will be ignored on other channels. Play and Say can be used in the same response.

Simple example: Play an audio file to the caller

{
	"actions": [
		{
			"play": {
				"loop": 2,
				"url": "https://api.twilio.com/cowbell.mp3"
			}
		}
	]
}

The loop attribute lets you define how many times you want to play the audio to the caller.

Dynamic example: Play the same audio file by calling dynamic JSON from a Twilio Function (or another endpoint) instead of the Autopilot Actions bin.

First you'll redirect to the Function from the Actions bin:

{
    "actions": [
        {
            "redirect": "replace-with-your-function.twil.io/dynamicplay"
        }
    ]
}

In the Twilio Function, your Node.js code to play an audio file by rendering Actions' JSON dynamically could look like this:

exports.handler = function(context, event, callback) {
    let actions = [];
    let play = {
        "play":
             {
		        "loop": 2,
		        "url": "https://api.twilio.com/cowbell.mp3"
	         }
	   }

    actions.push(play);
    let respObj = {
    	"actions": actions
    };
    callback(null, respObj);	
};
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

Loading Code Sample...
        
        
        

        Thank you for your feedback!

        Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        thanks-feedback-gif