Mô hình định giá theo cuộc trò chuyện đã thay đổi. Hãy xem bài viết Định giá để tìm hiểu cách hoạt động của mô hình định giá theo cuộc trò chuyện mới.
Ngoài ra, chế độ hiển thị của metric_types
đã thay đổi kể từ ngày 01/07/2023. Vui lòng xem bảng Dữ liệu phân tích cuộc trò chuyện để biết thêm chi tiết.
Mẫu xác thực
Kể từ ngày 01/04/2024, bạn không thể gửi, chỉnh sửa hay kháng nghị bất kỳ mẫu xác thực hiện có nào không phải là mẫu xác thực có nút mật khẩu một lần.
Chúng tôi sẽ cung cấp mẫu xác thực tại Ấn Độ vào ngày 01/07/2024.
Mẫu được sử dụng khi gửi mẫu tin nhắn bằng API Đám mây, do Meta cung cấp hoặc API Tại chỗ. API Đám mây xem xét các mẫu và thông số biến bằng công nghệ máy học để bảo vệ tính bảo mật và tính toàn vẹn của dịch vụ API Đám mây. Khi API Đám mây xem xét các mẫu và văn bản biến, hệ thống sẽ không chia sẻ thông tin với WhatsApp.
Bạn có thể tạo mẫu bằng API Quản lý doanh nghiệp hoặc Trình quản lý WhatsApp Business. Số lượng mẫu mà một Tài khoản WhatsApp Business có thể có được xác định theo doanh nghiệp mẹ của tài khoản đó. Nếu doanh nghiệp mẹ chưa được xác minh, mỗi Tài khoản WhatsApp Business của doanh nghiệp này sẽ chỉ có 250 mẫu. Tuy nhiên, nếu doanh nghiệp mẹ đã được xác minh và ít nhất một Tài khoản WhatsApp Business của doanh nghiệp này sở hữu số điện thoại doanh nghiệp có tên hiển thị đã được phê duyệt, mỗi Tài khoản WhatsApp Business của doanh nghiệp có thể có tối đa 6.000 mẫu.
Bạn sẽ cần có:
Bạn có thể thêm mẫu tin nhắn bằng một ngôn ngữ cụ thể khi tạo mẫu. Các mẫu này được tính vào giới hạn của bạn. Đảm bảo tính nhất quán khi cung cấp bản dịch. Hãy xem bài viết Tại sao tôi gặp lỗi "không có cấu trúc" trong lệnh gọi lại? trong trung tâm trợ giúp để biết thêm thông tin.
Gửi yêu cầu POST đến điểm cuối Tài khoản WhatsApp Business > Mẫu tin nhắn để tạo mẫu.
POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates
{ "name": "<NAME>", "category": "<CATEGORY>", "allow_category_change": <ALLOW_CATEGORY_CHANGE>, "language": "<LANGUAGE>", "components": [<COMPONENTS>] }
Phần giữ chỗ | Mô tả | Giá trị mẫu |
---|---|---|
Chuỗi | Bắt buộc. Tên mẫu. Tối đa 512 ký tự. |
|
Enum | Bắt buộc. Hạng mục của mẫu. Hãy xem phần Hạng mục mẫu ở bên dưới. |
|
Boolean | Không bắt buộc. Đặt là true để cho phép chúng tôi tự động chỉ định hạng mục. Nếu bạn bỏ qua, mẫu có thể bị từ chối do phân loại sai. |
|
Enum | Bắt buộc. Mã ngôn ngữ và địa phương của mẫu. |
|
Chuỗi | Không bắt buộc. Tên chính xác của mẫu trong Thư viện mẫu tiện ích. Tìm hiểu cách tạo mẫu với Thư viện mẫu tiện ích |
|
Mảng đối tượng | Không bắt buộc. Trang web và/hoặc số điện thoại của doanh nghiệp đang được sử dụng trong mẫu. Lưu ý: Đối với các mẫu tiện ích có chứa nút, thuộc tính này là bắt buộc. Tìm hiểu cách tạo mẫu với Thư viện mẫu tiện ích |
|
Mảng đối tượng | Bắt buộc. Các thành phần của mẫu. Hãy xem phần Thành phần của mẫu ở bên dưới. | Hãy xem phần Thành phần của mẫu ở bên dưới. |
Mẫu phải được phân loại là một trong những hạng mục sau đây. Hạng mục được xem xét khi định giá và hạng mục bạn chỉ định sẽ được xác thực khi tạo mẫu.
AUTHENTICATION
MARKETING
UTILITY
Hãy tham khảo tài liệu về Phân loại mẫu của chúng tôi để xác định hạng mục sẽ sử dụng khi tạo mẫu.
Mẫu bao gồm các thành phần tương tác, văn bản và file phương tiện khác nhau, tùy thuộc vào nhu cầu của doanh nghiệp bạn. Hãy tham khảo tài liệu về Thành phần mẫu để biết danh sách tất cả những thành phần có thể sử dụng cùng với các yêu cầu của thành phần đó, cũng như mẫu và truy vấn mẫu.
Khi tạo một mẫu, hãy xác định các thành phần của mẫu đó bằng cách chỉ định một mảng đối tượng thành phần cho thuộc tính thành phần trong phần nội dung yêu cầu.
Ví dụ: dưới đây là một mảng chứa thành phần nội dung văn bản có 2 biến và giá trị mẫu, thành phần nút số điện thoại và thành phần nút URL:
[ { "type": "BODY", "text": "Thank you for your order, {{1}}! Your confirmation number is {{2}}. If you have any questions, please use the buttons below to contact support. Thank you for being a customer!", "example": { "body_text": [ [ "Pablo","860198-230332" ] ] } }, { "type": "BUTTONS", "buttons": [ { "type": "PHONE_NUMBER", "text": "Call", "phone_number": "15550051310" }, { "type": "URL", "text": "Contact Support", "url": "https://www.luckyshrub.com/support" } ] } ]
Hãy tham khảo tài liệu về Thành phần mẫu để biết danh sách tất cả những thành phần có thể sử dụng cùng với các yêu cầu của thành phần đó, cũng như mẫu và truy vấn mẫu.
Lưu ý rằng các mẫu được phân loại là AUTHENTICATION
có các yêu cầu về thành phần duy nhất. Hãy xem phần Mẫu xác thực.
Khi bạn gửi yêu cầu tạo mẫu, chúng tôi sẽ lập tức xác thực hạng mục của mẫu dựa trên nguyên tắc phân loại mẫu.
status
của mẫu thành PENDING
. Sau đó, mẫu sẽ trải qua quy trình xét duyệt mẫu.status
của mẫu thành REJECTED
và kích hoạt webhook cập nhật trạng thái mẫu tin nhắn với reason
được đặt thành INCORRECT_CATEGORY
. Bạn nên theo dõi webhook này để xác định các mẫu bị từ chối hoặc yêu cầu trường rejected_reason
trên mẫu mới tạo, trường này sẽ có giá trị là TAG_CONTENT_MISMATCH
.Trong cả hai trường hợp, trạng thái ban đầu của mẫu được trả về trong phản hồi API.
Nếu trạng thái mẫu đã được đặt thành REJECTED
trong quá trình xác thực hạng mục, bạn có các tùy chọn sau:
Bạn có thể thêm thuộc tính allow_category_change
vào yêu cầu để chúng tôi có thể tự động chỉ định hạng mục dựa trên nội dung mẫu và nguyên tắc phân loại mẫu của chúng tôi. Nhờ vậy, trạng thái của mẫu có thể tránh bị đặt ngay thành REJECTED
do phân loại sai.
Lưu ý: bạn chỉ có thể thực hiện phân loại tự động khi tạo mẫu.
Các mẫu có trạng thái PENDING
sẽ trải qua quy trình xét duyệt mẫu. Chúng tôi sẽ xem xét nội dung của từng mẫu mới tạo hoặc đã chỉnh sửa để đảm bảo mẫu đó tuân thủ các chính sách và nguyên tắc về nội dung của chúng tôi. Tùy theo kết quả xét duyệt, chúng tôi sẽ tự động thay đổi trạng thái của mẫu thành APPROVED
hoặc REJECTED
. Hành động này sẽ kích hoạt webhook cập nhật trạng thái mẫu tin nhắn.
Tùy theo kết quả xác thực hạng mục và xét duyệt mẫu, chúng tôi sẽ đặt hoặc thay đổi status
của mẫu thành một trong các giá trị sau:
APPROVED
- Mẫu đã vượt qua quy trình xét duyệt mẫu và được phê duyệt. Giờ đây, bạn có thể gửi mẫu trong tin nhắn mẫu.PENDING
- Mẫu đã vượt qua quy trình xác thực hạng mục và đang trải qua quy trình xét duyệt mẫu.REJECTED
- Mẫu không vượt qua quy trình xác thực hạng mục hoặc xét duyệt mẫu. Bạn có thể yêu cầu trường rejected_reason trên mẫu để lấy nguyên nhân.Hãy xem tài liệu tham khảo về điểm cuối Mẫu tin nhắn WhatsApp để biết tất cả trường và trạng thái có thể có.
Khi thành công, API này sẽ trả về ID, trạng thái và hạng mục của mẫu mới tạo. Có thể xảy ra 3 trường hợp:
status
là PENDING
).status
là REJECTED
)status
là APPROVED
). Trường hợp này chỉ áp dụng cho mẫu xác thực có nút mật khẩu một lần.{ "id": "<ID>", "status": "<STATUS>", "category": "<CATEGORY>" }
Phần giữ chỗ | Mô tả | Giá trị mẫu |
---|---|---|
| ID mẫu. |
|
|
| |
| Hạng mục mẫu do bạn chỉ định hoặc do chúng tôi chỉ định. |
|
Dưới đây là một yêu cầu mẫu để tạo mẫu khuyến mãi theo mùa có các thành phần sau đây:
Hãy tham khảo phần Yêu cầu mẫu để xem thêm ví dụ.
curl 'https://graph.facebook.com/v19.0
/102290129340398/message_templates' \
-H 'Authorization: Bearer EAAJB...' \
-H 'Content-Type: application/json' \
-d '
{
"name": "seasonal_promotion",
"language": "en_US",
"category": "MARKETING",
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Our {{1}} is on!",
"example": {
"header_text": [
"Summer Sale"
]
}
},
{
"type": "BODY",
"text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
"example": {
"body_text": [
[
"the end of August","25OFF","25%"
]
]
}
},
{
"type": "FOOTER",
"text": "Use the buttons below to manage your marketing subscriptions"
},
{
"type":"BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Unsubscribe from Promos"
},
{
"type":"QUICK_REPLY",
"text": "Unsubscribe from All"
}
]
}
]
}'
{ "id": "572279198452421", "status": "PENDING", "category": "MARKETING" }
Sử dụng API Đám mây hoặc API Tại chỗ để gửi mẫu trong tin nhắn mẫu.
Bạn nên thêm nút Trả lời nhanh vào các mẫu được phân loại là MARKETING
để giúp khách hàng dễ dàng từ chối nhận tin nhắn marketing. Như vậy, khách hàng có thể chọn không nhận tin nhắn marketing của bạn mà không cần phải chặn doanh nghiệp bạn. Do đó, bạn có thể sẽ tăng được lượng tin nhắn nhanh hơn. Vui lòng tham khảo bài viết này để biết thêm chi tiết về lợi ích khi thêm nút từ chối nhận tin nhắn vào các mẫu marketing của bạn.
Doanh nghiệp của bạn phải thực hiện các bước cần thiết để dừng gửi tin nhắn marketing đến những khách hàng đã chọn từ chối nhận tin nhắn đó. Nếu không, tỷ lệ chặn và điểm chất lượng của bạn sẽ bị ảnh hưởng tiêu cực.
Gửi yêu cầu GET đến điểm cuối Tài khoản WhatsApp Business > Mẫu tin nhắn để lấy danh sách mẫu thuộc sở hữu của một Tài khoản WhatsApp Business.
GET /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates ?fields=<FIELDS> &limit=<LIMIT>
Phần giữ chỗ | Mô tả | Giá trị mẫu |
---|---|---|
Danh sách được phân tách bằng dấu phẩy | Không bắt buộc. Danh sách các trường trong mẫu mà bạn muốn trả về. |
|
Số nguyên | Không bắt buộc. Số lượng mẫu tối đa mà bạn muốn trả về trong mỗi trang kết quả. |
|
curl 'https://graph.facebook.com/v19.0
/102290129340398/message_templates?fields=name,status&limit=3' \
-H 'Authorization: Bearer EAAJB...'
{
"data": [
{
"name": "seasonal_promotion_text_only",
"status": "APPROVED",
"id": "564750795574598"
},
{
"name": "seasonal_promotion_video",
"status": "PENDING",
"id": "1252715608684590"
},
{
"name": "seasonal_promotion_image_header",
"status": "PENDING",
"id": "1372429296936443"
}
],
"paging": {
"cursors": {
"before": "MAZDZD",
"after": "MgZDZD"
},
"next": "https://graph.facebook.com/v19.0
/102290129340398/message_templates?fields=name%2Cstatus&limit=3&after=MgZDZD"
}
}
Bạn chỉ có thể trả về các mẫu có giá trị trường cụ thể bằng cách thêm trường đó và giá trị mong muốn vào yêu cầu của mình. Ví dụ: thêm status=REJECTED
để chỉ lấy các mẫu bị từ chối.
curl 'https://graph.facebook.com/v19.0
/104996122399160/message_templates?fields=name,status&status=REJECTED' \
-H 'Authorization: Bearer EAAJB...'
{ "data": [ { "name": "seasonal_promotion_text_only_v4", "status": "REJECTED", "id": "564750795574598" }, { "name": "discount_qualifier", "status": "REJECTED", "id": "163917509772674" }, { "name": "limited_time_offer_tuscan_getaway_2023", "status": "REJECTED", "id": "202389039167147" }, { "name": "2023_mar_promo_2", "status": "REJECTED", "id": "1116034925734553" }, { "name": "2023_mar_promo", "status": "REJECTED", "id": "952600926095321" } ] }
Bạn cần phải có vùng tên của mẫu tin nhắn thì mới gửi được tin nhắn bằng mẫu tin nhắn.
Để lấy vùng tên của mẫu, hãy gửi yêu cầu GET
đến điểm cuối /{whatsapp-business-account-ID}
và thêm trường message_template_namespace
.
curl -i -X GET "https://graph.facebook.com/v19.0
/{whatsapp-business-account-ID}
?fields=message_template_namespace
&access_token={system-user-access-token}"
Khi thành công, hệ thống sẽ trả về một đối tượng JSON có ID tài khoản WhatsApp Business và vùng tên:
{ "id": "1972385232742141", "message_template_namespace": "12abcdefghijk_34lmnop" }
Gửi yêu cầu POST đến điểm cuối Mẫu tin nhắn WhatsApp để chỉnh sửa mẫu. Bạn cũng có thể tự mình chỉnh sửa mẫu bằng cách sử dụng bảng điều khiển Trình quản lý WhatsApp > Công cụ trong tài khoản > Mẫu tin nhắn.
APPROVED
, REJECTED
hoặc PAUSED
.category
hoặc components
của mẫu.category
của mẫu đã phê duyệt.POST /<WHATSAPP_MESSAGE_TEMPLATE_ID>
{ "category": "<CATEGORY>", "components": [<COMPONENTS>] }
Phần giữ chỗ | Mô tả | Giá trị mẫu |
---|---|---|
Chuỗi | Bắt buộc nếu hệ thống bỏ qua thuộc tính thành phần. Hạng mục của mẫu. |
|
Mảng | Bắt buộc nếu hệ thống bỏ qua thuộc tính hạng mục. Mảng đối tượng thành phần của mẫu. | Hãy xem phần Yêu cầu mẫu (Chỉnh sửa thành phần) bên dưới. |
Yêu cầu mẫu đối với văn bản nội dung mẫu chứa cả nội dung marketing và tiện ích để chỉ chứa nội dung marketing.
curl 'https://graph.facebook.com/v19.0
/564750795574598' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Our {{1}} is on!",
"example": {
"header_text": [
"Spring Sale"
]
}
},
{
"type": "BODY",
"text": "Shop now through {{1}} and use code {{2}} to get {{3}} off of all merchandise.",
"example": {
"body_text": [
[
"the end of April",
"25OFF",
"25%"
]
]
}
},
{
"type": "FOOTER",
"text": "Use the buttons below to manage your marketing subscriptions"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "QUICK_REPLY",
"text": "Unsubcribe from Promos"
},
{
"type": "QUICK_REPLY",
"text": "Unsubscribe from All"
}
]
}
]
}'
Yêu cầu mẫu để thay đổi hạng mục mẫu từ UTILITY
thành MARKETING
.
curl 'https://graph.facebook.com/v19.0
/1252715608684590' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"category": "MARKETING"
}'
Phản hồi mẫu sau khi thành công.
{ "success": true }
Sử dụng điểm cuối Tài khoản WhatsApp Business > Mẫu tin nhắn để xóa mẫu theo tên hoặc ID.
PENDING_DELETION
và chúng tôi sẽ tìm cách gửi tin nhắn đó trong 30 ngày. Sau thời gian này, hệ thống sẽ báo lỗi "Không có cấu trúc" và khách hàng sẽ không nhận được tin nhắn đó.Xóa mẫu theo tên sẽ xóa tất cả mẫu khớp với tên đó (nghĩa là các mẫu có cùng tên nhưng khác ngôn ngữ cũng sẽ bị xóa).
DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates ?name=<NAME>
curl -X DELETE 'https://graph.facebook.com/v16.0/102290129340398/message_templates?name=order_confirmation' \ -H 'Authorization: Bearer EAAJB...'
{ "success": true }
Để xóa mẫu theo ID, hãy thêm ID mẫu cùng với tên mẫu vào yêu cầu; chỉ mẫu có ID mẫu trùng khớp mới bị xóa.
DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>/message_templates ?hsm_id=<HSM_ID>, &name=<NAME>
curl -X DELETE 'https://graph.facebook.com/v19.0
/102290129340398/message_templates?hsm_id=1407680676729941&name=order_confirmation' \
-H 'Authorization: Bearer EAAJB...'
{ "success": true }