Mẫu tin nhắn

Bạn cần dùng mẫu tin nhắn để bắt đầu cuộc trò chuyện về marketing, tiện ích và xác thực. Những cuộc trò chuyện này có thể là tin nhắn chăm sóc khách hàng hoặc lời nhắc cuộc hẹn, thông tin cập nhật về thanh toán hoặc vận chuyển, thông báo và hơn thế nữa.

Yêu cầu

  • Mẫu tin nhắn phải được phê duyệt thì mới có thể dùng để bắt đầu cuộc trò chuyện. Tìm hiểu thêm.
  • Khách hàng phải chọn nhận tin nhắn từ doanh nghiệp bạn thì bạn mới có thể bắt đầu cuộc trò chuyện về marketing, tiện ích và xác thực với khách hàng đó. Tìm hiểu thêm.

Hạng mục mẫu được hỗ trợ

Hãy xem phần Hạng mục.

Dịch thuật

Khi gửi mẫu tin nhắn, bạn cần chỉ định ngôn ngữ bằng trường language. Doanh nghiệp của bạn chịu trách nhiệm cung cấp mọi bản dịch mà bạn muốn sử dụng.

Ngôn ngữ được hỗ trợ

Ngôn ngữ được hỗ trợ

Các ngôn ngữ sau đây hỗ trợ mẫu tin nhắn.

Ngôn ngữ

Tiếng Hà Lan ở Nam Phi

af

Tiếng Albania

sq

Tiếng Ả Rập

ar

Tiếng Azerbaijan

az

Tiếng Bengali

bn

Tiếng Bungari

bg

Tiếng Catalan

ca

Tiếng Trung (CHN)

zh_CN

Tiếng Trung (HKG)

zh_HK

Tiếng Trung (TAI)

zh_TW

Tiếng Croatia

hr

Tiếng Séc

cs

Tiếng Đan Mạch

da

Tiếng Hà Lan

nl

Tiếng Anh

en

Tiếng Anh (UK)

en_GB

Tiếng Anh (US)

vi_VN

Tiếng Estonia

et

Tiếng Philipin

fil

Tiếng Phần Lan

fi

Tiếng Pháp

fr

Tiếng Đức

de

Tiếng Hy Lạp

el

Tiếng Gujarati

gu

Tiếng Hausa

ha

Tiếng Do Thái

he

Tiếng Hindi

hi

Tiếng Hungary

hu

Tiếng Indonesia

id

Tiếng Ai-len

ga

Tiếng Ý

it

Tiếng Nhật

ja

Tiếng Kannada

kn

Tiếng Kazakh

kk

Tiếng Hàn

ko

Tiếng Lào

lo

Tiếng Latvia

lv

Tiếng Litva

lt

Tiếng Macedonia

mk

Tiếng Malay

ms

Tiếng Malayalam

ml

Tiếng Marathi

mr

Tiếng Na Uy

nb

Tiếng Ba Tư

fa

Tiếng Ba Lan

pl

Tiếng Bồ Đào Nha (BR)

pt_BR

Tiếng Bồ Đào Nha (POR)

pt_PT

Tiếng Punjab

pa

Tiếng Rumani

ro

Tiếng Nga

ru

Tiếng Serbia

sr

Tiếng Slovak

sk

Tiếng Slovenia

sl

Tiếng Tây Ban Nha

es

Tiếng Tây Ban Nha (ARG)

es_AR

Tiếng Tây Ban Nha (SPA)

es_ES

Tiếng Tây Ban Nha (MEX)

es_MX

Tiếng Swahili

sw

Tiếng Thụy Điển

sv

Tiếng Tamil

ta

Tiếng Telugu

te

Tiếng Thái

th

Tiếng Thổ Nhĩ Kỳ

tr

Tiếng Ukraina

uk

Tiếng Urdu

ur

Tiếng Uzbek

uz

Tiếng Việt

vi

Zulu

zu

Gói ngôn ngữ

Mẫu tin nhắn được lưu trữ trong các gói ngôn ngữ. Gói ngôn ngữ là một nhóm gồm các thành phần mẫu tin nhắn của một ngôn ngữ/địa phương cụ thể. Nếu doanh nghiệp hỗ trợ ít nhất một bản dịch cho ngôn ngữ/địa phương nào đó, gói cho ngôn ngữ/địa phương đó sẽ được tạo.

