Skip to content
Heads up — these docs cover Voice Monkey API v3, the current version. If you signed up before the v3 launch, your account is still on API v2 for a limited transition period and the examples below will not work against your account.

Flows

A Flow is a sequence of nodes Voice Monkey runs in order. Drag nodes onto the canvas, connect them, configure each one in the side panel, save — and Alexa runs the whole sequence whenever the Flow is triggered.

Flows let you do things a single Alexa Routine can’t: branching on a variable’s value or a question’s answer, calling external HTTP services, chaining audio + speech + media on the same device, splitting a sequence across multiple Echos, and more.

  1. In the console, go to Flows (app.voicemonkey.io) and click Create Flow.
  2. Give it a name.
  3. Drag nodes from the left palette onto the canvas. Every Flow starts with a Start node — connect its output to whatever you want to run first.
  4. Connect node outputs to inputs by dragging between the small dots.
  5. Click any node to configure it in the side panel (which device, what text, etc.).
  6. Save. The Flow is assigned a request reference — a 4-digit code (e.g. 1234) that you’ll use to trigger it from outside the console.

Use the Trigger button on the Flows list to fire a Flow on demand for testing. The Enable / Disable toggle lets you keep a Flow but stop it firing temporarily — disabled Flows return FLOW_DISABLED from the API and are skipped by schedules and webhooks.

The editor groups nodes by purpose. Premium nodes are marked — they require the Ultimate plan.

NodeWhat it does
SpeechText-to-speech on a Speaker, with optional voice override.
NodeWhat it does
Routine TriggerTrigger a Voice Monkey Routine Trigger device (and the Alexa Routine wired to it).
Set VariableCreate or update a variable.
Flow Trigger (premium)Call another Flow from this one. Up to 5 levels deep.
NodeWhat it does
WaitPause the Flow for a duration (seconds, minutes, hours).
QuestionAsk the user a question on a Speaker and branch on the answer (Yes/No, named answers, numbers, phrases). See Question branches below.
Condition (premium)IF/ELSE on a variable’s value. Operators: equals, not_equals, contains, not_contains, greater_than, less_than.
NodeWhat it does
AudioPlay a media-library file, soundscape or external URL — optionally with a chime, background ambient layer, and multiple sequenced tracks.
ImageShow an image on an Echo Show, with full APL controls (scale, alignment, border radius, width, height).
VideoPlay a video on an Echo Show. Optionally loop.
WebsiteOpen a website in the on-device browser on an Echo Show.
Stop MediaStop any audio/video currently playing on a device.
NodeWhat it does
Character DisplayShow short text on the segmented display of an Echo Dot with Clock.
Text DisplayShow big centred text full-screen on screen-enabled devices, with custom colour, background and font size.
Web Request (premium)Make an HTTP GET / POST / PUT / DELETE to any URL. Optionally waitForResponse and capture the body for later nodes (max response size 64 KiB; configurable timeout up to 60 s).

Most text fields on a node accept {VARIABLE_NAME} placeholders that are resolved at run time. So a Speech node with the text:

Hello {FIRST_NAME}, the camera detected {STATUS}.

…will say “Hello Joe, the camera detected motion.” if those variables are currently set to those values.

Two more reference shapes work alongside the simple {NAME} form:

  • Webhook payload values{WEBHOOK.<slug>.<key>} resolves against the most recent payload received on that webhook. See Inbound Webhooks.
  • Dotted paths into structured variables — if a variable holds a JSON object (e.g. set via var-PAYLOAD={"temp":72}), reference fields with {PAYLOAD.temp}.

A Question node has one output per allowed answer plus a final No answer output. Each branch can hold its own chain of nodes — they don’t have to mirror each other.

Answer types:

  • Yes / No — the classic binary choice.
  • True / False — same shape as Yes / No, different wording.
  • On / Off — same shape again, for switch-style questions.
  • Numeric — any number the user says. The spoken number is captured for downstream nodes.
  • Color — one of a fixed list of common colour words (Red, Blue, Green, etc.). One output per colour.
  • First Name — the user replies with a first name (e.g. Jack, Alison). One output per name you list.
  • A, B or C Letters — single-letter answers, one output per letter.

If the user doesn’t reply within the prompt window, execution follows the No answer branch.

A saved Flow can be triggered from any of:

  • Manually, from the console — click Trigger on the Flows list.
  • On a schedule, regular or one-off (Hobby + Ultimate plans only).
  • From an Alexa Routine, by adding a Custom action with the phrase ask voice monkey to start flow <REQUEST_REF> (or your language’s equivalent — see below).
  • By voice, by saying the same phrase directly to any Echo.
  • From the Flows APIPOST https://api-v3.voicemonkey.io/flow with { "token": "…", "flow": "<REQUEST_REF>" }.
  • From an Inbound Webhook action.
  • From another Flow, via a Flow Trigger node.
Alexa Routine custom command per language

The phrase is language-specific. Replace <REF> with your Flow’s 4-digit request reference (visible on the Flow’s edit page and on the Flows list).

Alexa languageCustom command
Englishask voice monkey to start flow <REF>
Frenchouvre voice monkey et lancer flow <REF>
Germanstarte voice monkey und öffne flow <REF>
Italianapri voice monkey e iniziare flow <REF>
Portugueseabrir voice monkey e iniciar flow <REF>
Spanishabre mono de voz y inicia flow <REF>

In the Alexa app: Routines → + → set When this happens to whatever you want (a voice phrase, a sensor, a schedule, etc.) → Add action → Custom → type the command above → From → pick the physical Echo to launch from → Save.

ResourceFreeHobbyUltimate
Flows325Unlimited
Schedulesyesyes
Premium nodes (Web Request, Flow Trigger, Condition)yes

Premium nodes still appear in the palette on lower plans so you can preview them, but they show a lock badge and refuse to run.

  • Activity Log — every run is captured. If a Flow doesn’t behave as expected, check there first.
  • Walk limits — a single Flow run will visit at most 200 nodes.
  • Variables on the way in — every public trigger path (/flow, webhooks, Alexa Routine custom command) accepts var-<NAME>=value parameters that are upserted before the Flow walks its nodes. See Variables API.