persistent_menu Referencepersistent_menu is a property of the Messenger Profile API. For information on retrieving, setting, updating, and deleting persistent_menu, see the Messenger Profile API Reference.
The persistent menu can be set for your bot to help people discover and more easily access your functionality throughout the conversation.

The Persistent Menu is always available to the user. This menu should contain top-level actions that users can enact at any point. Having a persistent menu easily communicates the basic capabilities of your bot for first-time and returning users. The menu will automatically appear in a thread if the person has been away for a certain period of time and returns.
To use the persistent menu, you must do the following:
persistent_menu Format{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": true,
"call_to_actions":[
{
"title":"My Account",
"type":"nested",
"call_to_actions":[
{
"title":"Pay Bill",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
},
{
"type":"web_url",
"title":"Latest News",
"url":"https://www.messenger.com/",
"webview_height_ratio":"full"
}
]
}
]
}
]
}{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": true,
"call_to_actions":[
{
"title":"My Account",
"type":"nested",
"call_to_actions":[
{
"title":"Pay Bill",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
},
{
"title":"History",
"type":"postback",
"payload":"HISTORY_PAYLOAD"
},
{
"title":"Contact Info",
"type":"postback",
"payload":"CONTACT_INFO_PAYLOAD"
}
]
},
{
"type":"web_url",
"title":"Latest News",
"url":"http://www.messenger.com/",
"webview_height_ratio":"full"
}
]
},
{
"locale":"zh_CN",
"composer_input_disabled":false,
"call_to_actions":[
{
"title":"Pay Bill",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}| Property | Type | Description |
|---|---|---|
| String | An array of objects that define the persistent menu for different locales. The menu with a At least one object in the See the list of supported locales. |
| Boolean | Disables the Messenger composer field if set to Defaults to |
| Array | Array of interface names to disable the persistent menu in. Currently only |
| Array< | An array of top-level menu items for the persistent menu. A maximum of 3 items is allowed. A maximum of two nested menus are supported. Required if |
menu_item object| Property | Type | Description |
|---|---|---|
| String | The type of menu item. Supported values are:
|
| String | Title to display on the menu item. 30 character limit. |
| String | URL to open when the button is tapped. Required if type is |
| String | Data that will be sent back to your webhook as a |
| Array< | Nested menu_item that will be expanded in next level. A maximum of 5 items is allowed. Required if type is |
| String | Optional. Height of the webview. Valid values include |
| Boolean | Optional. Must be |
| String | Optional. URL to open in the webview for clients that do not support the Messenger Extensions SDK. If this is not defined, the |
| String | Optional. Set to |
Calls to the Messenger Profile API are limited to 10 API calls per 10 minute interval. This rate limit is enforced per Page.