Call Connect
Identifier and availability
- Type:
action - Stable identifier:
call_connect - Status: Selectable — available in the new-node selector and importable.
Purpose
Calls a selected User from a selected Phone Number, then connects the Contact after confirmation.
Prerequisites and context
Required configuration: user, phone_endpoint, settings. Runtime requires a Contact, a selected active User with a valid E.164 phone, and a selected active tenant Twilio endpoint with a valid caller-ID number.
Parameters
| JSON path | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
user |
user_reference | Yes | — | — | Tenant user email and optional display name. |
phone_endpoint |
sms_channel_reference | Yes | — | — | Active tenant Twilio phone-number endpoint used as caller ID for both call legs. |
settings |
object | Yes | — | — | Node-specific settings. Unknown keys are rejected. |
settings.whisper_message |
string | No | — | — | Optional text spoken privately to the internal recipient before the Contact is dialed. Automation variables are supported. |
settings.timeout_seconds |
integer | Yes | 30 | 5 to 600 | Maximum time, in seconds, to ring each call leg. |
settings.disable_voicemail_detect |
boolean | No | false | — | When true, do not use answering-machine detection on the Contact call leg. |
settings.connect_after_keypress |
boolean | No | true | — | When true, require the selected User to press 1 before dialing the Contact. |
Unknown parameter and settings keys are rejected. Resource references use names, emails, document keys, or endpoints rather than database IDs.
Inputs and available variables
This node declares no additional variable groups. The always-available date group and context inherited from its path still apply.
Templated strings use double braces, for example {{contact.first_name}}. Availability in the editor does not create runtime context; the trigger and preceding branch still need to provide it.
Connections and branches
Connect this action into a root path with branch actions or into an existing branch using that parent’s token. It then terminates its current sequential path and exposes these exact, case-sensitive branch ports: connected, not_connected. Put following work inside those branches; do not place a sibling after this action.
Connection fragment:
{
"from": "action_call_connect",
"to": "next_action",
"branch": "connected",
"order": 1
}
Valid JSON node example
{
"key": "action_call_connect",
"type": "action",
"name": "call_connect",
"display_name": null,
"parameters": {
"user": {
"email": "alex@example.com",
"name": "Alex Johnson"
},
"phone_endpoint": {
"endpoint": "+18015550199",
"label": "Main Line"
},
"settings": {
"whisper_message": "You have a call with {{contact.full_name}}.",
"timeout_seconds": 30,
"disable_voicemail_detect": false,
"connect_after_keypress": true
}
}
}
Validation and runtime caveats
The call starts asynchronously. The selected User is called first; an internal answer is not a successful Contact outcome. With keypress confirmation enabled, only 1 confirms and three unanswered prompts end the call. Contact assignment does not affect routing. Voicemail detection applies to the Contact leg unless disabled.
See the Automation JSON import format for the envelope, dependency resolution, graph rules, complete examples, and AI author checklist.