本文說明如何從 Klaviyo Flow 的情境發送 LINE 訊息,把電子郵件與 LINE 串成同一條流程。內容依序涵蓋設定方式、上線前的確認,以及發送時機的注意事項。
LINE 發送途徑的使用區分
從 Lumo 發送 LINE 訊息有「Lumo 的群發訊息」「從 Klaviyo Flow 自動發送」「LINE通知訊息」等途徑,依目的分別使用。
| 想做的事 | 使用的途徑 |
|---|---|
| 行銷活動式的大量發送(熱賣商品宣傳、特賣通知等) | Lumo 的群發訊息。將以 Klaviyo 條件(List、屬性、ID 連結)建立的受眾指定為發送對象 |
| 由情境觸發的自動發送(棄單跟進、購買後的交叉銷售等) | Klaviyo Flow 的 Webhook action。即本文說明的方法 |
| 想送達尚未加入好友之顧客的交易通知(購買完成、出貨完成等) | LINE通知訊息。設定方法請參考從 Klaviyo Flow 發送 LINE 通知訊息 |
由於 Klaviyo 的 Campaign(大量發送)沒有 Webhook action,因此無法「從 Klaviyo 的 Campaign 發送 LINE」。大量發送請使用 Lumo 的群發訊息。無論哪一種途徑,都能直接使用 Klaviyo 的受眾,發送結果(發送、開啟、點擊等)也會記錄到 Klaviyo 的 Profile。
從 Klaviyo Flow 可以做到的 LINE 發送
使用 Klaviyo Flow 的 Webhook action,就能在情境中的任何時間點發送 LINE 訊息。
例如在歡迎信寄出的隔天用 LINE 發送優惠券、用 LINE 提醒把商品留在購物車的顧客、在購買數天後用 LINE 推薦交叉銷售商品——這些跨管道的情境都能在同一個 Flow 中組合完成。電子郵件不容易傳達的內容,也能透過帶有圖片與按鈕的 LINE 訊息以視覺方式呈現。
發送對象的顧客必須事先完成 LINE 與 Klaviyo 的 ID 連結。尚未完成連結的顧客因為無法判別發送對象,訊息不會送達。
取得發送所需的連線資訊
Klaviyo Webhook action 要設定的全套連線資訊,從自動化訊息詳細頁面的 「Klaviyo Flow 連線資訊」 取得。
開啟 「Klaviyo Flow 連線資訊」,選擇要用於發送的 LINE 官方帳號後,會顯示以下數值。Klaviyo 整合生效後即可使用。
| 項目 | 說明 |
|---|---|
| Destination URL | 設定為 Webhook action 傳送目標的 URL。在 Klaviyo 中,HTTP 方法請選擇 POST |
| 標頭(Key / Value) | 設定到 Webhook 自訂標頭的 key 與驗證金鑰,用於防止不正當的請求 |
| JSON body | Webhook 的傳送內容。可用 「複製 JSON」 直接複製 |
在 Klaviyo 的 Flow 中加入 Webhook action
在想要發送 LINE 訊息的位置,於 Klaviyo 的 Flow 中加入 Webhook action。
設定步驟如下。
- 在 Klaviyo 的 Flow 中,於想發送 LINE 訊息的位置加入 「Webhook」 action
- 方法選擇 「POST」,並設定 「Destination URL」
- 在自訂標頭中,設定記下的 Key 與 Value
- 在 JSON body 貼上要傳送的訊息內容
JSON body 的具體指定方式,將在接下來的「指定要傳送的訊息」中說明。
不需要用篩選條件將發送對象縮小為已完成 ID 連結的顧客
Webhook action 會對到達該步驟的所有顧客執行,但 Lumo 會自動略過尚未完成 ID 連結的顧客,因此不加 profile filter 也能安全運作。
- Klaviyo 端不會判斷是否已完成 ID 連結,因此 Webhook 本身會對到達步驟的所有人執行
- Lumo 收到請求時會判斷發送對象,不會發送給尚未完成 ID 連結的顧客(也不會發生錯誤)
- 訊息不會誤送給尚未連結的顧客
想讓 Klaviyo 的 Sent 件數貼近實際發送對象時
Klaviyo 的 Webhook action 顯示的 Sent 件數是「Webhook 執行的次數」,並非實際發送 LINE 訊息的數量。若希望報表顯示更接近實際發送對象的數字,請在 Webhook action 之前加入 Conditional Split(例如:已設定「LINE User ID」屬性),並將 Webhook action 放在符合條件的一側。
另外,若以整個 Flow 的 profile filter 縮小為已完成 ID 連結的顧客,同一個 Flow 內的電子郵件發送也會被限制在已完成 ID 連結的顧客。若希望電子郵件照常發送給所有人,請改用 Webhook action 之前的 Conditional Split,而不是整個 Flow 的篩選條件。
指定要傳送的訊息
要傳送的訊息有兩種指定方式:使用 Lumo 的自動化訊息,或直接指定文字。
想傳送商品卡片、圖文訊息等精心設計的訊息時,請使用自動化訊息;只要傳送簡短的一句話,直接指定文字會更輕鬆。
使用自動化訊息(推薦)
要傳送商品卡片、圖文訊息等精心設計的 LINE 訊息時,請使用 Lumo 的自動化訊息。
- 在 Lumo 建立自動化訊息(可從範本快速建立)
- 在自動化訊息的詳細頁面選擇 「Klaviyo Flow 連線資訊」
- 在顯示的對話框中選擇要用於發送的 LINE 官方帳號,即會顯示要設定到 Webhook action 的 Destination URL、標頭與 JSON body
- 以 「複製 JSON」 複製 JSON body,貼到 Klaviyo Webhook action 的傳送內容中
產生的 JSON body 已預先包含指定發送對象的插入變數 {{ person|lookup:'LINE User ID' }}。不需要手動編輯,直接貼上即可為每位通過 Flow 的顧客帶入正確的發送對象。
直接傳送文字
若只是要傳送簡短的文字訊息,可以不使用自動化訊息,直接指定文字。
刪除以 「Klaviyo Flow 連線資訊」 取得之 JSON body 中的 autoMessageId 那一行,改在 messageText 指定想傳送的文字。發送對象的插入變數 {{ person|lookup:'LINE User ID' }} 則保留不動。
另外,{{ data.鍵名 }} 格式的插入變數為 LINE通知訊息專用。本文說明的一般 LINE 訊息發送無法使用。
用商品卡片刊登商品
使用商品卡片(多頁訊息的卡片類型 「商品」),即可自動組合出包含商品圖片、商品名稱與按鈕的卡片式訊息。
建立自動化訊息時,以多頁訊息的形式加入商品卡片。商品的挑選方式(資料來源)大致分為兩種。
觸發商品
依據成為 Flow 觸發契機的事件中所包含的商品資訊,組合卡片的資料來源。在商品卡片的資料來源選擇 「觸發商品」,再選取符合用途的範本。
| 範本 | 用途 |
|---|---|
| 「Abandoned cart follow-up」(棄單跟進) | 以附帶圖片的方式,提醒顧客購物車中尚有商品。也可以使用帶入棄單回復用 URL 的變數 |
| 瀏覽提醒、庫存不多 等 | 在以商品瀏覽或庫存狀況為契機的 Flow 中,組合對象商品的卡片 |
內容饋給
從商店的商品資料中自動挑選符合條件的商品,組成卡片的資料來源。在商品卡片的資料來源選擇 「來自內容饋給(自動)」,並指定要使用的內容饋給。
| 饋給的種類 | 刊登的商品 |
|---|---|
| 「熱銷」 | 銷售實績較多的商品 |
| 「新品」 | 最近新增的商品 |
| 「特價」 | 特價中的商品 |
| 「手動挑選」 | 指定的商品(最多10件) |
內容饋給使用的商品資料,會直接從 Shopify 商店同步。若要使用,請在 Klaviyo 與 Shopify 兩邊都安裝 Lumo 應用程式。
使用「熱銷」時的注意事項
熱銷是根據銷售實績挑選商品,因此沒有銷售紀錄的商品不會顯示。剛開幕等銷售資料還很少的商店,可能因為沒有可顯示的商品而僅顯示文字。此時會改為顯示備援指定的商品。建議剛上線時先使用「新品」的饋給或備援商品,等銷售資料累積後再切換為「熱銷」。
標題、內文、按鈕文字、最大商品數等,在任何資料來源中都可以設定。建立好的自動化訊息,可從 「Klaviyo Flow 連線資訊」 整合進 Webhook action。
防止相同訊息重複發送的機制
以 「Klaviyo Flow 連線資訊」 產生的 JSON body 內含重複排除金鑰(idempotencyKey),即使相同事件重複送達,也會自動防止重複發送。
- 棄單跟進、購買完成、出貨完成的 Flow,會依結帳或訂單編號自動設定金鑰。即使發生 Klaviyo 的 Webhook 重送或 Flow 重複觸發,同一位顧客也不會在 24 小時內收到相同訊息 2 次
- 瀏覽提醒、庫存不多、補貨的 Flow 不會附加金鑰。這是為了不妨礙同一位顧客再次瀏覽同一商品等重複發送屬於正當的情況
- 若使用的是先前取得的 JSON body,從 「Klaviyo Flow 連線資訊」 取得最新的 JSON 並重新貼上即可生效
上線前確認運作
在將 Flow 上線之前,請以 Payload Preview 與測試發送確認設定。
確認步驟如下。
- 在 Klaviyo 的 Webhook action 開啟 「Preview Webhook」(Payload Preview),確認發送對象、商品資訊等各欄位都帶入了實際的值
- 執行測試發送,在實際裝置上確認訊息送達自己的 LINE,且卡片式訊息顯示正確
- 沒有問題後,將 Flow 設為 Live(公開)
- 儲存後重新開啟 Flow 畫面,確認 Webhook action 沒有回到 Draft 狀態。若停留在 Draft,訊息將不會發送
關於發送時機
從 Klaviyo Flow 發送時,從事件發生到實際送出之間可能會有時間差。
Klaviyo 會在內部彙整處理事件的匯入與 Flow 的執行,因此到 Webhook action 實際執行為止,可能需要數十分鐘到 1 小時左右。這是 Klaviyo 端的機制所致;Lumo 一收到來自 Klaviyo 的請求,就會立即發送到 LINE。
- 確認設定是否正確時,請不要等待實際發送,改用 Payload Preview 與測試發送確認
- 若事件發生到匯入 Klaviyo 之間相差 6 小時以上,該事件將不會啟動 Flow(這是 Klaviyo 的規格)
重新發行驗證金鑰
當驗證金鑰可能外洩等情況,可以從 Klaviyo 整合設定畫面的 「從 Flow 進行 ID 連結」 區塊重新發行驗證金鑰。
選擇 「重新發行驗證金鑰」,並在確認對話框中選擇 「重新發行」。重新發行後,舊的驗證金鑰會立即失效。請務必在所有用於 LINE 發送或 ID 連結的 Klaviyo Flow Webhook 中,把自訂標頭的 Value 更新為新的驗證金鑰。若忘記更新,LINE 發送將因驗證錯誤而停止。
無法順利運作時
Flow 發送常見的問題與處理方式如下。
| 症狀 | 確認重點 |
|---|---|
| 訊息沒有送達 | 請先確認發送對象的顧客是否已完成 LINE 與 Klaviyo 的 ID 連結。尚未連結的顧客無法判別發送對象 |
| 訊息送達得很慢 | 因 Klaviyo 端的處理,到 Webhook 執行為止可能需要數十分鐘到 1 小時左右。這不是 Lumo 的問題。設定確認請使用 Payload Preview 與測試發送 |
| Flow 沒有發送 | 請確認 Webhook action 是否為 Live(公開)狀態。儲存後有時會回到 Draft |
| 出現驗證錯誤 | 請確認 Webhook 自訂標頭的 Key 與 Value 是否與 「Klaviyo Flow 連線資訊」 中的值一致。重新發行驗證金鑰後,Klaviyo Flow 端的值也需要更新 |
| 發送對象沒有正確帶入 | 請確認 JSON body 中是否包含插入變數 {{ person|lookup:'LINE User ID' }}。以 「Klaviyo Flow 連線資訊」 產生的內容會自動包含 |
| 插入變數沒有被替換 |
{{ data.鍵名 }} 格式的變數為 LINE通知訊息專用。一般的 LINE 訊息發送無法使用 |
| 同一則訊息收到 2 次 | 請確認 JSON body 是否包含重複排除金鑰(idempotencyKey)。從 「Klaviyo Flow 連線資訊」 取得最新的 JSON 並重新貼上,即可自動防止重複發送 |
| 商品卡片沒有顯示商品 | 熱銷的饋給只會顯示有銷售實績的商品。銷售資料較少的商店請改用「新品」的饋給或備援商品。內容饋給需要與 Shopify 商店進行商品資料同步(在 Shopify 端安裝 Lumo 應用程式) |