Vùng tên mẫu tin nhắn là một nhóm gồm các gói ngôn ngữ của một doanh nghiệp cụ thể.

Tùy chọn chính sách ngôn ngữ

Nếu bạn gửi một mẫu tin nhắn khi trường language: policy được đặt là giá trị mặc định deterministic, WhatsApp sẽ gửi mẫu tin nhắn này bằng chính ngôn ngữ và địa phương được yêu cầu. Sau đó, thiết bị sẽ truy vấn máy chủ để biết gói ngôn ngữ của ngôn ngữ cụ thể đó.

Khi nhận được tin nhắn này, thiết bị sẽ làm như sau:

  • Kiểm tra chính sách/mã - Trong "policy": "deterministic""code": "en", có gói en nào được lưu vào bộ nhớ đệm trên thiết bị không?
    • Nếu có, thiết bị sẽ chuyển sang Kiểm tra thành phần.
    • Nếu không, có thể tìm thấy gói en trên máy chủ không?
      • Nếu có, thiết bị sẽ cập nhật bộ nhớ đệm trên thiết bị rồi chuyển sang Kiểm tra thành phần.
      • Nếu không, thiết bị sẽ ghi lỗi structure_unavailable mà máy chủ trả về qua Webhook vào nhật ký và sẽ không có tin nhắn nào hiển thị trên thiết bị.

  • Kiểm tra thành phần - Thành phần "element": "hello_world" có tồn tại không?
    • Nếu có, thiết bị sẽ giải nén các thông số và hiển thị tin nhắn trên thiết bị.
    • Nếu không:
      • Nếu gói ngôn ngữ nằm trong bộ nhớ đệm trên thiết bị, thiết bị sẽ tải gói en mới nhất xuống từ máy chủ rồi thực hiện lại bước Kiểm tra thành phần.
      • Nếu gần đây bạn đã tải gói ngôn ngữ xuống từ máy chủ, thiết bị sẽ ghi lỗi structure_unavailable mà máy chủ trả về qua Webhook vào nhật ký và sẽ không có tin nhắn nào hiển thị trên thiết bị.

Cài đặt ngôn ngữ/địa phương trên thiết bị sẽ bị bỏ qua hoàn toàn.

Nếu nội dung bạn yêu cầu không tồn tại thì có thể phát sinh sự cố khi sử dụng chính sách deterministic. Hãy đảm bảo:

  • Vùng tên chính xác
  • Tên thành phần chính xác
  • Có bản dịch ngôn ngữ/địa phương cho thành phần đó
  • Số lượng thông số được gửi khớp với số lượng mà bạn chỉ định trong mẫu tin nhắn

Bản địa hóa

Mẫu tin nhắn hỗ trợ tính năng bản địa hóa có thể dùng ngay bằng cách bản địa hóa tin nhắn theo cài đặt ngôn ngữ trên thiết bị.

Thông số có thể bản địa hóa

Mẫu có các thông số sẽ tự động được đưa vào tin nhắn. Đối với ví dụ trong tài liệu này, mẫu tin nhắn sẽ có dạng như sau:

"You made a purchase for {{1}} using a credit card ending in {{2}}."

Đối với "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e""element_name": "purchase_with_credit_card", giá trị đầu tiên mà bạn liệt kê sẽ thay thế biến {{1}} trong tin nhắn mẫu, còn giá trị thứ hai mà bạn liệt kê sẽ thay thế biến {{2}}.

Số thông số chuyển vào phần tải dữ liệu phải khớp với số thông số trong đối tượng template. Nếu không, bạn sẽ nhận được lệnh gọi lại thông báo rằng đã xảy ra sự cố khi hiển thị mẫu tin nhắn.

Một số thông số sau đây (ví dụ: date_time hoặc currency) có thể được bản địa hóa để hiển thị phù hợp theo tùy chọn ngôn ngữ và địa phương của người dùng. Nếu không bản địa hóa được thông số, thiết bị sẽ đặt mặc định là fallback_value.

Nếu bạn cần chỉ định đơn vị tiền tệ và ngày ngoài fallback_value, hãy sử dụng các đối tượng currencydate_time. Nhờ đó, ứng dụng có thể bản địa hóa dữ liệu một cách tối ưu theo phương thức phù hợp nhất và chỉ đặt mặc định là fallback_value khi không bản địa hóa được dữ liệu.

