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.

Node What it does
Speech Text-to-speech on a Speaker, with optional voice override.
Node What it does
Routine Trigger Trigger a Voice Monkey Routine Trigger device (and the Alexa Routine wired to it).
Set Variable Create or update a variable.
Flow Trigger (premium) Call another Flow from this one. Up to 5 levels deep.
Node What it does
Wait Pause the Flow for a duration (seconds, minutes, hours).
Question Ask 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.
Node What it does
Audio Play a media-library file, soundscape or external URL — optionally with a chime, background ambient layer, and multiple sequenced tracks.
Image Show an image on an Echo Show, with full APL controls (scale, alignment, border radius, width, height).
Video Play a video on an Echo Show. Optionally loop.
Website Open a website in the on-device browser on an Echo Show.
Stop Media Stop any audio/video currently playing on a device.
Node What it does
Character Display Show short text on the segmented display of an Echo Dot with Clock.
Text Display Show 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 language Custom command
English ask voice monkey to start flow <REF>
French ouvre voice monkey et lancer flow <REF>
German starte voice monkey und öffne flow <REF>
Italian apri voice monkey e iniziare flow <REF>
Portuguese abrir voice monkey e iniciar flow <REF>
Spanish abre 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.

Resource Free Hobby Ultimate
Flows 3 25 Unlimited
Schedules yes yes
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.