VoiceplayAudiostable

Play audio

Plays audio to the caller — pick any recording, music track or tone from the Prompts & music library (the system library or your own). Loops until the nex…

What it does

Plays audio from the Prompts & music library to the caller — a system track or tone (hold music, ringback) or a recording your team uploaded. It loops a fixed number of times, or Forever (until the next step takes over). By default only the caller hears it; Heard by can whisper it to the bridged agent or play it on Both legs in parallel.

This is the plain "play this file" step. For a spoken prompt or text-to-speech, use Play prompt or audio (say). For hold music with a start offset, a play-time window, resume, or press-a-key-to-skip, use Play music (playMusic).

When to use it

  • Loop hold music or ringback while agents ring or a caller waits.
  • Play a static announcement — an outage notice, a recorded greeting, a legal disclosure — once.
  • Whisper a short audio cue to the answering agent.

Configuration

Plays audio to the caller — pick any recording, music track or tone from the Prompts & music library (the system library or your own). Loops until the next step unless you set a finite count. Set "Heard by" to "Agent only" to whisper it to the bridged agent, or "Both" to play it on every leg in parallel. For a one-off spoken prompt use "Play prompt or audio"; for hold music with start offset, play-time, resume, or press-a-key-to-skip, use "Play music".

FieldLabelTypeRequiredDefaultNotes
audioAudioaudioRequired—Pick audio from the Prompts & music library: a system track or one your team uploaded or recorded.
loopHow many timesselectOptionalinfinityOptions: infinity, 1, 3, 5, 10.
targetHeard byselectOptionalcallerOptions: caller, agent, both. Agent-only whisper requires an active bridged agent leg. "Both" plays in parallel on the caller leg and every active bridged leg; the call advances when the caller leg finishes. Falls back to the caller leg only if no bridge is active.

Outgoing events: call.playback.ended, call.hangup

Examples

Loop hold music while ringing

{
  "id": "hold",
  "type": "playAudio",
  "config": { "audio": "sys:music/default-hold", "loop": "infinity" },
  "on": { "call.playback.ended": "voicemail", "call.hangup": "end" }
}

Play a one-off announcement

{
  "id": "notice",
  "type": "playAudio",
  "config": { "audio": "asset:7f0c2a1e-4b6d-4c8e-9a3f-2d5b6e8c1f04", "loop": "1" },
  "on": { "call.playback.ended": "menu", "call.hangup": "end" }
}

Gotchas

  • Forever loop holds the verb queue. A Forever clip keeps playing until the call bridges (an agent answers), hangs up, or another verb cancels it. That's the point for hold music, but don't put a Forever clip in front of a step you expect to reach on its own.
  • Heard by: agent / both needs an active bridge. With no agent leg in scope it falls back to the caller leg.
  • audio is a library reference, never a URL. It holds asset:<uuid> (your team's audio), sys:<kind>/<slug> (the system library) or a {{…}} template that renders to one. A raw URL fails publish validation.
  • Missing audio falls back. If the referenced audio was deleted or disabled, a prompt is spoken from its transcript and music falls back to the org's default hold music, then the system default.

See also