Places an outbound phone call using Twilio. Supports three modes: speak a message, listen for a voice response, or run a questionnaire over the phone.
phone_callThe Phone Call node dials an outbound call through Twilio and drives the conversation according to one of three modes. Each mode is suited to a different interaction pattern:
| Field | Status | Description |
|---|---|---|
| Mode | Required |
speak โ deliver a TTS message, optionally collecting a DTMF keypress.listen โ speak a message then record and transcribe the recipient's response.questionnaire โ run a Flusso questionnaire flow over the call.
|
| To Number | Required | The E.164-formatted phone number to call, e.g. +12025551234. Supports {{ variable }} references. |
| Message | Required for speak / listen | The text to speak to the recipient when the call is answered. Supports {{ variable }} references. Not used in questionnaire mode. |
| Voice | Optional | The voice to use for text-to-speech. Select an ElevenLabs voice configured under Settings, or leave blank to use the default Twilio TTS voice. |
| DTMF Enabled | Optional | When enabled in speak mode, the call waits for the recipient to press digits on their dial pad after the message is delivered. Default: disabled. |
| DTMF Timeout | Optional | How long to wait for a keypress after the message ends, in seconds. If no key is pressed within this time, the call ends. Default: 5 seconds. |
| Max Digits | Optional | The maximum number of digits to collect in DTMF mode. Collection stops as soon as this many digits are received or the timeout is reached. Default: 1. |
| Record Max Length | Optional | Maximum recording length in seconds for listen mode. The recording stops automatically when the recipient stops speaking or this limit is reached. Default: 30 seconds. |
| Transcribe | Optional | When enabled in listen mode, the recorded audio is automatically transcribed to text and returned in output.transcript. Default: enabled. |
| Questionnaire ID | Required for questionnaire mode | The ID of the Flusso questionnaire to run over the phone call. The questionnaire must be published and configured for phone delivery. |
Output fields depend on the selected mode and the outcome of the call.
| Field | Type | Description |
|---|---|---|
status | string | Final call status. One of: completed, no_answer, busy, refused, failed, timeout. |
duration | number | Call duration in seconds from answer to hangup. 0 if the call was not answered. |
transcript | string | Text transcription of the recipient's voice response. Present in listen mode when Transcribe is enabled. |
recording_url | string | URL of the recorded audio file. Present in listen mode. |
ended_by | string | Who ended the call: caller (Flusso), recipient, or timeout. |
dtmf | string | The digit(s) pressed by the recipient. Present in speak mode when DTMF is enabled. |
response_text | string | Alias for transcript in listen mode. Provided for convenience in template expressions. |
questionnaire_answers | object | Key-value map of question IDs to the recipient's answers. Present in questionnaire mode. |
call_outcome | string | A structured outcome label set by the questionnaire flow or by a downstream Logic Gate, e.g. confirmed, declined. |
speak mode calls the patient. The Message field reads: "Hi {{ appointment.output.patient_name }}, this is a reminder that your appointment is at {{ appointment.output.time }}. See you soon."call_step.output.status. If no_answer, a follow-up SMS is sent via an HTTP Request node.speak mode with DTMF Enabled delivers: "Press 1 to confirm your delivery, or press 2 to reschedule." Max Digits is set to 1.call_step.output.dtmf: value 1 โ confirm branch, value 2 โ reschedule branch.listen mode delivers: "Please leave a brief message describing your experience." Record Max Length is set to 60 seconds and Transcribe is enabled.{{ call_step.output.transcript }} and classifies the sentiment, writing the result to a Google Sheet.questionnaire mode is configured with the questionnaire ID and the customer's phone number.questionnaire_answers and call_outcome are passed to a Transform node to shape the data before writing it to a CRM via HTTP Request.+ followed by country code and number). Use a Transform node to normalise numbers that arrive in other formats.listen mode, transcription accuracy depends on call audio quality. Background noise or poor signal may reduce accuracy. Consider prompting the recipient to speak clearly in the message.1 for simple yes/no or menu prompts to avoid waiting for the timeout.call_outcome field is only populated when the questionnaire flow or a downstream step explicitly sets it. It is null for basic speak and listen calls.