Web Menus (Menu Builder)
Overview
The menu builder creates public menu or link-collection pages (link-in-bio style) for each LINE OA. Visitors reach the page through a public token without logging in, which makes it a good fit for a services landing page linked from a rich menu button.
The entire menu structure is stored as a single JSONB blob, so new block types can be added without a schema-level migration.
Core Data Structure
menu_builder (model MenuBuilder)
nameVARCHAR(255)configJSONB — the complete menu structure: blocks, links, and themepublic_tokenVARCHAR(255) unique (nullable) — the key used to build the public URL;NULLmeans the page has not been exposed yetline_oa_idFK →line_oa.idstatus(CommonStatus, defaultactive)- timestamps use the newer naming convention —
created_at/updated_at/deleted_at— unlike the older tables, which usecreated_date/deleted_date - indexes on
(line_oa_id),(status), and(created_at)
Related Files
prisma/schema.prisma:968— modelMenuBuilderschema-dumps/2026-07-24/schema.sql:2345
Connections to Other Services
- cms-api-go — menu CRUD, including issuing and revoking
public_token - client-api-go — the public page, looked up by
public_tokenand rendered fromconfig
Links inside the menu are typically wrapped in tracking links before being rendered; see Click Tracking.