Skip to content

feat(line): add LINE Messaging API channel integration - #1721

Open
hoangle398 wants to merge 1 commit into
mainfrom
feat/line-channel-integration
Open

hoangle398 wants to merge 1 commit into
mainfrom
feat/line-channel-integration

Conversation

@hoangle398

Copy link
Copy Markdown
Contributor

Summary

Adds LINE (Messaging API) as a new channel.

Channel

  • LINE integration package: API client, channel access token issuing/refresh, webhook signature verification, inbound event mapping, reply/push sending of flow steps
  • IntegrationLine table, channel registration, connect service and webhook routing; public API for LINE channels plus builder UI to connect, test the webhook and disconnect
  • Honors LINE blocks via ContactInbox.channelBlockedAt; profile language as contact locale; optional ephemeral store in the SDK integration context
  • LINE shown in channel options (allInboxConfigs); 1500-character alt text allowed

Flex messages

  • Every button-bearing LINE message (text with buttons, card, carousel, buttons after a media step) is built as flex bubbles instead of the buttons/carousel templates (removed)
  • Full card titles/subtitles, per-card buttons, up to 12 cards per carousel, bubble/carousel size budgets enforced without dropping content

Button limits and styles

  • Channel flow policies state separate step (buttonCount) and card (cardButtonCount) button limits; LINE allows 5 of each, enforced at publish, in the builder and when parsing a flow spec (drafts included)
  • Per-button style (primary/secondary/link) for LINE, editable in the button dialog; "(default)" clears it back to the channel default
  • Card buttons over the resolved channel's limit are cut at send time with a warning; Messenger/Instagram log a warning when they drop step buttons

Docs

Design spec, channel guide (docs/line.md), flows, CLI/MCP docs, live-test results.

Notes

  • Includes a DB migration for the new table — needs to be applied on deploy.
  • Flex sending has not been verified against a live LINE account yet.

Test plan

  • pnpm lint and pnpm check-types pass in CI
  • Connect a LINE channel, verify webhook test succeeds
  • Send text/buttons/card/carousel flow steps to a LINE user and confirm flex rendering
  • Block/unblock the bot and confirm channelBlockedAt updates

@github-actions github-actions Bot added the feature New feature or request label Nov 15, 2026
@hoangle398
hoangle398 force-pushed the feat/line-channel-integration branch 2 times, most recently from 682bd7c to d25c7e0 Compare November 15, 2026 08:24
Channel
- LINE integration package: API client, channel access token issuing/refresh,
  webhook signature verification, inbound event mapping, reply/push sending
  of flow steps
- IntegrationLine table, channel registration, connect service and webhook
  routing; public API for LINE channels plus builder UI to connect, test the
  webhook and disconnect
- Honor LINE blocks via ContactInbox.channelBlockedAt; profile language as
  contact locale; optional ephemeral store in the SDK integration context
- Show LINE in channel options (allInboxConfigs) and allow the Messaging
  API's 1500-character alt text

Flex messages
- Every button-bearing LINE message (text with buttons, card, carousel, the
  buttons after a media step) is built as flex bubbles instead of the
  buttons/carousel templates, which are removed
- Full card titles/subtitles, per-card buttons, up to 12 cards per carousel,
  and bubble/carousel size budgets enforced without dropping content

Button limits and styles
- Channel flow policies state separate step (buttonCount) and card
  (cardButtonCount) button limits; LINE allows 5 of each, enforced at
  publish, in the builder and when parsing a flow spec (drafts included)
- Per-button style (primary/secondary/link) for LINE, editable in the button
  dialog; the "(default)" entry clears it back to the channel default
- Card buttons over the resolved channel's limit are cut at send time with a
  warning; Messenger/Instagram log a warning when they drop step buttons
- LINE sends step and card buttons each at their own policy limit

Docs: design spec, channel guide, flows, CLI/MCP docs, live-test results.
Flex sending not verified against a live LINE account.
@hoangle398
hoangle398 force-pushed the feat/line-channel-integration branch from d25c7e0 to c54c7fb Compare November 15, 2026 08:28
@hoangle398
hoangle398 requested review from realcodesiman, sung17 and viethung0o0 and removed request for sung17 and viethung0o0 November 15, 2026 08:29

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant