This article explains how to send transactional notifications such as order and shipping confirmations as LINE notification messages, triggered by a Klaviyo Flow. Notifications reach customers by phone number, even before they add your account as a friend.
What are LINE notification messages
LINE notification messages are transaction-only messages certified by LY Corporation that can reach customers by phone number, even if they have not added your account as a friend.
Regular LINE messages only reach friends. LINE notification messages are delivered when the customer's phone number matches the number registered to their LINE account. Each message is built from a certified template (such as "Shipping Confirmation" or "Order Confirmation") with your order details merged in.
Key points before you start:
- They are strictly for transactional notifications (purchases, shipping, reservations, and so on). Advertising and promotional use is not allowed
- Using them requires an application to and approval from LY Corporation
- Message layouts follow the certified templates. Free-form layouts are not available
Requirements
You need three things in place: a Klaviyo integration, approval to use LINE notification messages, and customer phone numbers.
- Your LINE Official Account is approved to use LINE notification messages
- The Klaviyo integration is connected in Lumo
- The target Klaviyo profile has a phone number in international format (for example:
+819012345678)
A notification is delivered when the phone number on the Klaviyo profile matches the number registered to the customer's LINE account and the customer allows notification messages on the LINE side.
Overview of the setup
You create one set of "LINE notification message + auto send message + Klaviyo Flow" for each type of notification.
| Step | What you create or configure | Where |
|---|---|---|
| 1 | Create a LINE notification message (template) | Lumo |
| 2 | Create an auto send message | Lumo |
| 3 | Get the Klaviyo Flow connection details | Lumo |
| 4 | Configure a webhook action in the Flow | Klaviyo |
| 5 | Test and go live | Klaviyo |
To send both order and shipping confirmations, create two of these sets.
Create a LINE notification message
From the side menu, open "Automation" > "LINE Notification Messages" and create one from a certified template that fits your use case.
- Select "Create LINE Notification Message"
- Choose the region and template key. Typical choices are the shipping confirmation template for shipping notices, and the order or purchase confirmation template for order notices
- In the merge items, pick the item keys you want to show (tracking number, product name, total amount, and so on) and enter their display values. Use merge variables for values that change per order
- Choose a CTA button label and set its URL. For example, a "check delivery status" style button for shipping, or an "order history" style button for purchases
- If you use the emphasized item, keep its display text within 15 characters. When variables are used, the limit applies to the text after replacement
How to write merge variables
In display values and button URLs, use the format {{ data.keyName }} to merge order data passed from Klaviyo.
The main variables are listed below. Their values are supplied by Klaviyo through the JSON body you will get later from the Klaviyo Flow connection details.
| Variable | Content | Available triggers |
|---|---|---|
{{ data.orderNumber }} |
Order number | Placed Order / Fulfilled Order |
{{ data.orderDate }} |
Order date | Placed Order / Fulfilled Order |
{{ data.productName }} |
Product name (first item) | Placed Order / Fulfilled Order |
{{ data.totalPrice }} |
Order total | Placed Order / Fulfilled Order |
{{ data.orderStatusUrl }} |
Order status page URL | Placed Order / Fulfilled Order |
{{ data.trackingNumber }} |
Tracking number | Fulfilled Order only |
{{ data.shippedDate }} |
Shipping date | Fulfilled Order only |
{{ data.trackingUrl }} |
Delivery tracking page URL | Fulfilled Order only |
- Write currency symbols in the display value itself (for example:
¥{{ data.totalPrice }}) - Shipping-related variables such as the tracking number have no value in a Placed Order flow. Do not use them in order confirmation templates
Create an auto send message
Choose "LINE notification message" as the message type and select the template you created.
- From the side menu, open "Automation" > "Auto Send Messages" and create a new message
- Choose "LINE notification message" as the message type
- Select the LINE notification message you created as the template and save
An auto send message with a LINE notification message cannot contain any other message types. One auto send message equals one notification.
Get the Klaviyo Flow connection details
Open "Klaviyo Flow connection details" on the auto send message's detail page to get everything you need for the Klaviyo webhook action.
- On the detail page of the auto send message you created, select "Klaviyo Flow connection details"
- Choose the LINE Official Account to send from
- Note the Destination URL, the header (Key / Value), and the JSON body. Copy the JSON body with "Copy JSON"
The JSON body already includes the order-data mappings that feed the merge variables. In most cases you can paste it as is.
Create the Flow in Klaviyo
Create a Flow triggered by "Placed Order" for order confirmations or "Fulfilled Order" for shipping confirmations, then configure a webhook action with the values you collected.
Choose the trigger
| Notification | Trigger to choose | When it fires |
|---|---|---|
| Order confirmation | Placed Order | When an order is placed |
| Shipping confirmation | Fulfilled Order | When the entire order is fulfilled |
Do not choose the similarly named "Ordered Product": it fires once per product in the order, so the same customer would receive multiple notifications.
Configure the webhook action
- Add a "Webhook" action to the Flow
- Choose "POST" as the HTTP method and set the Destination URL
- Add a custom header with the Key and Value you noted
- Paste the copied content into the JSON body
If you build both order and shipping Flows, paste each Flow's JSON body from its corresponding auto send message.
Verify the order data merge
The order-data references in the JSON body can vary by store configuration, so use Klaviyo's Preview Webhook to confirm real values are filled in.
If any field shows up empty or as "None" in the preview, inspect the Klaviyo event data and adjust the corresponding variables starting with event. in the JSON body to match your actual events.
Check before going live
Verify the merge and the actual delivery with Preview Webhook and a test profile before publishing.
- Open "Preview Webhook" on the Klaviyo webhook action and confirm each field, such as the order number, is filled with real values
- Trigger a real event with a test profile registered with your own phone number and confirm the notification arrives on LINE
- If everything looks good, set the Flow to Live
- Reopen the Flow after saving and confirm the webhook action has not reverted to Draft. Notifications are not sent while it is in Draft
If the test does not arrive, first check that the phone number on the Klaviyo profile matches the number registered to your LINE account.
Stores with partial fulfillment
If you ship one order in multiple shipments, note that Fulfilled Order only fires when the entire order is fulfilled.
- To notify on each partial shipment, build a separate Flow with the "Fulfilled Partial Order" trigger
- To prevent duplicate notifications, add the trigger filter "HasPartialFulfillments is false" to the Fulfilled Order flow (this is Klaviyo's recommended setup)
Stores that never split shipments do not need this setup.
Troubleshooting
Common issues with LINE notification messages from Flows and what to check.
| Symptom | What to check |
|---|---|
| The notification does not arrive | Check that the phone number on the Klaviyo profile matches the number registered to the customer's LINE account. The international format (for example +819012345678) is the most reliable. Also confirm your account is approved to use LINE notification messages |
| "None" or blanks appear in the message | Klaviyo could not resolve the variable. Check the event data with Preview Webhook and adjust the variables starting with event. in the JSON body |
| The send fails with an error | Check that the emphasized item's display text does not exceed 15 characters after variable replacement. You can review send results on the auto send message's detail page |
| Delivery is slow | Klaviyo's internal processing can delay the webhook by tens of minutes up to about an hour. Use Preview Webhook and test sends to verify your setup instead of waiting for live traffic |
| Authentication errors | Check that the webhook header Key and Value are up to date. If you regenerated the authentication key, update the value on the Klaviyo Flow side as well |
| The Flow does not run | Check that the webhook action is Live. It can revert to Draft after saving |