Skip to content

Product · Call menus

Your phone menu, drawn by you, changed by you.

Are you open? Press 1 for sales, 2 for service. Leave a message. Every business has a menu like that, and most owners cannot change theirs without calling somebody. Here you draw it, press publish, and it is live. Anyone already on the line finishes on the menu they started with.

Draw it yourself, no technicianPublish freezes what callers hear6 ready-made menus to start from

Publishing

Nothing you type reaches a caller until you press publish.

Editing the menu that is already answering your phone does not change what callers hear. It opens a draft, and your number goes on answering with what you published until you press publish again. So the editor is somewhere you can think out loud on a Tuesday morning without that being a live change to your phone system.

Publish a change while somebody is halfway through your menu and they finish on the menu they started with; the next caller gets the new one. That holds even inside a piece of menu you share between several of yours. Why it has to work that way is underneath.

Every version is kept, with who published it and when. Going back to an older one copies it forward into a new draft rather than rewinding, so the history stays a record of what callers actually heard. That is the shape the question takes when something has gone wrong: what did people hear on Tuesday afternoon?

Follow a call from the first ring
Main linePublished · v7
Business hoursAmerica/Toronto
Collect digits / MenuPress 1, 2 or 0
Transfer to queueSales · priority 40
Voicemail

The steps you can put in a menu.

They are sorted the way you go looking for them: flow control, communicating, collecting input, routing, logic, and the ones that reach outside. Most working menus use six or seven. Eight of them, and what each one decides, are below.

Eight of the 28

Business hours

Open, holiday, emergency or closed, from one saved schedule, decided before anybody is asked to answer.

Collect digits / Menu

As many keys as your menu needs, plus two exits you did not have to think of: the caller who pressed nothing, and the one who pressed the wrong key. Both go somewhere you choose.

Transfer to queue

Names the team and how far up the line the call goes. Two exits: somebody picked up, or nobody did in time.

Voicemail

Records up to the length you set and turns the message into text unless you turn that off. A box with no greeting still takes the message.

Play message

Text read aloud in a voice you pick, or a recording you uploaded. The same choice is on every step that says anything.

Hold music

Your audio or the standard track. Only in the menu callers hear while they wait, and it starts over for as long as somebody is waiting.

Announce wait time

Says roughly how long, from the wait being measured right now. When there is no usable figure yet it says nothing rather than guessing: people time their patience by that number.

Offer a callback

A key to press to hang up and be called back. The second exit is the caller who would rather keep waiting.

What callers hear while they wait is its own menu.

The menu that answers your number and the one that plays while somebody waits are two different things, and we keep them as two. The waiting one starts over from the top for as long as the caller is on the line, and the only thing it knows from one pass to the next is how long they have been there. So it is drawn separately, from a shorter list of steps, and publish refuses a step that cannot run there rather than letting a caller find out as silence.

Where the team takes over

Your hours decide first.

A business-hours step reads one of your saved schedules, in that schedule’s own timezone, and sends the call one of four ways: open, holiday, emergency, closed. It runs before anybody is asked to answer, which is the whole point of the order. Somebody dialling at nine in the evening hears your closed greeting straight away, not hold music for a team that has gone home. That greeting is text read aloud or a recording you upload, and the free audio converter puts a recording in the shape the line carries.

Schedules are shared, so a holiday added once applies in every menu that uses it, and so does flipping the “we are closed right now” switch. That switch does not wait for a publish, because the afternoon you need it is the afternoon you cannot afford to be editing a phone menu.

And the honest half of that: hours live on a schedule and nowhere else. There is no separate company-wide switch, so a number that is not bound to a menu rings around the clock, by design. The hours check also treats anything left blank as open. Closing a phone line is something you have to ask for, not something we do to you because a field was empty.

It can look the caller up in your own system.

A step in the menu can ask a system of yours a question while the caller is still on the line, and use the answer in the rest of the menu: greet a regular by name, send an account with an open invoice straight to Billing. Another step looks things up inside Ringfully instead (a contact, a colleague, a past call) with nothing to set up. Only addresses you approved can be asked, and only over a secure connection; how that fence works is underneath.

How the rest of it is separated

What publish will stop you doing.

Refused outright: a menu with no start, or with two. A required setting left empty, or a choice that is no longer one of the options, like the team somebody deleted last month. A step this kind of menu cannot run. A repeat with no limit. An address that is not secure. Each one names the step in the editor, so the message is somewhere you can act on rather than a list of complaints.

One refusal is not negotiable in either direction: a menu may never be set to dial an emergency number, and not the near-misses either: 1911 and 9911 are somebody reaching for the same three digits. A caller who got there through an automated menu would give a dispatcher no location and nobody to talk to.

Mentioned but not blocked: an exit with nothing connected to it. That usually means “and then hang up”, and treating it as an error would make ordinary menus unpublishable. So the warning says which of the two it is (the call ends there, or it follows the fallback exit instead) and lets you decide.

A menu that still answers a number cannot be deleted. It tells you which numbers and asks you to point them somewhere else first, because quietly turning those lines back into something else would change where your calls go without anybody seeing it happen.

6 ways to start

Greeting, then your team

A short greeting, then every caller to a queue. The simplest flow that works.

Open and closed hours

Your team during business hours, voicemail outside them.

Main menu

Press 1 for one team, 2 for another, and something sensible for the caller who presses nothing.

English and French

The caller chooses, then hours are checked and the call is routed. Everything after the choice is spoken in the language they picked.

Look the caller up first

Check the number against your contacts, greet regulars by name, send priority customers to a queue of their own.

While the caller waits

