Dynamic keyboard
FreeBuild inline buttons from a list — one button per item.
Sends a message whose inline buttons are generated from a list — one button per item. Perfect for catalogs, menus and pickers that change at runtime.
Fields
| Field | Type | Required | Templatable | Notes |
|---|---|---|---|---|
| Text | text | yes | yes | Message above the buttons |
| Formatting | select | — | — | None, HTML, Markdown |
| List variable | text | yes | — | The list to build buttons from |
| Button text | text | yes | yes | Use {{var._item}} |
| Button callback | text | — | yes | 64-byte limit — for long values use {{var._index}}, e.g. pick:{{var._index}} |
| Buttons per row | number | — | — | Default 1 |
Outcomes
default— continue the flow.
How it works
Inside the button templates, {{var._item}} is the current item and {{var._index}} its
position. Catch presses with a Button pressed trigger in
prefix mode.
Dynamic keyboard list: products button_text: "{{var._item}}" callback: "item:{{var._index}}"
Button pressed mode: prefix data: "item:" → save_var: idx