--- title: "getPersistentMenu" slug: "ai-application-service-chatbot-getpersistentmenu" updated: 2026-09-17T09:57:17Z published: 2026-09-17T09:57:17Z canonical: "api.ncloud-docs.com/ai-application-service-chatbot-getpersistentmenu" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # getPersistentMenu Classic/VPC環境で利用できます。 チャットボットの固定メニュー(Persistent Menu)リストを照会します。 参考 チャットボット返答のレスポンスコンポーネントは次の3つの種類のコンポーネントを提供します。 - Basic Component - Composite Component - Flex Component - コンポーネントの詳細は、[Basicコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-basic)、[Compositeコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-composite)、[Flexコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-flex)をご参照ください。 ## リクエスト リクエスト形式を説明します。リクエスト形式は次の通りです。 | メソッド | URI | | --- | --- | | POST | CLOVA Chatbotビルダで作成された API Gatewayの固有の InvokeURL | ### リクエストヘッダ CLOVA Chatbot APIで共通して使用されるヘッダの詳細は、[CLOVA Chatbotのリクエストヘッダ](/docs/ja/ai-application-service-chatbot#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)をご参照ください。 ### リクエストボディ リクエストボディの説明は次の通りです。 - コンソールで固定メニュー(Persistent Menu)が設定されている場合、ローカルキャッシュが存在しなくても、必要なときに[PersistentMenuコンポーネント](/docs/ja/ai-application-service-chatbot-component-composite#PersistentMenu%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)をリクエストすれば`persistMenu`フィールドにレスポンスします。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `version` | String | Optional | チャットボットのバージョン - `v1` \| `v2`(デフォルト) - 入力しない場合は`v1`に設定 | | `userId` | String | Required | チャットボットユーザーの固有の ID - 256文字以内で任意に入力 | | `userIp` | String | Optional | ユーザー IPアドレス | | `timestamp` | Long | Required | 任意のタイムスタンプ(Timestamp) | | `bubbles` | Array | Required | 空の配列(Array)に設定 - <例> `[]` | | `event` | String | Required | イベントの値 - `getPersistentMenu`に設定 | ### リクエスト例 リクエストのサンプルコードは次の通りです。 ``` { "version": "v2", "userId": "{userId}", "userIp": "{userIp}", "timestamp": 12345678, "bubbles": [], "event": "getPersistentMenu" } ``` ## レスポンス レスポンス形式を説明します。 ### レスポンスボディ レスポンスボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `version` | String | - | チャットボットのバージョン | | `userId` | String | - | チャットボットユーザーの固有の ID - リクエスト時に設定した値と同じ | | `timestamp` | Long | - | タイムスタンプ(Timestamp) | | `bubbles` | Array | - | 空の配列(Array) - <例> `[]` | | `entities` | Array | - | ユーザーの質問と一致するチャットボットエンティティ(Entity)の分析結果 | | `persistentMenu` | Object | - | 固定メニュー(Persistent Menu)の構成情報 - 詳細は[PersistentMenuコンポーネント](/docs/ja/ai-application-service-chatbot-component-composite#PersistentMenu%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)を参照 | | `persistentMenu.type` | String | - | 固定メニューのタイプ | | `persistentMenu.title` | String | - | 固定メニュー名 | | `persistentMenu.data` | Object | - | 固定メニューの構成情報 | | `persistentMenu.data.contentTable` | Array | - | contentTableの詳細情報: [contentTable](/docs/ja/ai-application-service-chatbot-getpersistentmenu#contentTable) | | `keywords` | Array | - | keywordsの詳細情報: [keywords](/docs/ja/ai-application-service-chatbot-getpersistentmenu#keywords) - `exactMatch` \| `contain` - `exactMatch`: ユーザーの入力値とキーワードが完全に一致 - `contain`: ユーザーの入力値にキーワードが含まれる | | `conversation` | Object | - | 会話情報 | | `conversation.scenarioName` | String | - | シナリオ名 | | `conversation.chatUtteranceSetId` | String | - | 会話発話 ID | | `conversation.types` | Array | - | 会話タイプ | | `slotNormalizer` | Array | - | ユーザーの質問と一致するシステムエンティティ(Entity) - `Date`、`Time`、`People`、`Name` | | `normalizer` | String | - | ユーザーの質問と一致するシステムエンティティ(Entity) | | `event` | String | - | イベントの値 | #### `contentTable` `contentTable`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `rowSpan` | Integer | - | 表のセルが占める(Span)行の数 | | `colSpan` | Integer | - | 表のセルが占める(Span)列の数 | | `data` | Object | - | コンポーネントの構成情報 - 詳細は[Basicコンポーネント](/docs/ja/ai-application-service-chatbot-component-basic)を参照 - `text`、`image`、`button` | | `data.type` | String | - | コンポーネントのタイプ - `text` \| `image` \| `button` \| `template` \| `carousel` \| `flex` \| `line_sticker` \| `lineworks_sticker` \| - 各コンポーネントの詳細は[Basicコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-basic)、[Compositeコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-composite)、[Flexコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-flex)を参照 | | `data.title` | String | - | コンポーネントの名前 | | `data.subTitle` | String | - | 下位コンポーネントの名前 | | `data.data` | Object | - | 下位コンポーネントの構成情報 | | `data.data.type` | String | - | 下位コンポーネントのタイプ - `text` \| `image` \| `button` \| `template` \| `carousel` \| `flex` \| `line_sticker` \| `lineworks_sticker` \| - 各コンポーネントの詳細は[Basicコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-basic)、[Compositeコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-composite)、[Flexコンポーネントの詳細情報](/docs/ja/ai-application-service-chatbot-component-flex)を参照 | | `data.data.iconUrl` | String | - | アイコン URLアドレス | | `data.data.action` | Object | - | コンポーネントのアクション(Action)情報 | | `data.data.action.type` | String | - | コンポーネントアクション(Action)のタイプ - `postback` \| `utterance` \| `link` \| `phone` \| `welcome` - `postback`: [Postbackコンポーネント](/docs/ja/ai-application-service-chatbot-component-commonaction#Postback%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)を参照 - `utterance`: [Utteranceコンポーネント](/docs/ja/ai-application-service-chatbot-component-commonaction#Utterance%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)を参照 - `link`: [Linkコンポーネント](/docs/ja/ai-application-service-chatbot-component-commonaction#Link%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)を参照 - `phone`: [Phoneコンポーネント](/docs/ja/ai-application-service-chatbot-component-commonaction#Phone%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)を参照 - `welcome`: [Welcomeコンポーネント](/docs/ja/ai-application-service-chatbot-component-commonaction#Welcome%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8)を参照 | | `data.data.action.data` | Object | - | コンポーネントアクション(Action)の詳細情報 - 各アクションのタイプによって詳細内容が異なるので、詳細は[Actionコンポーネント](/docs/ja/ai-application-service-chatbot-component-commonaction)を参照 | | `data.data.action.data.utteranceId` | Long | - | 発話 ID | | `data.data.action.data.text` | String | - | ユーザーの入力によりチャット画面に表示されるテキスト | | `data.data.action.data.postback` | String | - | チャットボットに送るポストバックテキスト | #### `keywords` `keywords`の説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `keyword` | String | - | キーワード | | `group` | String | - | キーワードグループ | | `type` | String | - | キーワードの種類 | ### レスポンスステータスコード CLOVA Chatbot APIで共通して使用されるレスポンスステータスコードの詳細は、[CLOVA Chatbotのレスポンスステータスコード](/docs/ja/ai-application-service-chatbot#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)をご参照ください。 ### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "version": "v2", "userId": "{userId}", "timestamp": 1665041597003, "bubbles": [], "persistentMenu": { "type": "template", "title": "3by2", "data": { "contentTable": [ [ { "rowSpan": 1, "colSpan": 1, "data": { "type": "button", "title": "", "subTitle": "", "data": { "type": "imageButton", "iconUrl": "https://clovachatbot.ncloud.com/i48103278ci6f6-9f51-4d08-a947-1c8acc992629", "action": { "type": "link", "data": { "url": "https://ncloud.com", "mobileUrl": "https://ncloud.com" } } } } } ] ] } }, "keywords": [], "conversation": { "scenarioName": null, "chatUtteranceSetId": null, "types": [] }, "slotNormalizer": {}, "normalizer": "", "event": "send" } ```