VoicevoicemailAccessbeta

Voicemail access

Let a caller check their own voicemail: from their own extension they go straight in (or are asked their PIN if the org requires it); from anywhere else t…

What it does

Lets a caller check their own voicemail by phone. The whole menu runs inside this one node:

  1. Sign-in. A call from one of the org's own desk phones or softphones opens that extension's mailbox right away (or asks for the PIN, if Settings › Voicemail › Dial-in says a PIN is needed even from your own phone). Anyone else is asked for the mailbox number (the extension number) and the PIN.
  2. Summary. "You have 2 new messages and 1 saved message."
  3. Main menu. 1 listen, 8 change your PIN, * hang up.
  4. Messages. New messages first (oldest first), then saved ones (newest first). Each one starts with when it came in and who it is from. While it plays, or after: 5 replay, 7 delete, 9 save, 6 next, 4 previous, * main menu.

A new message counts as heard once the caller moves past it, so the app, the Inbox and the desk-phone message light all update. A delete is the same audited delete as in the app.

The mailbox is the extension's personal box. Shared and General boxes are checked in the app.

By default the node is terminal: when the caller presses * at the main menu it says goodbye and hangs up. Wire Then to continue the flow instead. The error handle fires when voicemail cannot be reached at all.

When to use it

  • An IVR option for staff calling in from outside: "Employees, press 9 to check your voicemail."
  • You do not need it for the dial-in code: dialing *97 (or your org's code) from a desk phone or softphone already runs this node through the built-in voicemail dial-in flow.

Configuration

Let a caller check their own voicemail: from their own extension they go straight in (or are asked their PIN if the org requires it); from anywhere else they enter their mailbox number and PIN. Plays new then saved messages — 5 replay, 7 delete, 9 save, 6 next, 4 previous — and lets them change their PIN. Ends the call unless you wire "Then".

FieldLabelTypeRequiredDefaultNotes
allowOwnExtensionRecognize the caller's own extensionbooleanOptionalfalseA call from one of your desk phones or softphones opens that extension's mailbox without asking for the mailbox number. Turn off to always ask for the mailbox and PIN.

Outgoing events: next, error

Examples

"Press 9 to check your voicemail"

[
  { "id": "menu", "type": "gatherDigits", "config": { "prompt": { "kind": "text", "text": "For sales press 1. Employees, press 9 for voicemail." }, "maximumDigits": 1 }, "on": { "digit:1": "sales", "digit:9": "vm" } },
  { "id": "vm", "type": "voicemailAccess", "config": {} }
]

Always ask for the mailbox and PIN

{ "id": "vm", "type": "voicemailAccess", "config": { "allowOwnExtension": false } }

Gotchas

  • From outside, a PIN is always required. A person sets it in Settings › Voicemail, or by phone with 8 at the main menu. Someone with no PIN can only check voicemail from their own phone.
  • Wrong PINs. Three wrong tries end the call. Five wrong PINs in a row (across calls) lock the PIN for 30 minutes; an admin can reset it.
  • No hints. A mailbox that does not exist answers exactly like a wrong PIN, so the phone line cannot be used to find out which extensions exist.
  • Nothing typed is stored. The digits the caller types are kept in memory only, never in flow variables or call traces. If the call moves to another walker mid-menu, the menu starts over.
  • Handled by rust/crates/heyquad-walker-core/src/vm_access.rs; every step calls POST /walker-data/v1/voicemail/access (rust/crates/hq-walker-data/src/voicemail_access.rs → hq_voicemail::dial_in).

See also