Places a navigation button in a chat's input bar. Pressing it opens a keypad menu in the keyboard area — the entry point to a guided in-chat flow, with no message from the user required.

💡 navigation_button is a plain menu_id string, not an object. The menu it points to must already be provisioned with setChatMenu.


Request

method is "setNavigationButton".

Field Type Required Description
navigation_button String Yes The menu_id of the menu to open when the button is pressed.
chat_id String Yes The target chat.
app_id String Yes The app the chat belongs to.
nav_type String Optional Where the button appears. Omit for the main chat screen; "reply_admin" for the reply screen; "admin" for the Admin Chat screen in Settings.
menu_open Integer Optional 1 opens the menu automatically on entering the chat. 0 or omitted leaves it closed.
to_user_id String Optional Show the button to one member only, inside a group or channel.
reference String Optional Your id for this request. Echoed back in the response.

Preconditions

Requirement Why
"Manage Chats" permission Needed to modify chats in the app.
Bot is admin or moderator in the chat Navigation buttons are an admin action.

Response

setNavigationButton_ack

Field Type Returned Description
method String Yes "setNavigationButton_ack"
chat Chat Yes The chat the button was applied to.
app_id String Yes Echoed from the request.
reference String Optional Echoed from the request.

SDKs

SDK Call Callback
Java api.send(navMsg); after navMsg.setNavigation_button(menuId) onRecieving(JSONObject obj)
JavaScript api.send(JSON.stringify(navMsg.toJsonObject())); onReceiveObj(obj)
Python napi.send(obj) after obj, _ = nav_msg.to_json_obj() on_receive_obj(self, obj)

Example

Request

{
  "method": "setNavigationButton",
  "chat_id": "90090684270838031",
  "navigation_button": "WPM1Z6584mRlA42",
  "app_id": "90090684293000559",
  "reference": "132456789"
}
SetNavigationButtonOutMessage navMsg = new SetNavigationButtonOutMessage();
navMsg.setChatId("90090684270838031");
navMsg.setNavigation_button("WPM1Z6584mRlA42");
navMsg.setApp_id("90090684293000559");
navMsg.setReference("132456789");
// optional: navMsg.setType("admin"); navMsg.setIsOpen(1);
api.send(navMsg);
let navMsg = new SetNavigationButtonOutMessage();
navMsg.chat_id = "90090684270838031";
navMsg.navigation_button = "WPM1Z6584mRlA42";
navMsg.appId = "90090684293000559";
navMsg.reference = "132456789";
// optional: navMsg.nav_type = "admin"; navMsg.menu_open = 1;
api.send(JSON.stringify(navMsg.toJsonObject()));
nav_msg = SetNavigationButtonOutMessage()
nav_msg.chat_id = "90090684270838031"
nav_msg.navigation_button = "WPM1Z6584mRlA42"
nav_msg.app_id = "90090684293000559"
nav_msg.reference = "132456789"
# optional: nav_msg.nav_type = "admin"; nav_msg.menu_open = 1

obj, _ = nav_msg.to_json_obj()
napi.send(obj)

Response