Skip to content
VoiceconfirmVoicemail

Confirm voicemail

Marks the most recent recording to be KEPT as a voicemail when the call ends — it's saved and the owner is emailed on hangup. Use after a 'review your mes…


type: confirmVoicemail status: stable sinceVersion: 0.1.0 seeAlso: [discardVoicemail, record, say, gatherDigits] keywords: ["confirmVoicemail", "confirm", "voicemail", "recording", "voice"]

What it does

Marks the most recent recording to be KEPT as a voicemail. It sets the _commitVoicemailOnHangup flag on the run, then auto-advances via node.on['__next'] to the next step. When the call ends, the call:status hangup handler promotes that recording to a voicemail — saving it and emailing the box owner.

This is the "send my message" path of a voicemail-review flow. It pairs with the Discard recording node, which is the "cancel / re-record" path. The node itself is a pure state marker — the actual save + email happen on hangup, so the caller hears whatever your downstream nodes say next (typically a short "your message has been sent, goodbye" then a hangup).

When to use it

  • "Press 1 to send your message" branch of a review menu
  • Immediately after a record step when you want the recording kept as a voicemail with no review menu (record → confirm → goodbye → hangup)
  • After an upstream customScript validated the recording and decided to keep it

Configuration

The node has no configuration fields — it just marks the recording to keep.

Marks the most recent recording to be KEPT as a voicemail when the call ends — it's saved and the owner is emailed on hangup. Use after a 'review your message' menu when the caller chooses to send. Pairs with the Discard recording node for the cancel path. The flow continues immediately (typically to a goodbye prompt + hangup).

This node has no configurable fields.

Outgoing events: __next

Examples

Review menu — send branch

After a "press 1 to send, 2 to re-record" gather, "press 1" lands here, which flags the voicemail to commit on hangup, then plays a goodbye.

{
  "id": "confirm-and-send",
  "type": "confirmVoicemail",
  "config": {},
  "on": { "__next": "goodbye", "call.hangup": "end" }
}

The node advances synchronously after setting the flag — no webhook is involved; the save + email run when the call hangs up.

Gotchas

  • The save happens on HANGUP, not here. This node only sets a flag. If the call never reaches a hangup (e.g. it gets transferred away into another flow that clears the flag), the voicemail may not commit. For a plain leave-a-message flow, follow this node with a goodbye say + hangup so the commit fires promptly.
  • No webhook event. Like discardVoicemail, this node advances synchronously. Wire __next as the outgoing edge — that's the only event the node looks up.
  • Hangup-fallback commits even without this node. The worker's hangup handler will commit the most recent recording as voicemail by default after a record step. confirmVoicemail makes that intent explicit (and survives a discardVoicemail earlier in the flow by re-setting the keep flag).