Hold music, a wait estimate, and the option to hang up and be called back. Assigned to a queue rather than to a number.

A template is copied into your flow, not linked to ours. Yours is yours from the moment it exists, and a later change on our side must never rewrite a phone tree that is answering calls.

How it works underneath

28 block types, 3 kinds of flow. A phone call arrives as a series of separate requests rather than as one long-running program, so a flow is walked rather than executed: the interpreter we wrote moves through blocks until it reaches one that needs something from the caller, writes down where it stopped, and picks up from there when the caller answers. Blocks that need nothing (a condition, a lookup, the hours check) happen inline in the same breath.

Three ceilings sit on that walk, each there because the alternative is somebody’s phone bill: a long stretch of work is split into a second request rather than risked against the network’s timeout, one request may run only so many blocks, and a Loop block cannot be published without a repeat limit. In the editor, blocks go onto the canvas by clicking as well as by dragging, because drag and drop cannot be reached from a keyboard.

The version pin is not tidiness. A call waiting at a menu holds the identifier of the block it stopped at, and rewriting the graph underneath it would resume that person at a block which no longer exists: silence, or a hang-up, on a call that was going fine. The in-queue flow runs on a second executor: it is served as the wait document of the queue and requested again from the top on every loop, with no session and nothing carried across passes but the wait so far. The network honours only Play, Say, Pause, Gather, Redirect, Leave and Hangup inside that document and silently drops anything else, so the palette changes with the flow kind and publishing refuses a block the kind cannot run, as an error rather than a warning.

The third flow kind answers no number: it is entered from another flow’s sub-flow block and returns to it, so a bilingual greeting is written once and used from many flows. Nesting stops at five deep, and that is not a setting: a flow that can enter itself is a loop with a per-minute bill attached. A block may only gain an exit behind a declared fallback, because published graphs are frozen: Holiday and Emergency were added to the business-hours block after flows were published against it, so both fall back to Closed, and Open declares no fallback on purpose.

An HTTP block is your configuration causing our servers to make a request, so it is fenced: https only, and the hostname has to be on your own organization’s allowlist, which starts empty, is edited by an administrator in settings rather than by whoever is editing a flow, and holds exact hostnames because a wildcard would reopen the hole. The check runs inside the name lookup rather than before it, so the address we approved is by construction the address we connect to; a redirect re-runs the whole check; and the request is bounded (five seconds, a quarter of a megabyte, three hops) because a person is holding a phone to their ear while it runs.

Questions people ask

Can I change my phone menu myself?

Yes. You draw the menu and press publish, with no technician and no ticket. Editing the menu that is already answering your number opens a draft rather than changing what callers hear, so the number goes on answering with the version you published until you press publish again. Anyone already on the line finishes on the menu they started with, and the next caller gets the new one.

Changing the menu yourself, step by step

What happens to calls after hours?

A business-hours step reads one of your saved schedules, in that schedule’ own timezone, and sends the call one of four ways: open, holiday, emergency or closed. It runs before anybody is asked to answer, so somebody dialling at nine in the evening hears your closed greeting straight away rather than hold music for a team that has gone home. The honest edge of it: hours live on a schedule that a menu consults, so a number bound to no menu rings around the clock, by design.

The three honest things to do after closing

How do I handle statutory holidays?

Holidays are dated entries on the schedule, and each one can name itself so a caller hears which holiday it is. Schedules are shared, so a holiday added once applies in every menu that uses that schedule. For the closure nobody could have put in a calendar there is a separate we-are-closed-right-now switch on the same schedule: it is read before the holidays and before the week’ hours, and it needs no publish.

The Quebec statutory holidays, set once

How many options can a phone menu have?

The menu step takes as many keys as your menu needs, and three is the number to write for: a caller holds about three options in mind, and past that they stop listening. Two more exits come with the step whether you thought of them or not, the caller who pressed nothing and the caller who pressed a key that is not on the menu, and both go somewhere you choose.

Writing a menu people get through

What do callers hear when nobody answers?

Whatever you drew on that exit. A call is offered to the team for thirty seconds, and when nobody takes it the caller comes back into your menu on its overflow exit: voicemail, another team, a message and a goodbye. A voicemail step records up to the length you set and turns the message into text unless you turn that off, and a box with no greeting still takes the message.

Can the menu speak French first?

Yes. Every step that says anything reads text you wrote, in a voice you pick, or plays a recording you uploaded, and the voices cover Canadian French. One of the ready-made menus is exactly this: the caller chooses a language, then your hours are checked and the call is routed, and everything after the choice is spoken in the language they picked. If you serve the public in Quebec the greeting is in French and the offer of service in another language stays brief.

What Law 96 asks of a phone system

What this does not do

There is no rehearsal. Nothing in the builder plays a flow back to you or walks a pretend caller through the canvas, so the way to hear what you drew is to publish it and dial the number. Publishing to a spare number first is what people do, and it works, but it is a habit rather than a feature.

Nothing keeps a trail of which exit each caller took. The interpreter knows where a call is while it is happening and the call record says what happened to it, but the two are not joined up into a report. So “how many people pressed 2 last month” is a question this product cannot answer today.

Publishing happens when you press publish. You cannot line a version up to go live at midnight: if a change should land outside your opening hours, somebody presses the button then. The exception is the emergency override, which is deliberately the thing that needs no publish at all.

One block depends on something an account may not have configured yet, and publishing warns rather than refusing: until it is set up, every caller down that branch goes straight to a person. That is the safe direction, and we would rather tell you what will happen than pretend the branch is broken.

If one of those is the thing that decides it for you, ask. We would rather tell you where the product really is than have you find out on your second call.