voice_agent_groups

Upload Pre Pickup Audio

Store an audio file for a group's pre-pickup message.

Uploads the file to S3 and records its object key + original filename on the group. Mode/enabled stay operator-driven via the group PUT, so this endpoint only manages the file. The file is stored raw (no Document row, no channel-splitting) — the worker just needs the bytes.

post/api/v1/voice-ai/voice-agent-groups/{group_id}/pre-pickup-audio

Path parameters

group_idstring uuid required

Response

Successful Response

idstring uuid required
pre_pickup_enabledboolean
pre_pickup_mode'audio' | 'text' | 'synthesized'

How a group's pre-pickup message is sourced before the AI picks up.

  • AUDIO: play the operator-uploaded file at pre_pickup_audio_object_key.
  • TEXT: synthesize pre_pickup_text live with the group's TTS voice at call time.
  • SYNTHESIZED: a message pre-rendered from pre_pickup_text with an operator-chosen provider/voice/language (the "recipe" columns), stored to the same audio slot as AUDIO and played identically by the worker.

Enum grows, never renames.

pre_pickup_textstring nullable
pre_pickup_voice_provider'elevenlabs' | 'cartesia' | 'google'

TTS provider used to synthesize a SYNTHESIZED pre-pickup message.

Stored on VoiceAgentGroup.pre_pickup_voice_provider (as a plain string column) and used to dispatch synthesis to the matching TTS client.

pre_pickup_voice_idstring nullable
pre_pickup_languagestring nullable
pre_pickup_menu_grace_secondsnumber nullable
namestring required
enabledboolean
direction'inbound' | 'outbound'

Whether the group handles inbound calls or outbound calls.

tenant_idstring uuid required
created_atstring date-time required
updated_atstring date-time required
pre_pickup_audio_filenamestring nullable

Changes