# LINE Message Types

Engage Studio supports multiple LINE message types in One-off Campaigns. This page describes the available message types, their configuration fields, validation rules, and personalization options.

## General Specifications

Each campaign delivery can include up to **5 message objects** in a single bundle. All messages in the bundle are delivered together in a single LINE Messaging API call. Recipients receive them as a sequence of messages in the LINE chat.

| Specification | Value |
|  --- | --- |
| Maximum message objects per campaign | 5 |
| Supported types | Text (v2), Imagemap, Flex Message |


When a message object in the bundle fails (for example, due to a text length violation), that individual object is recorded as failed. Other messages in the same bundle that succeed are recorded separately.

## Text Message (Text v2)

### Use Cases

- Promotional announcements and time-sensitive notifications
- Personalized greetings and loyalty status updates
- Coupon codes and discount descriptions
- Follow-up messages after a purchase or registration


### Text Field

| Field | Description |
|  --- | --- |
| **Text** | The message body. Supports newlines and Liquid template variables. |


**Character limit**: LINE enforces a 5,000-character limit on Text v2 messages. Because Liquid variables are expanded at delivery time, character count validation is not enforced at authoring time. If the expanded text exceeds 5,000 characters for a given profile, LINE rejects that message. The rejection is recorded in the delivery log for that profile.

### Personalization with Liquid

Text messages support Liquid template syntax. Variables are expanded per profile at delivery time.

**Common variables:**

```liquid
{{ profile.first_name }}
{{ profile.last_name }}
{{ profile.loyalty_tier }}
{{ profile.coupon_code }}
```

**Default values** (used when the profile attribute is null or empty):

```liquid
{{ profile.first_name | default: "Customer" }}
```

**Conditional content** — use `if`/`else`/`endif` tags to show different text based on profile attributes:

- Condition: `{%- if profile.loyalty_tier == "gold" -%}`
- True branch: `Exclusive Gold Member Offer: {{ profile.offer_text }}`
- False branch (`{%- else -%}`): `Check out our latest campaign!`
- Close: `{%- endif -%}`


Liquid Expansion and Character Limits
Always test messages with long variable values to ensure the expanded text stays within the 5,000-character limit. Messages that exceed the limit are rejected by LINE and recorded as delivery errors for the affected profiles.

### Unsupported Features (Milestone 1)

The following LINE Text v2 API features are not supported in the current release and are planned for future milestones:

- **Mention substitution** — Mentioning LINE users by handle
- **LINE Emoji** — LINE-native emoji codes (Unicode emoji in plain text are supported)
- **Advanced substitution objects** — Custom substitution schemas beyond Liquid variable expansion


## Imagemap Message

An Imagemap message displays a single banner image with one or more tappable regions overlaid on it. Each region is a rectangular tap area that can open a URL, send a message, or copy text to the clipboard when tapped. Because the entire message is rendered as an image, Imagemap is well-suited for visually rich promotions where layout and branding are important.

Imagemap messages are delivered as a single image in the LINE chat. Recipients tap a region to trigger the configured action — no text labels are shown on the image itself, so the visual design must communicate the intent of each tap area clearly.

### Use Cases

- Promotional banners with multiple tappable call-to-action areas (e.g., "Shop Now", "Learn More", "View Recipe")
- Product showcase images with individual product links
- Event announcements with registration and detail links
- Campaign landing page promotions using a single banner image


### Image Requirements

| Requirement | Specification |
|  --- | --- |
| **Accepted formats** | JPEG, PNG |
| **Required upload width** | 1040 px |
| **Aspect ratio** | Free (height is configurable), but a consistent aspect ratio is recommended |
| **Maximum file size** | 10 MB |


Image Width Requirement
Only upload images at 1040 px width. LINE generates smaller sizes automatically; uploading at lower resolutions results in poor image quality when LINE upscales them.

Imagemap Message editor — upload a base image and define tap areas with Link URI, position, and size
### Imagemap Fields

