LINEのButtons Templateは最大4アクション:Quick Reply・Carousel・Flex Messageの選び方
LINE Messaging APIのbuttons templateで、actions配列に設定できるのは最大4個のaction objectです。5個以上の選択肢を見せたい場合は、ラベルを無理にまとめるのではなく、即時選択ならquick reply、商品や店舗の一覧ならcarousel template、独自の情報設計ならFlex Message、分類できる選択肢なら2段階の会話を選びます。
要点
- LINE公式のMessaging API referenceでは、buttons templateの
actionsは最大4 objectです。 - 画像・タイトル・テキスト領域には別のactionを設定できますが、5個目の表示ボタンになるわけではありません。
- Quick replyは1メッセージに最大13個のボタンを設定でき、その場の選択に向いています。
- Carousel templateは、商品、店舗、予約枠などを項目ごとに比較する場合に適しています。
- Flex Messageはレイアウトの自由度が高い一方、設計と端末テストの負担も増えます。
LINE buttons templateの「4アクション制限」とは
LINEはtemplate messageを、リッチな操作を実現する定型レイアウトとして提供しています。Buttons templateには画像、タイトル、テキスト、操作ボタンを配置でき、必須のactions配列には最大4個のaction objectを指定できます。画像、タイトル、テキスト領域全体に、別の任意actionを付けることもできます。
この2つは役割が違います。カード全体のタップは「詳細を見る」には自然ですが、4個の表示ボタンを5個に増やす仕組みではありません。タップ先が予測できるデザインにし、4つのボタンにも区別しやすいラベルを付ける必要があります。
この記事が扱うのは Messaging APIのbuttons template です。LINE MINI Appのcustom action buttonとは別機能です。liff.shareTargetPicker()と規定の共有カードを実装する場合は、LINE MINI Appカスタムアクションボタンの実装ガイドを参照してください。
Buttons、quick reply、carousel、Flex Messageの比較
| 選択肢 | 向いている用途 | 主な制約 | 選ぶ基準 |
|---|---|---|---|
| Buttons template | 1枚のカードに1〜4個の主要操作 | actionsは最大4 object | すべての操作が重要で、同じ文脈に収まる |
| Quick reply | 一時的なメニューや次の質問 | 会話が進むと消える場合がある | 最大13項目から今すぐ選んでもらう |
| Carousel template | 商品、店舗、予約などの反復項目 | 一貫したcolumn構造が必要 | 各項目に個別の画像、説明、操作が必要 |
| Flex Message | ブランド表現や情報量の多い画面 | JSON、表示確認、端末テストが複雑 | 標準templateでは情報階層を表しにくい |
| 2段階の会話 | カテゴリ分けできる長い一覧 | ユーザー操作が1回増える | 大分類を選んだ後に関連項目だけを出す |
公式のmessage types概要では、buttons、confirm、carousel、image carousel、Flex Messageを別々のmessage typeとして説明しています。単に同じカードの大小ではなく、それぞれ異なる操作モデルです。
その場の回答にはquick reply
LINEでは、1メッセージに最大13個のquick reply buttonを設定できます。トーク画面の下部に表示され、言語、配送時間帯、問い合わせ種別、店舗エリアなど、現在の質問にすぐ答えてもらう用途に向いています。
ただし、quick replyを常設ナビゲーションには使わないでください。LINEの説明では、トークルームに新しいメッセージが送信されるなどの条件でボタンが消えます。後から戻る必要がある選択肢なら、持続するmessage layoutを使うか、適切な会話状態で再送します。
選択肢が「項目」ならcarousel
選択肢が商品、店舗、予約記録などの独立した項目なら、1枚のカードに操作を詰めるよりcarouselが自然です。たとえば各店舗に「地図」「営業時間」「問い合わせ」が必要なら、4店舗を4ボタンにするのではなく、各店舗を同じ構造のcolumnに分けます。
各columnは比較できる構造にします。商品カードの隣に無関係なサポートコマンドを置くと、読み取りにくく保守もしにくくなります。
課題が情報階層ならFlex Message
問題が選択肢の数ではなく、視覚的な情報階層にある場合はFlex Messageを検討します。LINEのFlex Message elementsには、actionを持つbutton componentと複数のstyleが記載されています。
Flexを使っても、すべての操作を1画面に置くべきではありません。スマートフォンでの可読性、ラベル、アクセシビリティ、端末ごとの表示差を確認し、Flex Message Simulatorとobject validationを使って公開前にテストします。
業務ロジックを反映するなら2段階にする
多くの場合、カードを大きくするより、先に上位カテゴリを尋ねる方が明確です。
- 「どのようなご用件ですか?」— 注文、返品、商品相談、アカウント。
- 選択されたカテゴリに関係する操作だけを表示する。
各判断が短くなり、バックエンドにも明確なrouting stateが残ります。LINEを主要窓口として使う日本のチームでは、問い合わせ種別や担当部署への振り分けにも使いやすい設計です。
公開前チェックリスト
- ユーザー意図で優先順位を付ける。 頻度と重要度が高い操作を表示します。
- ナビゲーションと回答を分ける。 常設リンクと現在の質問への回答を同じメニューに詰めません。
- 長い一覧を分類する。 自然なカテゴリがあるなら2段階にします。
- ラベルを明確にする。 「その他」「詳細」「もっと見る」が同居すると判断しにくくなります。
- すべてのactionをサーバー側の状態に接続する。 Postbackやmessage actionに有効な遷移を用意します。
- 実機で確認する。 文字切れ、画像のcrop、tap target、戻り方をテストします。
MINI Appのservice messageとMessaging APIのreply/push messageのどちらを使うか未決定なら、先にLINE Service MessageとMessaging APIの比較でtriggerと適用範囲を確認してください。レイアウトより先にmessage surfaceを決めます。
UnifyPortが適する範囲と適さない範囲
ここまでの選択肢は、LINE公式Messaging APIの表示機能です。UnifyPortはbuttons template、quick reply、carousel template、Flex Messageを再現しません。LINEネイティブのUI componentが必須なら、公式Messaging APIを使用してください。
UnifyPortが担当するのは別の処理です。非公式インターフェースでLINEの会話を受信し、標準化したinbound eventを既存バックエンドへ送ります。プロバイダー別メッセージ対応表では、LINEにmappingされる標準送信payload typeを確認できます。標準webhook eventドキュメントでは、対応プラットフォーム共通のmessage.received envelopeを定義しています。
判断基準は次のとおりです。
- LINE Official Accountで公式インタラクティブカードが必要:Messaging APIの適切なmessage typeを使う。
- 通常のLINEアカウント宛てメッセージを既存サポートqueueへ入れたい:UnifyPortのinbound pathを検討する。
- 両方必要:異なるidentityと責任範囲を持つ別surfaceとして設計する。
入站経路と制約の詳細は、Official Accountを登録せずにLINEメッセージを受信する方法も参照してください。
制約とトレードオフ
4アクションで足りるなら、標準buttons templateが最も簡単です。Quick replyは選択肢を増やせますが一時的です。Carouselは項目比較に向きますが、内容の一貫性が必要です。Flex Messageは表現力とテスト負担が増えます。2段階の会話は1タップ増える代わりに、判断を明確にできます。
公式clientの動作やobject validationは変更される可能性があります。正確な上限や表示に依存する実装は、公開前に最新のLINE公式資料を再確認してください。
よくある質問
LINE Messaging APIのbuttons templateは最大何アクションですか?
actions配列は最大4個のaction objectです。画像、タイトル、テキスト領域の任意actionは別のタップ領域であり、追加の表示ボタンではありません。
Quick replyなら4個を超えるLINEボタンを出せますか?
はい。LINEは1メッセージに最大13個のquick reply buttonを設定できます。ただし会話中に消えるため、常設ナビゲーションではなく即時回答に使います。
操作を増やすならcarouselとFlex Messageのどちらですか?
同じ構造の項目を繰り返すならcarousel、独自の視覚階層が必要ならFlex Messageです。カテゴリ分けできるなら2段階の会話も検討してください。
UnifyPortからLINE buttons templateを送れますか?
いいえ。現在文書化されているUnifyPortのLINE標準送信には、公式buttons template、carousel、quick reply、Flex Messageは含まれません。主な用途はLINEのinbound messageを標準webhookで受信・routingすることです。
次のステップ
まずUnifyPortのプロバイダー別メッセージ対応表を確認し、inboundとoutboundの境界を決めてください。ネイティブのbuttons、quick reply、carousel、Flex layoutはLINE公式Messaging API資料に沿って実装します。
情報源
2026年8月18日に確認した公式一次情報:
メッセージ連携を安定したプロダクトパイプラインへ。
まずは 1 つの API で送信を始め、標準イベントですべての inbound メッセージを業務システムへ戻しましょう。