Phone
Workspace-wide voice defaults — default phone number, audio recording, and voicemail detection on AI-initiated outbound calls.
Phone
Workspace-wide defaults for voice calls placed and received through Gravity Rail. Per-number configuration (work mode, brand, signup, anonymous calling) lives on each phone number itself — see Phone & Voice.
Go to Settings → Workspace → Phone.
Settings
| Setting | What It Does |
|---|---|
| Default Phone Number | The number used by default when an outbound call or SMS doesn't specify one (e.g., AI-initiated outreach with no per-workflow override). |
| Enable Audio Recording | When on, voice calls are recorded and stored securely in S3 for playback. Default off. |
| Enable Voicemail Detection | When on, AI-initiated outbound calls detect whether a human or voicemail answers. Default off. |
Enable Audio Recording
When enabled, every voice call on this workspace is recorded and the audio file is saved for later review. Recordings are encrypted at rest and accessed through the call detail view. For step-by-step playback, transcript sync, and compliance practices, see Call Recordings.
HIPAA note: Recordings can contain PHI. Treat them like any other patient data — limit access via roles, document the recording disclosure in your phone greeting, and follow your organisation's retention policy.
Enable Voicemail Detection
When enabled, AI-initiated outbound calls run Answering Machine Detection (AMD) at connect time. The result is exposed to your workflows so you can play a voicemail-drop, hang up, or proceed normally depending on what answered.
What it does
- The call connects and Twilio runs ~3–5 seconds of audio analysis.
- Twilio reports the result to Gravity Rail.
- The result is persisted on the
PhoneCallrecord asanswered_byand exposed to event rules and templates ascall.answered_by. - Your workflow can branch on the value.
Possible values for call.answered_by
| Value | Meaning |
|---|---|
human | A human answered. |
machine_start | Voicemail/answering machine detected, greeting is starting. |
machine_end_beep | Voicemail greeting finished with a beep — safe to start recording your message. |
machine_end_silence | Voicemail greeting finished with silence. |
machine_end_other | Voicemail greeting finished but the ending was ambiguous. |
fax | A fax machine answered. |
unknown | AMD couldn't classify the line in time. |
Branching on the result with an Event Rule
The most common pattern is to play a pre-recorded voicemail message and hang up when AMD reports a voicemail. Configure an event rule on the task:
- Object: any task on the workflow that initiates the call
- Event:
task:execute - Condition (CEL):
call.answered_by.startsWith("machine_end_") - Action:
audio:playwith parameters:clip_file_id: the file ID of the pre-recorded clipallow_interrupt:falsehang_up_on_audio_end:true
Humans (and ambiguous results) skip the rule and the regular AI conversation runs.
Latency cost
AMD adds ~3–5 seconds before the call is handed to the AI agent — even when a human answers. Combined with first-byte TTS latency (~1–2 s), human pickups feel ~4–7 s slower than calls placed without detection.
The setting is workspace-wide and off by default so only workspaces that need voicemail handling pay the cost. Toggle it on per workspace once you've configured the matching event rules.
Compliance
Twilio's AMD result is the only PHI-free data point we persist (it's an enum value, not audio). Audio is not stored as part of detection. If you also enable Audio Recording, the call audio is recorded as usual and inherits the same compliance treatment.
Tips
- Set the default phone number per workspace, not per workflow. Workflows can override it when needed, but a single workspace default keeps outbound caller ID consistent.
- Pair voicemail detection with a voicemail-drop clip. Without an
audio:playevent rule, voicemail-answered calls just fall through to the AI greeting, which talks to a voicemail box. - Test on a known voicemail before rolling out. Call a phone you can leave a voicemail on, confirm
call.answered_by == "machine_end_beep", and verify your event rule plays the clip end-to-end.
Related
- Phone & Voice — Per-number configuration: work modes, signup, anonymous callers, voicemail.
- Voice — Voice models, speech recognition, and pipeline tuning.
- Automation — Event rules and the
audio:playaction. - CEL Expressions — Conditions like
call.answered_by.startsWith(...).
Related Resources
General
Workspace name, slug, default language, timezone, signup code, and default assistant.
Business Hours
Define when your workspace is open. Drives escalation routing, phone work modes, and the is_business_hours variable.
Escalation
Pause behaviour, message templates, and notification rules used when AI hands a chat to a human.
All Guides
Browse all available guides