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.

Tin nhắn mẫu

Mẫu tin nhắn trên WhatsApp là các định dạng tin nhắn cụ thể mà doanh nghiệp sử dụng để gửi thông báo hoặc tin nhắn chăm sóc khách hàng đến những người đã chọn nhận thông báo. Tin nhắn có thể bao gồm lời nhắc cuộc hẹn, thông tin vận chuyển, cách giải quyết vấn đề hoặc thông tin cập nhật về thanh toán.

Bạn cần phải tạo mẫu thì mới gửi được tin nhắn mẫu. Hãy xem bài viết Tạo mẫu tin nhắn cho tài khoản WhatsApp Business để biết thêm thông tin. Nếu tài khoản của bạn chưa được xác minh, bạn có thể dùng một trong các mẫu được phê duyệt trước của chúng tôi.

Hiện tại, bạn có thể gửi các loại mẫu sau:

Mọi lệnh gọi API được đề cập trong hướng dẫn này đều phải được xác thực bằng mã truy cập. Nhà phát triển có thể xác thực lệnh gọi API bằng mã truy cập được tạo trong Bảng điều khiển ứng dụng > WhatsApp > bảng điều khiển Thiết lập API. Đối tác giải pháp phải tự xác thực bằng mã truy cập cùng với quyền whatsapp_business_messaging.

Tốc độ phân phối

Các mẫu marketing mới tạo hoặc được hủy tạm dừng phải tuân theo tốc độ phân phối mẫu. Hãy xem bài viết Tốc độ phân phối mẫu.

Mẫu tin nhắn dạng văn bản

Để gửi mẫu tin nhắn dạng văn bản, hãy thực hiện lệnh gọi POST đến /PHONE_NUMBER_ID/messages và đính kèm một đối tượng tin nhắn cùng với type=template. Sau đó, hãy thêm đối tượng template.

Yêu cầu mẫu:

curl -X  POST \
 'https://graph.facebook.com/v19.0/FROM_PHONE_NUMBER_ID/messages' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "PHONE_NUMBER",
  "type": "template",
  "template": {
    "name": "TEMPLATE_NAME",
    "language": {
      "code": "LANGUAGE_AND_LOCALE_CODE"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "text-string"
          },
          {
            "type": "currency",
            "currency": {
              "fallback_value": "VALUE",
              "code": "USD",
              "amount_1000": NUMBER
            }
          },
          {
            "type": "date_time",
            "date_time": {
              "fallback_value": "DATE"
            }
          }
        ]
      }
    ]
  }
}'

Phản hồi thành công sẽ bao gồm một đối tượng có thông tin nhận dạng bắt đầu bằng wamid. Hãy sử dụng ID được liệt kê phía sau wamid để theo dõi trạng thái tin nhắn của bạn.

{
  "messaging_product": "whatsapp",
  "contacts": [{
      "input": "PHONE_NUMBER",
      "wa_id": "WHATSAPP_ID",
    }]
  "messages": [{
      "id": "wamid.ID",
    }]
}

Mẫu tin nhắn dạng file phương tiện

Để gửi mẫu tin nhắn dạng file phương tiện, hãy thực hiện lệnh gọi POST đến /PHONE_NUMBER_ID/messages và đính kèm một đối tượng tin nhắn cùng với type=template. Sau đó, hãy thêm đối tượng template. Hỗ trợ Lưu HTTP file phương tiện vào bộ nhớ đệm.

Để gửi tin nhắn mẫu dạng file phương tiện, hãy thực hiện lệnh gọi POST đến điểm cuối Số điện thoại WhatsApp Business > Tin nhắn. Hãy đặt thuộc tính typetemplate và sử dụng thuộc tính template để xác định đối tượng mẫu cũng như đối tượng file phương tiện của mẫu đó.

