Cá nhân hóa email bằng Liquid
Trang này liệt kê những gì ReputeCast hỗ trợ khi cá nhân hóa email bằng Liquid trong tiêu đề, dòng xem trước, nội dung email và URL liên kết của chiến dịch: thẻ cá nhân hóa, bộ lọc và thẻ Liquid, cùng điều xảy ra khi thiếu giá trị.
ReputeCast kết xuất Liquid bằng engine osteele/liquid (phiên bản 1.9.2), một lần cho mỗi người nhận vào lúc gửi. Mẫu giao dịch thì dùng các biến bạn khai báo cho từng mẫu; xem mẫu giao dịch.
Cú pháp
Phần tiêu đề “Cú pháp”| Dạng | Ví dụ | Kết quả in ra |
|---|---|---|
| Biến | {{ first_name }} |
Tên của liên hệ, hoặc không in gì khi tên trống. |
| Biến có giá trị dự phòng | {{ first_name | default: "there" }} |
Tên, hoặc there khi tên trống. |
| Giá trị dự phòng dạng ngắn | {{ first_name | "there" }} |
Như trên: ReputeCast viết lại thành default: "there". |
| Bộ lọc, áp dụng lần lượt từ trái sang phải | {{ first_name | downcase | capitalize }} |
Ana với giá trị ANA. |
| Thẻ | {% if plan == "pro" %}…{% endif %} |
Phần nằm giữa hai thẻ khi điều kiện đúng. |
| Kiểm soát khoảng trắng | {{- first_name -}} |
Giá trị, đã bỏ dấu cách và dấu xuống dòng xung quanh. |
Tên biến, tên bộ lọc và thẻ Liquid đều viết thường. Chèn thẻ cá nhân hóa từ thanh công cụ văn bản bằng Chèn thẻ cá nhân hóa; thao tác này tự thêm giá trị dự phòng gợi ý (there cho first_name, free cho trường tùy chỉnh tên plan). Trong chế độ MJML, tab Thẻ liệt kê cùng các thẻ đó; chọn một thẻ để sao chép.
Liên hệ
Phần tiêu đề “Liên hệ”| Biến | Chứa | Ghi chú |
|---|---|---|
first_name, last_name, email |
Tên, họ và địa chỉ email của liên hệ. | Cũng dùng được dưới dạng contact.first_name, contact.last_name, contact.email. |
<field key>, ví dụ plan |
Giá trị của một trường tùy chỉnh của không gian làm việc, theo đúng kiểu của trường (văn bản, số, ngày, boolean hoặc lựa chọn). | Cũng dùng được dưới dạng contact.<field key>. Khóa chỉ gồm chữ thường, chữ số và _, và bắt đầu bằng một chữ cái. |
Các dữ liệu khác của liên hệ, như công ty, quốc gia, ngôn ngữ, thẻ hay nhóm tương tác, không có sẵn dưới dạng biến. Để hiện nội dung khác nhau cho từng liên hệ, hãy dùng nội dung có điều kiện.
Liên kết ReputeCast điền riêng cho từng người nhận
Phần tiêu đề “Liên kết ReputeCast điền riêng cho từng người nhận”| Biến | Chứa | Ghi chú |
|---|---|---|
unsubscribe_url |
Trang hủy đăng ký riêng của người nhận. | Khối Chân thư + hủy đăng ký liên kết đến trang này; kiểm tra nội dung yêu cầu email có liên kết hủy đăng ký nhìn thấy được. |
preferences_url |
Trung tâm tùy chọn của người nhận. | |
view_in_browser_url |
Bản email trên web của riêng người nhận. | |
upgrade_url |
Trang nâng cấp riêng của người nhận. | Chỉ dùng với gói trả phí. Không bao giờ được theo dõi lượt nhấp. |
manage_subscription_url |
Trang để người nhận quản lý thuê bao trả phí. | Chỉ dùng với gói trả phí. Không bao giờ được theo dõi lượt nhấp. |
Trong thư gửi thử, các liên kết này trỏ đến trang thử, còn trong bản xem trước của trình soạn thảo chúng hiện “liên kết riêng cho từng người nhận”.
Quyền truy cập trả phí
Phần tiêu đề “Quyền truy cập trả phí”| Biến | Chứa | Ghi chú |
|---|---|---|
paid.tier |
Tên gói trả phí của người đọc. | Mọi giá trị paid.* đều trống với người đăng ký miễn phí. |
paid.status |
Trạng thái thuê bao của người đọc, ví dụ Active (Đang hoạt động trong email tiếng Việt). | |
paid.price |
Giá người đọc trả, ví dụ $80/year. |
|
paid.renews_at |
Ngày gia hạn. | |
paid.ends_at |
Ngày hết quyền truy cập, với thuê bao đã hủy. |
Chương trình giới thiệu
Phần tiêu đề “Chương trình giới thiệu”Các biến này trống với người đọc không tham gia chương trình giới thiệu; khối Giới thiệu tự ẩn với họ.
| Biến | Chứa | Ghi chú |
|---|---|---|
referral.link |
Liên kết giới thiệu của người đọc. | |
referral.code |
Mã giới thiệu của người đọc. | |
referral.hub_url |
Trang phần thưởng của người đọc. | |
referral.count |
Số lượt giới thiệu đã được tính. | |
referral.pending |
Số lượt giới thiệu chưa được tính (vẫn đang trong thời gian chờ). | |
referral.next_milestone.count |
Số lượt giới thiệu mà mốc thưởng tiếp theo cần. | |
referral.next_milestone.reward |
Phần thưởng của mốc thưởng tiếp theo. | |
referral.to_next |
Số lượt giới thiệu còn thiếu để nhận phần thưởng tiếp theo. | |
referral.rewards |
Các phần thưởng người đọc đã đạt được. |
Email mốc thưởng còn có reward.name, reward.description, reward.note, reward.download_url, reward.code, reward.claim_url, reward.expires_at, reward.url và reward.image_url cho phần thưởng đang được gửi.
Khối Đề xuất
Phần tiêu đề “Khối Đề xuất”recommendations.show, recommendations.url và recommendations.items chứa dữ liệu của khối Đề xuất. Mỗi mục có id, name, description, kind, initials, host, button, logo_url và url. Xem đề xuất bản tin khác.
Bản tin định kỳ
Phần tiêu đề “Bản tin định kỳ”Mẫu bản tin tổng hợp có dữ liệu của số bản tin. Dữ liệu này giống nhau với mọi người nhận và được điền khi số bản tin được tạo.
| Biến | Chứa | Ghi chú |
|---|---|---|
feed.title |
Tựa đề của nguồn cấp. | |
feed.url |
Địa chỉ của nguồn cấp. | |
issue.number |
Số thứ tự của số bản tin. | |
issue.date |
Ngày gửi. | |
issue.items |
Các bài viết của số bản tin. Mỗi bài có title, url, date, author, image, excerpt và categories. |
Lặp bằng {% for item in issue.items %}, hoặc dùng issue.items.size và issue.items.first.title. |
Biến bạn không tự gõ
Phần tiêu đề “Biến bạn không tự gõ”Các biến có tên bắt đầu bằng rc_ (rc_poll_…, rc_survey_…, rc_open_url, rc_link_…) do khối Bình chọn, liên kết khảo sát và tính năng theo dõi của ReputeCast tạo ra. Chúng thay đổi theo từng người nhận; hãy để nguyên.
Không có biến workspace.* hay campaign.*. Địa chỉ bưu chính trong chân thư là văn bản thường, lấy từ địa chỉ ở chân thư của không gian làm việc trong Cài đặt, rồi Người gửi.
Bộ lọc
Phần tiêu đề “Bộ lọc”Bộ lọc thay đổi một giá trị: {{ value | filter }} hoặc {{ value | filter: argument, argument }}. ReputeCast hỗ trợ các bộ lọc tiêu chuẩn của engine và bổ sung with_query.
| Bộ lọc | Ví dụ | Tác dụng |
|---|---|---|
default |
{{ first_name | default: "there" }} |
Dùng giá trị dự phòng khi giá trị bị thiếu, trống hoặc là false. Giá trị chỉ gồm dấu cách không được xem là trống. Thêm allow_false: true để giữ false. |
with_query |
{{ upgrade_url | with_query: "offer", "FALL26" }} |
Đặt một tham số truy vấn trên liên kết http hoặc https và giữ nguyên mọi phần khác. Có thể nối nhiều lần. |
append, prepend |
{{ first_name | append: "," }} |
Thêm văn bản vào sau hoặc trước giá trị. |
upcase, downcase, capitalize |
{{ first_name | capitalize }} |
Đổi chữ hoa, chữ thường. capitalize chuyển phần còn lại của văn bản thành chữ thường. |
strip, lstrip, rstrip, strip_html, strip_newlines, newline_to_br |
{{ bio | strip_html }} |
Bỏ dấu cách, thẻ HTML hoặc dấu xuống dòng, hoặc đổi dấu xuống dòng thành <br>. |
replace, replace_first, replace_last, remove, remove_first, remove_last |
{{ company_name | remove: " Inc." }} |
Thay thế hoặc bỏ một phần văn bản. |
truncate, truncatewords, slice, split |
{{ headline | truncate: 40 }} |
Rút ngắn hoặc cắt văn bản. |
escape, escape_once, url_encode, url_decode, handleize |
{{ city | url_encode }} |
Làm văn bản an toàn cho HTML hoặc URL, hoặc đổi thành chuỗi định danh viết thường nối bằng gạch nối. |
plus, minus, times, divided_by, modulo, abs, ceil, floor, round, at_least, at_most |
{{ points | plus: 10 }} |
Tính toán trên số. |
pluralize |
{{ referral.to_next | pluralize: "referral", "referrals" }} |
Chọn từ số ít khi số bằng 1, ngược lại chọn từ số nhiều. |
date |
{{ trial_ends | date: "%d %B %Y" }} |
Định dạng ngày bằng mã strftime. |
size, first, last, join, map, where, sort, sort_natural, uniq, reverse, compact, concat, sum |
{{ issue.items | map: "title" | join: ", " }} |
Xử lý danh sách, như các mục của một bản tin tổng hợp. |
json, inspect, type |
{{ contact | json }} |
In giá trị dưới dạng JSON hoặc cho biết kiểu của nó, để gỡ lỗi khi gửi thử. |
Giá trị được chèn đúng như khi lưu, không thoát ký tự HTML. Hãy thêm | escape cho trường tùy chỉnh có thể chứa <, > hoặc &.
Thẻ Liquid
Phần tiêu đề “Thẻ Liquid”| Thẻ | Công dụng |
|---|---|
if, elsif, else, unless |
Hiện văn bản khi điều kiện đúng, ví dụ {% if paid.tier != "" %}. |
case, when, else |
Chọn một trong nhiều đoạn văn bản theo giá trị. |
for (với else, limit, offset, reversed, khoảng giá trị), break, continue, cycle, tablerow |
Lặp qua một danh sách. Trong vòng lặp có sẵn forloop.index, forloop.first, forloop.last và forloop.length. |
assign, capture |
Lưu một giá trị hoặc một đoạn văn bản vào biến để dùng sau. |
comment, raw |
Để lại ghi chú không bao giờ được in ra, hoặc in mã Liquid dưới dạng văn bản. |
Không có include và render: email không tải được mẫu khác, và dùng một trong hai thẻ này là lỗi cú pháp ở dòng chứa nó.
Giá trị thiếu và lỗi
Phần tiêu đề “Giá trị thiếu và lỗi”| Tình huống | Điều xảy ra |
|---|---|
| Liên hệ không có giá trị | Thẻ không in gì, hoặc in giá trị dự phòng. Bản xem trước của trình soạn thảo cho biết có bao nhiêu người nhận không có tên và sẽ thấy giá trị dự phòng. |
| Thẻ không phải là trường đã biết và không có giá trị dự phòng | Trình soạn thảo cảnh báo “{{ key }} không phải là trường liên hệ; thẻ này sẽ không hiện gì”. Hãy kiểm tra chính tả, hoặc thêm giá trị dự phòng. |
Lỗi cú pháp (thẻ chưa đóng, include, gõ sai một thẻ) |
Trình soạn thảo hiện một mục Chặn nêu rõ phần bị lỗi (tiêu đề, dòng xem trước hoặc nội dung) và số dòng. Lượt gửi không bắt đầu được khi phần cá nhân hóa chưa kết xuất được. Xem sửa cảnh báo nội dung. |
| Tên bộ lọc không tồn tại | Kiểm tra cú pháp không phát hiện lỗi này. Bản xem trước hiện phần bị lỗi dưới dạng văn bản thô kèm lỗi, và lúc gửi, mọi thư dùng bộ lọc đó đều thất bại. Hãy đối chiếu tên bộ lọc với bảng ở trên. |
| Email sau khi kết xuất lớn hơn 4 MB | Thư thất bại với lỗi “the rendered email is larger than 4 MB”. |
Vòng lặp for trên một khoảng giá trị cố định có hơn 1.000 mục |
Lỗi cú pháp: vòng lặp trên khoảng giá trị bị giới hạn ở 1.000 mục. |
Ghi chú
Phần tiêu đề “Ghi chú”- Xem trước dưới dạng trong bản xem trước điền mọi thẻ theo một liên hệ thật, một liên hệ không có tên, hoặc một liên hệ Đang hoạt động ngẫu nhiên; khung Cá nhân hóa liệt kê từng thẻ kèm giá trị của nó. Liên hệ thật cần
subscribers:view. Xem thiết kế email trong trình soạn thảo. - Thẻ cá nhân hóa cũng dùng được trong địa chỉ liên kết, ví dụ
https://example.com/welcome?ref={{ email | url_encode }}. Kiểm tra nội dung bỏ qua các liên kết chứa{{hoặc{%. - Bản xem trước lấy tên của liên hệ đến dấu cách đầu tiên; còn khi gửi, tên được dùng đúng như đã lưu.