Thêm cả LINE vào một webhook duy nhất: cách một nhóm ở Tokyo gộp tin nhắn đến từ LINE và WhatsApp — UnifyPort
Cuối tháng 4 năm 2026, một thương hiệu chăm sóc da có trụ sở tại Tokyo, chỉ với 4 nhân sự, đang hoàn tất kế hoạch cho chiến dịch đầu hè — một dòng sản phẩm chống nắng phiên bản giới hạn, đi kèm kênh chăm sóc khách hàng và chăm sóc khách hàng thân thiết dựa trên LINE. Với người tiêu dùng Nhật Bản, LINE gần như là kênh mặc định để liên hệ với một thương hiệu. Kế hoạch rất đơn giản: khách hàng nhắn tin vào tài khoản LINE của thương hiệu để hỏi về sản phẩm mới, thời gian có hàng trở lại hoặc trạng thái đơn hàng, và những tin nhắn này sẽ được định tuyến vào hàng đợi xử lý hỗ trợ mà nhóm đã có sẵn.
“Hàng đợi đã có sẵn” đó chính là WhatsApp. Thương hiệu này nhập bao bì từ các nhà cung cấp ở Trung Quốc và Đông Nam Á, toàn bộ trao đổi với nhà cung cấp diễn ra qua WhatsApp, đã được kết nối với backend qua UnifyPort từ đầu năm. Trên giấy tờ, việc thêm LINE trông giống hệt một nhiệm vụ tương tự: kết nối tài khoản, nhận tin nhắn, định tuyến.
Nhưng không phải vậy — vì lộ trình chính thức của LINE không bắt đầu bằng “kết nối tài khoản”.
Hai tuần trước khi ra mắt, va vào tường 60 ngày làm việc
Để nhận tin nhắn theo cách lập trình trên LINE, Messaging API yêu cầu phải có một LINE Official Account. Nhóm đã đăng ký vào đầu tháng 5, nghĩ rằng đây chỉ là một quy trình phê duyệt thông thường. Nhưng tài liệu chính thức của LINE ghi rõ: việc xác minh một Official Account đã xác thực có thể mất tới 60 ngày làm việc — còn Official Account chưa xác thực thì bị giới hạn ở 500 người theo dõi, một ngưỡng mà một chiến dịch theo mùa có độ lan tỏa thực sự sẽ chạm tới ngay trong tuần đầu tiên.
60 ngày làm việc tính từ đầu tháng 5 vượt xa khung thời gian ra mắt chiến dịch, thậm chí vượt qua cả mùa bán hàng của sản phẩm chống nắng. Trước mắt nhóm là những lựa chọn quen thuộc: ra mắt mà không có hỗ trợ trên LINE (trong một thị trường mà LINE gần như đồng nghĩa với chăm sóc khách hàng), ra mắt với Official Account chưa xác thực rồi va vào giới hạn người theo dõi đúng lúc lượng truy cập đạt đỉnh, hoặc tìm một đơn vị đại lý trong nước để xử lý đăng ký gấp — với chi phí và thời gian mà cả hai nhà đồng sáng lập đều không thể ước tính được.
Không lựa chọn nào trong số này thực sự liên quan đến công nghệ. Logic xử lý ở backend — nhận một tin nhắn, tra cứu đơn hàng, trả lời — gần như giống y hệt chín dòng logic định tuyến mà họ đã viết cho WhatsApp. Điểm nghẽn thực sự nằm hoàn toàn ở hàng đợi xét duyệt, giữa “chúng tôi đã có tài khoản LINE” và “backend nhìn thấy tin nhắn gửi đến tài khoản đó”.
Đổi góc nhìn: cách kết nối WhatsApp đã chứng minh sẵn mô hình này
Lập trình viên chính của nhóm đã kết nối WhatsApp qua UnifyPort từ vài tháng trước — không phải qua Cloud API của Meta, mà qua giao diện nhận tin nhắn không chính thức của UnifyPort: kết nối trực tiếp với một tài khoản WhatsApp đang dùng, đưa sự kiện message.received về webhook, không cần Business Verification. Quyết định đó hồi đó được đưa ra vì một lý do hoàn toàn khác với LINE (số WhatsApp dùng để liên hệ nhà cung cấp không cần bất kỳ tính năng marketing gửi đi nào — chỉ cần nhận tin ổn định). Nhưng chính trải nghiệm đó đã xác nhận điều mà nhóm cần lúc này cho LINE: cơ chế xác minh/Official Account kiểm soát khả năng gửi đi quy mô lớn, không phải việc tin nhắn đến có được chuyển tới hay không.
Khi khách hàng là người chủ động nhắn tin đến tài khoản LINE của thương hiệu — đúng là toàn bộ bối cảnh của trường hợp này — việc tin nhắn đó được chuyển tới backend không yêu cầu thương hiệu phải sở hữu một Official Account đã xác thực với đủ số lượng người theo dõi. Chính giao diện nhận tin không chính thức vẫn đang âm thầm xử lý WhatsApp hoàn toàn có thể kết nối tài khoản LINE theo cách tương tự.
Thêm LINE vào webhook đang có sẵn
Nhóm kết nối tài khoản LINE với UnifyPort, song song với tài khoản WhatsApp đã được cấu hình từ trước — không có endpoint webhook mới, không có cơ chế ký thứ hai, không cần lịch xoay khóa xác thực riêng. Cả hai tài khoản đều gửi dữ liệu về cùng một URL POST /webhook, được ký bằng cùng một khóa bí mật HMAC-SHA256:
Khách LINE (Nhật Bản) ──┐
Nhà cung cấp WhatsApp (Trung Quốc/ĐNA) ──┼──► UnifyPort ──► POST /webhook (backend hiện có)
┘ X-UnifyPort-Signature: sha256=...
Một tin nhắn hỏi về thời gian có hàng trở lại từ khách trên LINE, và một tin nhắn từ nhà cung cấp trên WhatsApp, sẽ đến với cấu trúc hoàn toàn giống nhau — chỉ khác ở trường provider:
{
"event": "message.received",
"account_id": "acct_3Tn8qZ",
"provider": "line",
"from": "U2c91af77b8d4e...",
"text": "新作の日焼け止め、再入荷はいつ頃ですか?",
"timestamp": 1748332800,
"message_id": "line_msg_7e2a91"
}
Bộ xử lý định tuyến hiện có của nhóm — vốn đã phân luồng tin nhắn từ nhà cung cấp WhatsApp vào hàng đợi mua hàng — chỉ cần thêm một nhánh mới: nếu provider == "line", định tuyến vào hàng đợi chăm sóc khách hàng. Không cần phân tích cấu trúc dữ liệu mới, không cần triển khai lại việc xác minh chữ ký, không cần viết thêm logic chống trùng lặp hay thử lại riêng. Logic xử lý WhatsApp đã chạy ổn định từ đầu năm chỉ cần thêm một điều kiện để “đón” LINE.
Chạy được trước khi chiến dịch ra mắt, không phải sau đó
Kết nối LINE đi vào hoạt động ngay trong ngày được thiết lập — khoảng hai tuần trước khi chiến dịch chính thức ra mắt, đủ thời gian để kiểm thử các quy tắc định tuyến với lưu lượng thật từ giai đoạn ra mắt thử nghiệm. Khi dòng sản phẩm chống nắng chính thức lên kệ vào đầu tháng 6, mọi câu hỏi của khách hàng gửi qua LINE — từ tin nhắn đầu tiên — đã được tự động phân loại và định tuyến, cùng hàng đợi với các kênh khác.
Đơn đăng ký LINE Official Account mà nhóm nộp từ đầu tháng 5 vẫn đang chờ duyệt vào thời điểm chiến dịch ra mắt. Đơn này được phê duyệt khoảng bảy tuần sau đó. Nhưng đến lúc đó, luồng nhận tin LINE đã chạy trong môi trường thực tế suốt cả thời gian chiến dịch — kết quả xét duyệt không còn cản trở điều gì nữa. Nếu sau này Official Account được phê duyệt với các tính năng nhóm mong muốn (rich menu, huy hiệu chính thức, các chiến dịch gửi đi cho lượng người theo dõi lớn hơn), họ có thể thêm vào mà không cần đụng đến luồng nhận tin — vì luồng nhận tin chưa bao giờ là phần bị chặn.
Mô hình có thể tái sử dụng
Điều thực sự tạo nên hiệu quả không phải là một thủ thuật riêng cho LINE — mà là nhóm đã thấm nhuần từ kinh nghiệm với WhatsApp một nguyên tắc: nhận tin nhắn đến và quyền gửi đi quy mô lớn là hai vấn đề khác nhau, do hai cơ chế kiểm soát khác nhau quản lý. Khi đã có một webhook nhận tin được chuẩn hóa cho một nền tảng, việc thêm một nền tảng thứ hai phần lớn chỉ là gắn thêm một tài khoản vào cùng kết nối đó, và thêm một nhánh vào bộ xử lý đã chạy sẵn.
Với các nhóm ở Nhật Bản, Thái Lan, Đài Loan — hay bất kỳ nơi nào LINE là kênh khách hàng chính — câu hỏi thực tế không phải là “liệu chúng ta có kịp được phê duyệt LINE Official Account trước khi chiến dịch ra mắt không”, mà là “ngay từ ngày đầu chúng ta có cần khả năng gửi đi quy mô lớn không, hay chỉ cần biết khách hàng đang hỏi gì”. Nếu là trường hợp thứ hai, kết nối một tài khoản LINE với UnifyPort là việc có thể hoàn thành trong một ngày. Và nếu WhatsApp, Zalo, TikTok hoặc X cũng đã dùng UnifyPort, đó chính là cùng một webhook — tin nhắn đã được gửi về đó từ trước rồi.
Hàng đợi xét duyệt chính thức vẫn đang chạy ở phía sau. Chỉ là nó không còn nằm trên đường găng nữa.