Khi xác định đối tượng file phương tiện, bạn có thể tải tài sản file phương tiện của mình lên máy chủ của chúng tôi và dùng ID file phương tiện của tài sản (sử dụng thuộc tính id) hoặc lưu trữ tài sản đó trên máy chủ của bạn và dùng URL của tài sản (sử dụng thuộc tính link). Nếu bạn sử dụng link, tài sản của bạn phải nằm trên máy chủ có thể truy cập công khai. Nếu không, tin nhắn sẽ không gửi được.

Để giảm khả năng xảy ra lỗi và tránh các yêu cầu không cần thiết đến máy chủ công khai của mình, bạn nên tải tài sản file phương tiện lên và dùng ID của những tài sản đó khi gửi tin nhắn.

Bạn cũng có thể lưu tài sản file phương tiện vào bộ nhớ đệm. Hãy xem phần Lưu HTTP file phương tiện vào bộ nhớ đệm.

Yêu cầu mẫu:

curl -X  POST \
 'https://graph.facebook.com/v19.0/FROM_PHONE_NUMBER_ID/messages' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "PHONE_NUMBER",
  "type": "template",
  "template": {
    "name": "TEMPLATE_NAME",
    "language": {
      "code": "LANGUAGE_AND_LOCALE_CODE"
    },
    "components": [
      {
        "type": "header",
        "parameters": [
          {
            "type": "image",
            "image": {
              "link": "https://URL"
            }
          }
        ]
      },
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "TEXT-STRING"
          },
          {
            "type": "currency",
            "currency": {
              "fallback_value": "VALUE",
              "code": "USD",
              "amount_1000": NUMBER
            }
          },
          {
            "type": "date_time",
            "date_time": {
              "fallback_value": "MONTH DAY, YEAR"
            }
          }
        ]
      }
    ]
  }
}'

Phản hồi thành công sẽ bao gồm một đối tượng có thông tin nhận dạng bắt đầu bằng wamid. Hãy sử dụng ID được liệt kê phía sau wamid để theo dõi trạng thái tin nhắn của bạn.

{
  "messaging_product": "whatsapp",
  "contacts": [{
      "input": "PHONE_NUMBER",
      "wa_id": "WHATSAPP_ID",
    }]
  "messages": [{
      "id": "wamid.ID",
    }]
}

Mẫu tin nhắn tương tác

Ngoài mẫu tin nhắn tiêu chuẩn và các loại mẫu tin nhắn có chứa file phương tiện, bạn có thể dùng đối tượng thành phần để gửi cho người nhận những mẫu tin nhắn tương tác có nút tương tác. Có 2 loại nút được xác định trước:

  • Kêu gọi hành động - Cho phép khách hàng gọi đến số điện thoại và truy cập vào trang web.
  • Trả lời nhanh - Cho phép khách hàng gửi lại một tin nhắn văn bản đơn giản.

Bạn có thể đính kèm các nút này vào tin nhắn văn bản hoặc tin nhắn có chứa file phương tiện. Khi các mẫu tin nhắn tương tác của bạn đã được tạo và phê duyệt, bạn có thể dùng những mẫu này trong tin nhắn thông báo cũng như tin nhắn dịch vụ/chăm sóc khách hàng.

Để gửi mẫu tin nhắn tương tác, hãy thực hiện lệnh gọi POST đến /PHONE_NUMBER_ID/messages và đính kèm một đối tượng tin nhắn cùng với type=template. Sau đó, hãy thêm đối tượng template cùng với button mà bạn đã chọn.

Yêu cầu mẫu:

curl -X  POST \
 'https://graph.facebook.com/v19.0/FROM_PHONE_NUMBER_ID/messages' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "PHONE_NUMBER",
  "type": "template",
  "template": {
    "name": "TEMPLATE_NAME",
    "language": {
      "code": "LANGUAGE_AND_LOCALE_CODE"
    },
    "components": [
      {
        "type": "header",
        "parameters": [
          {
            "type": "image",
            "image": {
              "link": "http(s)://URL"
            }
          }
        ]
      },
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "TEXT_STRING"
          },
          {
            "type": "currency",
            "currency": {
              "fallback_value": "VALUE",
              "code": "USD",
              "amount_1000": NUMBER
            }
          },
          {
            "type": "date_time",
            "date_time": {
              "fallback_value": "MONTH DAY, YEAR"
            }
          }
        ]
      },
      {
        "type": "button",
        "sub_type": "quick_reply",
        "index": "0",
        "parameters": [
          {
            "type": "payload",
            "payload": "PAYLOAD"
          }
        ]
      },
      {
        "type": "button",
        "sub_type": "quick_reply",
        "index": "1",
        "parameters": [
          {
            "type": "payload",
            "payload": "PAYLOAD"
          }
        ]
      }
    ]
  }
}'

Phản hồi thành công sẽ bao gồm một đối tượng có thông tin nhận dạng bắt đầu bằng wamid. Hãy sử dụng ID được liệt kê phía sau wamid để theo dõi trạng thái tin nhắn của bạn.

{
  "messaging_product": "whatsapp",
  "contacts": [{
      "input": "PHONE_NUMBER",
      "wa_id": "WHATSAPP_ID",
    }]
  "messages": [{
      "id": "wamid.ID",
    }]
}

Mẫu tin nhắn dạng vị trí

Để gửi mẫu sử dụng tiêu đề vị trí, yêu cầu của bạn phải bao gồm đối tượng tiêu đề vị trí.

Cú pháp

{
  "type": "header",
  "parameters": [
    {
      "type": "location",
      "location": {
        "latitude": "<LATITUDE>",
        "longitude": "<LONGITUDE>",
        "name": "<NAME>",
        "address": "<ADDRESS>"
      }
    }
  ]
}

Thuộc tính

Phần giữ chỗMô tảGiá trị mẫu

<ADDRESS>

Địa chỉ sẽ hiển thị sau giá trị <NAME>, bên dưới bản đồ chung ở đầu tin nhắn.

1 Hacker Way, Menlo Park, CA 94025

<LATITUDE>

Vĩ độ của vị trí.

37.483307

<LONGITUDE>

Kinh độ của vị trí.

122.148981

<NAME>

Văn bản sẽ hiển thị ngay bên dưới bản đồ chung ở đầu tin nhắn.

Pablo Morales

Yêu cầu mẫu

Dưới đây là yêu cầu mẫu để gửi một mẫu hiện có sử dụng các thành phần sau:

  • một tiêu đề vị trí
  • nội dung văn bản có một biến
  • một chân trang
  • một nút câu trả lời nhanh
curl -L 'https://graph.facebook.com/v16.0/106540352242922/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "12245554792",
  "type": "template",
  "template": {
    "name": "order_delivery_update",
    "language": {
      "code": "en_US"
    },
    "components": [
      {
        "type": "header",
        "parameters": [
          {
            "type": "location",
            "location": {
              "latitude": "37.483307",
              "longitude": "122.148981",
              "name": "Pablo Morales",
              "address": "1 Hacker Way, Menlo Park, CA 94025"
            }
          }
        ]
      },
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "Pablo"
          },
          {
            "type": "text",
            "text": "566701"
          }
        ]
      }
    ]
  }
}'

Mẫu xác thực

Thao tác gửi mẫu xác thực cũ (mẫu không có nút mật khẩu một lần) sẽ trả về mã lỗi 100 nếu giá trị biến vượt quá 15 ký tự hoặc có chứa liên kết/biểu tượng cảm xúc hoặc thành phần nội dung mẫu có chứa liên kết. Thay vào đó, hãy tạo và sử dụng mẫu xác thực có nút mật khẩu một lần.

Hãy xem bài viết Mẫu xác thựcGửi mẫu xác thực.

Trình tự phân phối nhiều tin nhắn

