This article explains how to send LINE messages from a Klaviyo Flow scenario, connecting email and LINE into a single journey. It walks through setup, pre-launch checks, and notes on delivery timing, in order.
The two routes for LINE delivery
LINE sends from Lumo use one of two routes — Lumo's Message Broadcast or automated sends from a Klaviyo Flow — depending on your goal.
| What you want to do | Route to use |
|---|---|
| Campaign-style mass broadcasts (announcing best-selling products, sale announcements, and so on) | Lumo's Message Broadcast. Specify a Segment built from Klaviyo conditions (lists, properties, ID linkage) as the recipients |
| Scenario-driven automated sends (abandoned cart follow-ups, post-purchase cross-sells, and so on) | A Webhook action in a Klaviyo Flow. This is the method described in this article |
Klaviyo Campaigns (mass sends) have no Webhook action, so you cannot "send LINE from a Klaviyo Campaign." Mass broadcasts go out from Lumo's Message Broadcast. With either route, you can use your Klaviyo Segments as they are, and delivery results (sends, opens, clicks, and so on) are recorded on Klaviyo profiles.
What you can do with LINE delivery from a Klaviyo Flow
With Klaviyo Flow's Webhook action, you can send LINE messages at any point you like within a scenario.
For example, you can build cross-channel scenarios in a single Flow, such as sending a coupon on LINE the day after a welcome email, reminding customers on LINE about products left in their cart, or sending cross-sell recommendations on LINE a few days after a purchase. Even content that is hard to convey by email can be delivered visually through LINE messages that use images and buttons.
The customers you send to must already have completed ID linkage between LINE and Klaviyo. For customers who are not linked, the recipient cannot be identified, so the message will not be delivered.
Check the settings needed for delivery
You can check the settings needed for LINE delivery under "Flow Message Settings" on the Klaviyo integration screen.
You can obtain each value with the copy button on the screen. These values become available once the integration is enabled.
| Item | Description |
|---|---|
| "Destination URL" | The URL to set as the destination of the Webhook action. In Klaviyo, choose POST as the HTTP method |
| "Header Name" | The name to set as the key of the Webhook's custom header |
| "Header Value (Authentication Key)" | The authentication key to set as the value of the custom header. It is used to prevent unauthorized requests |
Add a Webhook action to your Klaviyo Flow
Add a Webhook action in your Klaviyo Flow at the position where you want to send a LINE message.
The setup steps are as follows.
- In your Klaviyo Flow, add a Webhook action at the place where you want to send a LINE message
- Choose POST as the method and set the "Destination URL"
- In the custom header, set the "Header Name" as the key and the "Header Value (Authentication Key)" as the value
- In the request body, specify the recipient and the message to send
The specific way to set the request body is explained next, in "Specify the message to send."
Specify the message to send
There are two ways to specify the message to send: using a Lumo Auto Send Message, or specifying the text directly.
When you want to send a polished message such as a product card or a Rich Message, use an Auto Send Message; when you only need a short one-liner, specifying the text directly is simpler.
Use an Auto Send Message (recommended)
When you want to send a polished LINE message such as a product card or a Rich Message, use a Lumo Auto Send Message.
- Create an Auto Send Message in Lumo (you can create one quickly from a template)
- On the Auto Send Message's detail screen, choose "Get JSON"
- In the dialog that appears, select the LINE Official Account to use for delivery, and the request body to paste into the Webhook action is generated
- Copy the generated content and paste it into the request body of the Klaviyo Webhook action
The generated request body already includes the merge variable {{ person|lookup:'LINE User ID' }} that specifies the recipient. There is no need to edit it by hand — paste it as-is, and the correct recipient is inserted for each customer who passes through the Flow.
Send text directly
If you only need to send a short text message, you can specify the text directly in the Webhook request body.
In this case, there is no need to prepare an Auto Send Message. Specify the recipient merge variable {{ person|lookup:'LINE User ID' }} and the text body you want to send in the request body. For details on how to specify it, see the request body example in "Flow Message Settings".
Showcase products with product cards
With a product card (the "Products" card type of Card Type Messages), you can automatically assemble card-format messages that include a product image, product name, and button.
Add a product card as a Card Type Message when creating an Auto Send Message. How products are selected (the data source) falls into two broad types.
Trigger products
This data source assembles cards from the product information contained in the event that triggered the Flow. Choose "Trigger products" as the product card's data source, then pick the template that fits your use case.
| Template | Use |
|---|---|
| "Abandoned cart follow-up" | Reminds customers of the products left in their cart, with images. A variable that inserts a cart-recovery URL is also available |
| Browse reminders, low-stock alerts, and more | In Flows triggered by product views or stock status, assembles cards for the products in question |
Product feeds
This data source automatically selects products that match the feed's conditions from your store's product data and assembles the cards. Choose "From a product feed (auto)" as the product card's data source, then select the product feed to use.
| Feed type | Products featured |
|---|---|
| "Best sellers" | Products with strong sales records |
| "Newest" | Recently added products |
| "On sale" | Products on sale |
The product data used by product feeds syncs directly from your Shopify store. To use them, install the Lumo app on both Klaviyo and Shopify.
Notes on using "Best sellers"
Best sellers selects products based on sales records, so products with no sales are not shown. In stores that still have little sales data — such as right after opening — there may be no products to show, and the message may display as text only. In that case, the fallback products are shown instead. Right after launch, we recommend using a "Newest" feed or fallback products, then switching to "Best sellers" once sales data has accumulated.
With any data source, you can set the title, body, button text, maximum number of products, and more. The Auto Send Message you create can be built into the Webhook action via "Get JSON".
Check behavior before going live
Before you publish the Flow, verify your setup with Payload Preview and a test send.
The verification steps are as follows.
- In the Klaviyo Webhook action, open Preview Webhook (Payload Preview) and confirm that actual values are merged into each field, such as the recipient and the product information
- Run a test send and confirm on a real device that the message arrives on your own LINE and that the card-format message displays correctly
- If everything looks good, set the Flow to Live
- After saving, reopen the Flow screen and check that the Webhook action has not reverted to Draft. If it remains in Draft, messages will not be sent
About delivery timing
Sends from a Klaviyo Flow can have a time lag between when the event occurs and when the message is actually sent.
Because Klaviyo batches event ingestion and Flow processing internally, it can take anywhere from tens of minutes to about an hour before the Webhook action runs. This is due to how Klaviyo works; Lumo sends to LINE promptly as soon as it receives the request from Klaviyo.
- To verify that your setup is correct, use Payload Preview and a test send rather than waiting for an actual delivery
- If more than 6 hours pass between when the event occurs and when it is ingested into Klaviyo, the Flow will not be triggered for that event (this is Klaviyo's specification)
Reissue the authentication key
When there is a possibility that the authentication key has leaked, for example, you can reissue it from "Flow Message Settings".
Choose "Reissue Authentication Key", then choose "Reissue" in the confirmation dialog. Once reissued, the old authentication key immediately stops working. Be sure to also update the custom header value on the Klaviyo Flow side to the new authentication key. If you forget to update it, LINE delivery will stop with an authentication error.
When things do not work
Common problems with Flow delivery and how to address them are listed below.
| Symptom | What to check |
|---|---|
| The message is not delivered | First, check that the recipient customer has completed ID linkage between LINE and Klaviyo. For customers who are not linked, the recipient cannot be identified |
| The message arrives late | Due to processing on the Klaviyo side, it can take anywhere from tens of minutes to about an hour before the Webhook runs. This is not a problem with Lumo. Verify your setup with Payload Preview and a test send |
| The Flow does not send | Check that the Webhook action is Live (published). It can revert to Draft after saving |
| You get an authentication error | Check that the Webhook's Header Name and Header Value (Authentication Key) match the values in "Flow Message Settings". After reissuing the authentication key, the value on the Klaviyo Flow side also needs to be updated |
| The recipient is not merged correctly | Check that the request body includes the merge variable `{{ person |
| No products appear on the product card | Best-seller feeds show only products with sales records. In stores with little sales data, use a "Newest" feed or fallback products. Product feeds require product data sync with your Shopify store (installing the Lumo app on the Shopify side) |