What is Voice on Notifique?
It’s the channel to originate and control phone calls using numbers contracted in the workspace. Great for order confirmation, simple IVR (press 1, 2…), dialers, and inbound handling with events on your URL. You can:- Originate outbound calls with TTS, audio, or DTMF collection
- Control the active session in real time (
speak,gather,transfer,hangup, etc.) - Record call segments and download the file later
- Receive inbound calls with forwarding, TTS, or webhook control
- Track each step via API or webhooks
Unlike WhatsApp, voice does not use a channel instance. You need an ACTIVE workspace number, balance or credits (per-minute billing), and an API Key with the right scopes.
When to use it?
Works great for call confirmation, DTMF IVR menus, and call recording for audit. If you only need text on mobile, prefer SMS or WhatsApp. Without a contracted ACTIVE number, the channel cannot dial.How it works in practice
- Contract and activate a number, see Phone Numbers
- Originate with
from(your number),to(E.164 destination with+), and the initial prompt (speak,playAudioUrl,gather, etc.) - The platform dials, connects, and updates status; webhooks notify each step
- Control the active session with API actions, scope
voice:control - Inbound: configure
inboundVoiceActionon the number (FORWARD,TTS_HANGUP,WEBHOOK_CONTROL)
Each API Key belongs to one workspace. On v1 do not send
x-workspace-id. Use clientState to correlate with your CRM or queue.Call lifecycle
After originate, the call moves throughQUEUED, INITIATED, RINGING, ANSWERED, COMPLETED, or FAILED. Webhooks like voice.call.answered and voice.call.completed keep your backend in sync without polling.
What you can do
- Originate to 1 to 100 destinations per call (
toas array) - List and query history (
voice:read) - Run actions on active calls (
voice:control) - Download recordings when
voice.call.recording.readyarrives - Detect voicemail with
machineDetection - React to number lifecycle (
phone_number.activated,phone_number.suspended, etc.)
After your first call
- Track via webhooks (
voice.call.*andphone_number.*) - Build IVR with
gather+voice.call.dtmf/voice.call.gather.ended - Test inbound with
WEBHOOK_CONTROLon the number
Next steps
- Quick Start: originate, query, and control
- API Key scopes: permissions
- Webhook events:
voice.call.*andphone_number.*payloads - Phone Numbers: contract and configure line