Khi bạn gửi một loạt tin nhắn, hệ thống không đảm bảo thứ tự phân phối tin nhắn sẽ khớp với thứ tự trong yêu cầu API của bạn. Nếu bạn cần đảm bảo trình tự phân phối tin nhắn, hãy xác nhận là bạn đã nhận được trạng thái delivered trong webhook tin nhắn trước khi gửi tin nhắn tiếp theo trong trình tự tin nhắn của bạn.

Giới hạn tin nhắn marketing mẫu cho mỗi người dùng

Kể từ ngày 06/02/2024, giới hạn tin nhắn marketing mẫu cho mỗi người dùng sẽ áp dụng cho các tin nhắn mẫu được gửi đến một số ít người dùng WhatsApp ở Ấn Độ, nhưng sẽ áp dụng cho tất cả người dùng WhatsApp có số điện thoại ở Ấn Độ muộn nhất vào ngày 13/02/2024.

Chúng tôi đang triển khai các phương pháp mới - bắt đầu với người tiêu dùng ở Ấn Độ - nhằm tạo ra trải nghiệm chất lượng cao cho người dùng và tăng tối đa mức độ tương tác với tin nhắn marketing mẫu. Những phương pháp này có thể bao gồm việc giới hạn số lượng tin nhắn marketing mẫu mà một người dùng nhận được từ doanh nghiệp bất kỳ trong khoảng thời gian cụ thể, bắt đầu với số lượng nhỏ cuộc trò chuyện có ít khả năng được đọc. Lưu ý rằng giới hạn được xác định dựa trên số lượng tin nhắn marketing mẫu mà người dùng đó đã nhận được từ doanh nghiệp bất kỳ, đồng thời không liên quan cụ thể đến doanh nghiệp của bạn.

Giới hạn này chỉ áp dụng cho những tin nhắn marketing mẫu thường mở ra cuộc trò chuyện marketing mới. Nếu đã tồn tại cuộc trò chuyện marketing giữa bạn và một người dùng WhatsApp, những tin nhắn marketing mẫu được gửi đến người dùng đó sẽ không bị ảnh hưởng.

Nếu người dùng cụ thể không nhận được một tin nhắn marketing mẫu do bị giới hạn, API Đám mây sẽ trả về mã lỗi 131026 và API Tại chỗ sẽ trả về mã lỗi 1026. Tuy nhiên, hãy lưu ý rằng các mã lỗi này bao gồm nhiều vấn đề có thể dẫn đến tình trạng không gửi được một tin nhắn. Vì lý do quyền riêng tư, chúng tôi sẽ không tiết lộ liệu trên thực tế tình trạng này có phải do giới hạn hay không. Hãy tham khảo tài liệu Khắc phục sự cố của API Đám mây và Câu hỏi thường gặp "Tại sao tỷ lệ gửi của tôi không đạt 100%?" của API Tại chỗ để biết nội dung mô tả lý do không gửi được cũng như cách xác định nguyên nhân gốc rễ.

Nếu bạn nhận được một trong những mã lỗi ở trên và nghi ngờ là do giới hạn, hãy lập tức ngừng gửi lại tin nhắn mẫu vì bạn sẽ chỉ nhận được phản hồi lỗi khác khi làm như vậy. Thay vào đó, hãy thử lại với khoảng thời gian tăng dần cho đến khi gửi được tin nhắn, vì giới hạn có thể có hiệu lực trong những khoảng thời gian khác nhau.

Chúng tôi sẽ tiếp tục hoàn thiện phương pháp của mình, đồng thời trân trọng sự hợp tác của bạn trong quá trình chúng tôi đầu tư để WhatsApp trở thành trải nghiệm tốt nhất có thể cho doanh nghiệp cũng như khách hàng của bạn.

Khắc phục sự cố

Nếu bạn gặp sự cố khi phân phối tin nhắn, hãy xem phần Chưa phân phối được tin nhắn.