Các tùy chọn localizable_params được trình bày trong bảng bên dưới:

Thông số

TênMô tả

fallback_value

loại: Chuỗi

Bắt buộc.

Văn bản mặc định nếu không bản địa hóa được. Tất cả các thông số bản địa hóa đều phải có giá trị dự phòng. Khi chỉ định văn bản, bạn chỉ cần chỉ định giá trị dự phòng.

currency

loại: đối tượng currency

Không bắt buộc.

Nếu được sử dụng, đối tượng currency sẽ chứa các thông số currency_codeamount_1000 bắt buộc.

date_time

loại: đối tượng date_time

Không bắt buộc.

Nếu đối tượng date_time được sử dụng, bạn cần phải xác định thêm ngày và giờ. Hãy xem ví dụ bên dưới để biết 2 tùy chọn.

Đối tượng currency

Ứng dụng API WhatsApp Business sẽ tìm cách định dạng đơn vị tiền tệ theo cài đặt bản địa hóa đã chỉ định.

TênMô tả

currency_code

loại: Chuỗi

Bắt buộc.

Mã đơn vị tiền tệ theo định nghĩa trong ISO 4217.

amount_1000

loại: Số nguyên

Bắt buộc.

Số tiền nhân với 1000.

Ví dụ

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

Đối tượng date_time

Ứng dụng API WhatsApp Business sẽ tìm cách định dạng ngày/giờ theo cài đặt bản địa hóa đã chỉ định. Định dạng ngày và giờ được hỗ trợ bao gồm:

  • Thời gian thành phần - Thời gian được thu thập từ các thành phần (tức là ngày trong tuần, tháng, giờ, v.v.) Thời gian được chỉ định sẽ giống nhau, bất kể múi giờ của ứng dụng.
  • Thời gian Unix - Thời gian sẽ hiển thị phụ thuộc vào múi giờ của ứng dụng.

DateTime

TênMô tả

component

loại: DateTimeComponent

Bắt buộc nếu không có unix_epoch.

Ngày/giờ theo thành phần.

unix_epoch

loại: DateTimeUnixEpoch

Bắt buộc nếu không có component.

Ngày/giờ theo thời gian Unix.

Bắt buộc phải có ít nhất một trong các trường sau: component hoặc unix_epoch. Nếu được sử dụng thì chỉ một trong các trường này có thể hiển thị.

DateTimeComponent

TênMô tả

day_of_week

loại: Chuỗi

Không bắt buộc.

Nếu khác với giá trị được lấy từ ngày (nếu được chỉ định), hãy sử dụng giá trị phái sinh. Cả chuỗi và số đều được chấp nhận.
Tùy chọn:"MONDAY", 1, "TUESDAY", 2, "WEDNESDAY", 3, "THURSDAY", 4, "FRIDAY", 5, "SATURDAY", 6, "SUNDAY", 7

year

loại: Số nguyên

Không bắt buộc.

Năm.

month

loại: Số nguyên

Không bắt buộc.

Tháng.

day_of_month

loại: Số nguyên

Không bắt buộc.

Ngày trong tháng.

hour

loại: Số nguyên

Không bắt buộc.

Giờ.

minute

loại: Số nguyên

Không bắt buộc.

Phút.

calendar

loại: Chuỗi

Không bắt buộc.

Loại lịch.
Tùy chọn:GREGORIAN, SOLAR_HIJRI

Ví dụ

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

DateTimeUnixEpoch sẽ không được dùng nữa. Từ giờ trở đi, DateTimeComponent sẽ là thông số mặc định. Vui lòng thay đổi mã của bạn để tránh gặp vấn đề.

TênMô tả

timestamp

loại: Số nguyên

Bắt buộc.

Nhãn thời gian Unix tính bằng giây. Trường này dự kiến sẽ không được dùng nữa.

Bước tiếp theo

Tài liệu này cung cấp thông tin tham khảo về các mẫu tin nhắn. Để biết hướng dẫn về cách tạo và gửi mẫu, hãy xem phần Gửi mẫu tin nhắn. Để biết toàn bộ thông số mà bạn có thể dùng trong mẫu tin nhắn, hãy xem phần Tin nhắn, Mẫu tin nhắn.

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager