Skip to main content
A persistent menu is a short list of options that stays available in the conversation, so a contact can get to your booking flow or your price list without typing anything. You build it in Configurations → Bot Setup, and each item can open a link or start one of your flows.

It exists on three channels only

The persistent menu is a Facebook, Instagram and Telegram feature. It is not a WhatsApp feature and not a Live Chat one, and the section doesn’t appear when either is selected.
On the other channels, the nearest equivalents live elsewhere:
  • WhatsAppCommands (slash commands such as /menu) on Bot Setup → Conversational Components. See Bot setup and WhatsApp.
  • Live ChatQuick replies in the widget’s Behavior panel. See Live Chat widget.

Build the menu

1

Select the channel

Open Configurations → Bot Setup and pick the Facebook Page, Instagram account or Telegram bot in the channel selector at the top. The page always shows the selected channel’s settings.
2

Open the menu section

Select Persistent menu, then turn on Show a persistent menu in the conversation.
3

Add your items

Select Add item, give it a Label — the words the contact taps — and choose what it does. You get three items per level; once you reach it, the page says Meta allows 3 items per level. and the add button goes away.
4

Save

Select Save changes. Saving is what pushes the menu out to Facebook, Instagram or Telegram — until you save, nothing has changed for your contacts.
Keep labels short and concrete — Book a visit, Prices, Talk to a human. Facebook and Instagram trim a menu label to 30 characters, and on Telegram the label also becomes the command name.

What an item can do

You can also select Convert to submenu on an existing item to nest options underneath it, up to three levels deep.
Postback is the one that surprises people. On Facebook and Instagram it has no reply of its own, so a tap does nothing unless an active automation picks it up — and the automation matches the item’s Label, not the PAYLOAD value you type. A keyword flow on BOOK fires only if the item’s label is BOOK; setting the payload to BOOK does nothing on its own. If you want a tap to reliably do something, use Start flow.

How a menu item starts a flow

Set the item’s type to Start flow and pick the flow from Choose a flow…. A tap then starts that flow for the contact directly — the flow’s own trigger doesn’t have to match, so you don’t need a keyword for it. The picker only lists flows that are built in the flow builder, active, and on the channel you have selected. That gives you the two things to check when a menu item does nothing:
  • A draft flow won’t be in the list. Publish it and set it active first. See Flow builder.
  • Pausing a flow later breaks its menu item silently. The item stays in the menu and stays tappable; the tap just starts nothing. The menu doesn’t update itself when a flow’s status changes.
Ice breakers work the same way and can point at the same flows — see Icebreakers.
If the bot is paused for a contact, a Start flow item won’t start the flow for them. Pause and resume the bot per contact from the Inbox.

What Telegram does differently

Telegram has no persistent menu of its own, so DMLY builds the closest thing: each item becomes a /command in the bot’s command list, reachable from the ☰ button next to the message box. That means a few differences worth knowing before you design the menu:
  • Your labels become commands. Book a visit is registered as /book_a_visit, with the label as its description. Two items whose labels reduce to the same command name — the second one is dropped.
  • Submenus are flattened. Telegram’s command list has no nesting, so the items inside a submenu are listed alongside the top-level ones rather than under them.
  • /start is always offered first, described as Start / main menu. It opens your welcome message. You don’t add it, and you can’t remove it.
  • Open URL doesn’t open anything. Telegram sends the label and the link back as an ordinary message for the contact to tap.
  • Postback never reaches your automations. DMLY replies to the contact with the PAYLOAD text you typed — or the label, if you left the payload empty — and stops there. No automation runs, so the Facebook and Instagram advice above doesn’t apply.
Start flow works the same on Telegram as it does on Facebook and Instagram.

Turning the menu off

Turn off Show a persistent menu in the conversation and select Save changes. That removes the menu from Messenger or Instagram, and on Telegram it clears the bot’s command list and the ☰ button. Leaving the toggle on but deleting every item does the same thing.
Check the save message first — if the push to Facebook, Instagram or Telegram failed, the page tells you at the moment you save and points you at the logs. Open Logs and look for the sync entry.If the save succeeded, look at your items. An item with an empty Label is skipped, and an Open URL item with no address is dropped, so a menu of half-finished items can sync as an empty menu — which removes it.
Almost always a Start flow item whose flow is no longer active or published, or a Facebook or Instagram Postback item with no automation answering it — check that the automation’s keyword matches the item’s Label, not its payload. Check the flow’s status in Automation, and see Automation not triggering.
Facebook and Instagram keep the menu on the Page or account itself, not in DMLY. Turning the toggle off and saving is what removes it — disconnecting the channel doesn’t, so remove the menu before you disconnect a Page or account you’re finished with.