| Field | Required | Description |
|  --- | --- | --- |
| **Alt Text** | Yes | Descriptive text shown to users in accessibility contexts and when the image cannot be displayed |
| **Tap Areas** | Yes (at least 1) | Array of tappable regions on the image (max 50 areas) |


### Tap Area Configuration

Each tap area defines a rectangular region on the Imagemap and the action triggered when a user taps it.

| Field | Required | Description |
|  --- | --- | --- |
| **x** | Yes | Horizontal position of the top-left corner (pixels from left edge, based on 1040 px width) |
| **y** | Yes | Vertical position of the top-left corner (pixels from top edge) |
| **Width** | Yes | Width of the tap area in pixels |
| **Height** | Yes | Height of the tap area in pixels |
| **Action Type** | Yes | `uri` (only supported type in the current release) |
| **Action Value** | Yes | URL to open when the tap area is tapped |


**Action types:**

| Type | Description | Typical Use |
|  --- | --- | --- |
| `uri` | Opens a URL in the LINE browser or external browser | Landing pages, product pages |
| `message` | *(Future release)* Sends a predefined text message from the user back to the LINE OA | — |
| `clipboard` | *(Future release)* Copies a text string to the user's clipboard | — |


Overlapping tap areas are allowed. When areas overlap, the topmost area in the list takes precedence.

### Coordinate System

Tap area coordinates are defined in a 1040 × height pixel space matching the uploaded image dimensions:

```
(0,0) ─────────────────────── (1040,0)
  │                                │
  │         Image Canvas           │
  │                                │
(0,height) ──────────────── (1040,height)
```

Example — a banner split into two equal vertical halves:

| Area | x | y | Width | Height | Action |
|  --- | --- | --- | --- | --- | --- |
| Left half | 0 | 0 | 520 | 520 | `uri` → Product A page |
| Right half | 520 | 0 | 520 | 520 | `uri` → Product B page |


### Validation

The editor validates the following at save time:

- `baseUrl` is present and uses HTTPS
- `altText` is present
- `baseSize.width` equals exactly `1040`
- `baseSize.height` is a positive integer
- At least one tap area is defined
- All tap area fields are non-negative integers
- Each tap area has a valid action type and value


## Flex Message

Engage Studio supports [LINE Flex Messages](https://developers.line.biz/en/reference/messaging-api/#flex-message) for rich, highly customizable layouts.

Paste a JSON payload conforming to LINE's Flex Message schema into the message editor. The editor validates that `altText` is present and that the `contents` block is a valid `bubble` or `carousel`.

Ready-to-use JSON templates are available in the [Flex Message Template Gallery](/products/marketing-cloud/engage-studio/channels/line/line-oa-flex-message-gallery).

### Future Release

The following message types are planned for a future Engage Studio release and are not available currently:

| Type | Status | Description |
|  --- | --- | --- |
| **Image** | Planned | Single image message |
| **Video** | Planned | Video message |
| **Sticker** | Planned | LINE sticker message |


For customers with specific requirements for these message types, contact your customer success representative to discuss timeline and availability.

## Current Limitations

| Limitation | Details |
|  --- | --- |
| LINE Emoji codes | Not supported; use Unicode emoji characters instead |
| Coupon message type | Not supported in the current release |
| Rich Video Message | Not supported in the current release |
| Text v2 mention substitution | Not supported in the current release |
| Always-on Campaign | LINE channel is not yet supported in Always-on Campaigns; only One-off Campaigns are supported |


## Related Documentation

- [Create a One-off LINE Campaign](/products/marketing-cloud/engage-studio/channels/line/line-oa-campaigns)
- [Click Tracking](/products/marketing-cloud/engage-studio/channels/line/line-oa-click-tracking)
- [Testing LINE Campaigns](/products/marketing-cloud/engage-studio/channels/line/line-oa-testing)
- [LINE Messaging API Reference](https://developers.line.biz/en/reference/messaging-api/)