Chúng tôi sẽ ngừng cung cấp API Tại chỗ. Hãy tham khảo tài liệu về việc Ngừng cung cấp API Tại chỗ để biết chi tiết, đồng thời tìm hiểu cách chuyển sang API Đám mây thế hệ tiếp theo của chúng tôi.
Hướng dẫn này sẽ chỉ cho bạn cách gửi từng tùy chọn tin nhắn tương tác. Tin nhắn tương tác cung cấp cho người dùng một cách đơn giản hơn để tìm và chọn những gì họ mong muốn từ doanh nghiệp của bạn trên WhatsApp. Trong quá trình thử nghiệm, những chatbot sử dụng các tính năng nhắn tin tương tác đã đạt được tỷ lệ phản hồi và chuyển đổi cao hơn đáng kể so với chatbot chỉ sử dụng tin nhắn văn bản.
Các loại tin nhắn tương tác:
Xem thông tin so sánh giữa tin nhắn văn bản và tin nhắn tương tác:
Xem ví dụ về cách có thể kết hợp tin nhắn có chứa Danh sách và nút Trả lời trong cùng một quy trình:
So với danh sách dạng văn bản, tin nhắn tương tác cung cấp cho mọi người một dạng thức đơn giản và nhất quán hơn để tìm và lựa chọn những gì họ mong muốn từ doanh nghiệp. Trong quá trình thử nghiệm, mọi người có mức độ lĩnh hội cao hơn khi tương tác với các tính năng này.
Trong quá trình thử nghiệm, những chatbot sử dụng các tính năng nhắn tin tương tác đã đạt được tỷ lệ phản hồi và chuyển đổi cao hơn đáng kể so với chatbot chỉ sử dụng tin nhắn văn bản.
Được điền tự động theo thời gian thực và có thể cá nhân hóa cho phù hợp với khách hàng hoặc tình huống. Ví dụ: bạn có thể hiển thị tin nhắn có chứa Danh sách gồm các khung giờ trống để đặt lịch hẹn hoặc sử dụng nút Trả lời để hiển thị những địa chỉ giao hàng trước đây.
Tin nhắn tương tác không cần có mẫu hoặc phê duyệt trước.
Tin nhắn có chứa danh sách phù hợp nhất để hiển thị nhiều tùy chọn, chẳng hạn như:
Nút Trả lời phù hợp nhất để cung cấp phản hồi nhanh từ một nhóm tùy chọn giới hạn, chẳng hạn như:
Nút trả lời đặc biệt có giá trị trong các trường hợp sử dụng "được cá nhân hóa" mà không thích hợp dùng phản hồi chung chung.
Tin nhắn về quy trình phù hợp nhất cho hoạt động giao tiếp có cấu trúc trên một hoặc nhiều màn hình, chẳng hạn như:
Với Tin nhắn về quy trình, doanh nghiệp có thể cung cấp trải nghiệm người dùng phong phú và hấp dẫn hơn, giúp khách hàng hoàn thành công việc nhanh hơn trên WhatsApp mà không cần phải chuyển sang ứng dụng khác hoặc truy cập vào một trang web.
Ở cấp độ API, tin nhắn tương tác được đặt bằng cách chỉ định type
tin nhắn là interactive
và thêm đối tượng interactive
. Nhìn chung, những tin nhắn này có 4 phần chính: header
, body
, footer
và action
:
{ "recipient_type": "individual", "to" : "whatsapp-id", "type": "interactive" "interactive":{ "type": "list" | "button" | ..., "header": {}, "body": {}, "footer": {}, "action": {} } }
Hãy xem thêm thông tin bên dưới về cách gửi các loại tin nhắn này.
Trước khi gửi mỗi tin nhắn, bạn cần lấy ID WhatsApp của người nhận bằng lệnh gọi đến nút /contacts
.
Bạn nên thiết lập webhooks để nhận trạng thái tin nhắn và thông báo tin nhắn đến. Bằng cách này, bạn có thể theo dõi liệu tin nhắn đã được gửi đi hay chưa, cũng như xem câu trả lời nhận được từ người dùng. Hãy xem phần Webhooks để biết thêm thông tin.
interactive
Để gửi tin nhắn có chứa danh sách, bạn phải tạo một đối tượng interactive
thuộc loại list
có các thành phần sau đây:
Đối tượng | Mô tả |
---|---|
| Không bắt buộc. Nếu quyết định thêm đối tượng này, bạn phải đặt loại tiêu đề thành văn bản và thêm trường văn bản kèm theo nội dung mong muốn. Tối đa 60 ký tự. |
| Bắt buộc. Phần nội dung tin nhắn. Tối đa 1024 ký tự. |
| Không bắt buộc. Chân trang của tin nhắn. |
| Bắt buộc. Bên trong hành động, bạn phải lồng:
Bên trong |
Cuối cùng, đối tượng interactive
sẽ có dạng như sau:
"interactive":{ "type": "list", "header": { "type": "text", "text": "your-header-content" }, "body": { "text": "your-text-message-content" }, "footer": { "text": "your-footer-content" }, "action": { "button": "cta-button-content", "sections":[ { "title":"your-section-title-content", "rows": [ { "id":"unique-row-identifier", "title": "row-title-content", "description": "row-description-content", } ] }, { "title":"your-section-title-content", "rows": [ { "id":"unique-row-identifier", "title": "row-title-content", "description": "row-description-content", } ] }, ... ] } }
Để gửi tin nhắn có chứa nút trả lời, bạn phải tạo một đối tượng interactive
thuộc loại button
có các thành phần sau đây:
Đối tượng | Mô tả |
---|---|
| Không bắt buộc. Đối với tin nhắn tương tác Sau khi chọn
Ví dụ: "header": { "type": "text" | "image" | "video" | "document", "text": "your text" # OR "document": { "id": "your-media-id", "filename": "some-file-name" } # OR "document": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name", }, "filename": "some-file-name" }, # OR "video": { "id": "your-media-id" } # OR "video": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name" } } # OR "image": { "id": "your-media-id" } # OR "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } } |
| Bắt buộc. |
| Không bắt buộc. |
| Bắt buộc. Bạn phải thêm ít nhất một Bạn không được có khoảng trắng ở đầu hoặc cuối khi đặt ID. Ví dụ: "action": { "buttons": [ { "type": "reply", "reply": { "id": "unique-postback-id", "title": "First Button’s Title" } }, { "type": "reply", "reply": { "id": "unique-postback-id", "title": "Second Button’s Title" } } ] } |
Cuối cùng, đối tượng interactive
sẽ có dạng như sau:
"interactive": { "type": "button", "header": { # optional "type": "text" | "image" | "video" | "document", "text": "your text" # OR "document": { "id": "your-media-id", "filename": "some-file-name" } # OR "document": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name", }, "filename": "some-file-name" }, # OR "video": { "id": "your-media-id" } # OR "video": { "link": "the-provider-name/protocol://the-url", "provider": { "name": "provider-name" } } # OR "image": { "id": "your-media-id" } # OR "image": { "link": "http(s)://the-url", "provider": { "name": "provider-name" } } }, # end header "body": { "text": "your-text-body-content" }, "footer": { # optional "text": "your-text-footer-content" }, "action": { "buttons": [ { "type": "reply", "reply": { "id": "unique-postback-id", "title": "First Button’s Title" } }, { "type": "reply", "reply": { "id": "unique-postback-id", "title": "Second Button’s Title" } } ] } # end action } # end interactive
Tin nhắn yêu cầu vị trí có chứa văn bản phần nội dung và nút Gửi vị trí để người dùng có thể nhấn vào. Khi nhấn vào nút này, một màn hình chia sẻ vị trí sẽ hiển thị. Người dùng có thể sử dụng màn hình này để chia sẻ vị trí của họ.
Để gửi tin nhắn yêu cầu vị trí, đầu tiên, hãy tạo đối tượng interactive
kèm theo văn bản bạn muốn hiển thị trong tin nhắn:
{ "type": "location_request_message", "body": { "type": "text", "text": "<TEXT>" }, "action": { "name": "send_location" } }
Thuộc tính | Mô tả |
---|---|
| Đặt thành |
| Đặt thành |
| Đặt thành văn bản bạn muốn hiển thị phía trên nút Gửi vị trí. |
| Đặt thành |
Tin nhắn về quy trình chứa nút kêu gọi hành động mà người dùng có thể nhấn vào. Quy trình tùy chỉnh của bạn sẽ hiển thị khi người dùng nhấn vào nút này.
Để gửi Tin nhắn về quy trình, bạn phải tạo một đối tượng interactive
thuộc loại flow
. Hãy xem tại đây để biết đầy đủ chi tiết.
Bây giờ, bạn đã có đối tượng tương tác, hãy thêm các thông số khác của tin nhắn: recipient_type
, to
và type
. Hãy nhớ đặt type
thành interactive
.
{ "recipient_type": "individual", "to" : "whatsapp-id", // WhatsApp ID of your recipient "type": "interactive", "interactive":{ // Your interactive object } }
Xem các thông số chung cho mọi loại tin nhắn tại đây.
POST
đến /messages
Thực hiện lệnh gọi POST
đến điểm cuối /messages
kèm theo đối tượng JSON
bạn đã tạo ở bước 1 và 2. Nếu tin nhắn được gửi thành công, bạn sẽ nhận được phản hồi sau đây:
{ "messages": [{ "id": "{message-id}" }] }
Nếu bạn thiết lập webhooks, hãy kiểm tra xem có thay đổi về trạng thái tin nhắn cũng như có phản hồi từ người dùng không.
Webhooks của người dùng phản hồi tin nhắn tương tác có một thành phần mới là interactive
. Thành phần này chứa thông tin về lựa chọn của người dùng. Hãy xem phần Webhooks, Thành phần để biết thêm thông tin.
Ví dụ: sau đây là yêu cầu webhook mô tả một người dùng đã chia sẻ vị trí.
{ "object": "whatsapp_business_account", "entry": [ { "id": "12345", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "12345", "phone_number_id": "12345" }, "contacts": [ { "profile": { "name": "John Doe" }, "wa_id": "12345" } ], "messages": [ { "context": { "from": "12345", "id": "test-id" }, "from": "123450", "id": "test-id", "timestamp": "16632", "location": { "address": "1071 5th Ave, New York, NY 10128", #Optional "latitude": 37.421996751527, "longitude": -122.08407156636, "name": "Solomon R. Guggenheim Museum" #Optional }, "type": "location" } ] }, "field": "messages" } ] } ] }
Thành phần location
trong phần tải dữ liệu có chứa kinh độ và vĩ độ của người dùng. Lưu ý rằng các thành phần address
và name
không bắt buộc đối với người dùng và có thể không được đưa vào.
"location": { "address": "1071 5th Ave, New York, NY 10128", #Optional "latitude": 40.782910059774, "longitude": -73.959075808525, "name": "Solomon R. Guggenheim Museum" #Optional }