JOY Loyalty · Notification · Multi-currency

Email thông báo đa ngôn ngữ theo ngôn ngữ của khách hàng

Mỗi khách hàng nhận email loyalty (earn points, tier, redeem, birthday…) bằng đúng ngôn ngữ của họ — tự động, không cần merchant dịch tay.

Ticket: JOY-260513-gA2AP6 Trạng thái: Implemented · Đã verify trên dev Pending: QA + deploy staging

1 Vấn đề

Vì sao cần làm.

Hiện tại Joy gửi email thông báo bằng một ngôn ngữ cố định do merchant chọn thủ công. Với store bán nhiều thị trường (ví dụ Jana — 5 market: SK / CZ / PL / HU / HR), merchant chỉ chọn được 1 trong 5 ngôn ngữ → 4/5 nhóm khách nhận email sai ngôn ngữ → open rate giảm, conversion campaign thấp.

Để làm thủ công, merchant phải dịch tay 20+ loại email × N ngôn ngữ — bất khả thi.

2 Giải pháp

Merchant chỉ cần 2 thao tác; phần còn lại Joy tự lo.

① Thêm ngôn ngữ (1 lần)

Merchant thêm ngôn ngữ trong Translations admin (màn hình có sẵn). Joy tự động dịch sẵn nội dung tất cả email cho ngôn ngữ đó.

② Review / chỉnh (tuỳ chọn)

Vào email editor, chọn ngôn ngữ trong dropdown để xem & sửa bản dịch nếu muốn. Có nút gửi test "Preview in language".

Khi gửi đi: Joy tự render email theo ngôn ngữ của từng khách (lấy từ tài khoản Shopify của khách). Khách Pháp nhận bản Pháp, khách Đức nhận bản Đức — trong cùng một campaign.

3 Cách hoạt động

Hai luồng chạy song song.

Luồng A — Khi gửi email cho khách

Ngôn ngữ của khách
Lấy từ tài khoản Shopify (Customer.locale, vd fr-CA)
Joy lấy & lưu locale
Qua đồng bộ khách + tự bổ sung khi cần (webhook Shopify không kèm locale)
Chọn ngôn ngữ
Khớp chính xác → theo ngôn ngữ → biến thể vùng; thiếu thì về ngôn ngữ chính
Email đúng ngôn ngữ
Render bản dịch của email cho khách đó

Luồng B — Khi merchant thêm ngôn ngữ

MC thêm ngôn ngữ
Trong Translations admin
Auto-translate (AI)
Joy dịch toàn bộ ~20 loại email bằng Gemini, chạy nền
Bản dịch sẵn sàng
Lưu theo từng ngôn ngữ, từng loại email
MC review trong editor
Chỉnh tay nếu muốn

4 Trải nghiệm trong Email Editor

Merchant chọn ngôn ngữ ngay trên đầu trình soạn — nội dung & preview đổi theo.

Email editor đang ở ngôn ngữ Vietnamese — nội dung và preview hiển thị tiếng Việt
Editor "Earn points" với dropdown Language: Vietnamese — Subject, nội dung, nút, footer và preview (cột phải) đều render tiếng Việt. Đổi dropdown sang ngôn ngữ khác → toàn bộ nội dung swap theo.

5 Bằng chứng demo

Đã chạy thật end-to-end trên môi trường dev (cùng email "Earn points", đổi locale của khách).

Ngôn ngữTiêu đề email render (biến đã thay)Nguồn
🇬🇧 English (gốc)xidoke: You've earned 100 points!Nội dung gốc
🇻🇳 Tiếng Việtxidoke: Bạn vừa nhận được 100 points!Bản dịch
🇫🇷 Français{{shop_name}}: Vous avez gagné une récompense… (Birthday)Auto-translate (AI)
🇩🇪 Deutsch{{shop_name}}: Sie haben {{earning_points}} verdient!Auto-translate (AI)

Email tiếng Việt render đầy đủ (demo)

xidoke  ·  Cảm ơn bạn đã mua sắm!
🎉 Chúc mừng! Bạn vừa nhận được 100 points từ chương trình Sign up tại xidoke!

Số dư hiện tại của bạn là 100 points. Hãy quay lại cửa hàng và đổi điểm lấy ưu đãi hấp dẫn nhé!
Đổi Points Ngay
Bạn không muốn nhận email này nữa? · Hủy đăng ký tại đây

Biến động ({{earning_points}}, {{shop_name}}, {{earning_program}}) được thay đúng; chỉ phần text được dịch, logic giữ nguyên.

6 Phạm vi & Trạng thái

Đã hoàn thành DONE · dev-verified

  • Đồng bộ ngôn ngữ khách (Customer.locale) vào Joy
  • Tự bổ sung locale khi gửi nếu thiếu (an toàn, 1 lần/khách)
  • Render email theo ngôn ngữ khách + fallback ngôn ngữ chính
  • Auto-translate ~20 loại email khi thêm ngôn ngữ (AI)
  • Dropdown chọn ngôn ngữ trong editor + sửa/preview từng ngôn ngữ
  • Gửi test "Preview in language"
  • Đã qua code-review (max effort), sửa 7 lỗi

Follow-up Polish · không chặn

  • Nhãn "Language" đa ngôn ngữ hoá (i18n) — đang để tiếng Anh tạm
  • Editor bản cũ (legacy V1) chưa có dropdown — chạy ngôn ngữ chính
  • Auto-translate: chuyển sang hàng đợi nền (bền hơn ở production)
  • Email dạng HTML thuần (custom HTML) chưa dịch nội dung body
  • QA đầy đủ + deploy staging để test gửi email thật

7 Ghi chú kỹ thuật (cho BA / Dev)

Chất lượng: review tự động đa-góc (max effort) đã rà & sửa 7 lỗi gồm 1 lỗi ghi đè nội dung gốc khi đang sửa bản dịch; fix quan trọng nhất (lưu bản dịch không đè ngôn ngữ khác) đã verify thực tế.