Nhận tin nhắn

Nhân viên hỗ trợ RBM nhận tin nhắn và sự kiện thông qua một webhook. Khi người dùng gửi tin nhắn cho nhân viên hỗ trợ, dịch vụ RBM của Google sẽ gửi tin nhắn đến webhook mà bạn đã thiết lập. Sau đó, nhân viên hỗ trợ của bạn có thể giải mã, xử lý tin nhắn và đưa ra phản hồi cho người dùng.

Người dùng gửi tin nhắn cho nhân viên hỗ trợ

Người dùng có thể gửi bất cứ văn bản, vị trí hoặc tệp nào mà ứng dụng RCS của họ cho phép. Tác nhân của bạn cần xử lý mọi văn bản, vị trí hoặc tệp mà người dùng có thể gửi, cũng như mọi trạng thái lỗi mà các thông báo đó có thể kích hoạt.

Xử lý thư đến

Cách nhân viên hỗ trợ xử lý và trả lời tin nhắn của người dùng phụ thuộc nhiều vào logic nghiệp vụ của bạn. Tuy nhiên, nhìn chung, các bước để trả lời tin nhắn của người dùng là nhất quán.

Bước 1: Xác định loại tin nhắn mà người dùng gửi

Người dùng có thể gửi 4 loại tin nhắn:

  • Tin nhắn văn bản là các câu trả lời dạng tự do.
  • Thông báo Đề xuất bao gồm dữ liệu đăng lại và văn bản của hành động được đề xuất hoặc câu trả lời đề xuất mà người dùng đã nhấn vào.
  • Thông báo vị trí bao gồm các giá trị vĩ độ và kinh độ.

  • Các thông báo File (Tệp) bao gồm URI cho tệp và dữ liệu liên quan.

Bước 2: Xử lý nội dung thư

Nội dung của thông báo cho người dùng phải định hướng logic của nhân viên hỗ trợ và phản hồi tiếp theo trong cuộc trò chuyện.

Cách dễ nhất để xác định ý định của người dùng là sử dụng dữ liệu đăng lại từ câu trả lời đề xuất hoặc hành động được đề xuất. Bất kể văn bản liên kết với đề xuất là gì, máy đều có thể đọc được dữ liệu đăng lại.

Nếu người dùng gửi tin nhắn văn bản, nhân viên hỗ trợ của bạn có thể phân tích cú pháp phản hồi cho các từ khoá được hỗ trợ hoặc sử dụng NLU (chẳng hạn như Dialogflow) để xử lý tin nhắn của người dùng và xác định đường dẫn chuyển tiếp.

Thông báo về vị trí và tệp không bao gồm dữ liệu văn bản hoặc dữ liệu đăng lại. Vì vậy, nhân viên hỗ trợ của bạn nên xem xét ngữ cảnh của cuộc trò chuyện và các tin nhắn gần đây trước khi phản hồi.

Nếu không biết cách trả lời tin nhắn của người dùng, nhân viên hỗ trợ sẽ phải phản hồi kèm theo trạng thái lỗi và cố gắng tiếp tục cuộc trò chuyện bằng cách nhắc người dùng cung cấp thêm thông tin, yêu cầu nhập thông tin theo cách khác hoặc đưa ra các câu trả lời đề xuất và hành động đề xuất mà nhân viên hỗ trợ biết cách phản hồi.

Bước 3: Thực hiện logic kinh doanh cho lượt tương tác

Sau khi xác định được phản hồi chính xác cho tin nhắn của người dùng, tác nhân này sẽ thu thập thông tin cần thiết từ cơ sở hạ tầng của bạn và tương tác với các hệ thống khác nếu cần để thực hiện logic nghiệp vụ cho hoạt động tương tác.

Bước 4: Trả lời người dùng

Sau khi thực hiện xong logic kinh doanh cho hoạt động tương tác, tác nhân hỗ trợ gửi một tin nhắn khác và tiếp tục cuộc trò chuyện với người dùng.

Ví dụ

Mã sau đây cho biết cách nhân viên hỗ trợ nhận tin nhắn. Để biết thông tin về định dạng và giá trị, hãy xem UserMessage.

Nhân viên hỗ trợ nhận tin nhắn

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "text": "Hello, world!"
}

Nhân viên hỗ trợ nhận tin nhắn từ một đề xuất

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "suggestionResponse": {
    "postbackData": "suggestion_1",
    "text": "Suggestion #1"
  }
}

Nhân viên hỗ trợ nhận thông tin vị trí

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "location": {
    "latitude": 37.422000,
    "longitude": -122.084056
  }
}

Tác nhân nhận tệp

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "category": "IMAGE",
    "thumbnail": {
      "mimeType": "image/jpeg",
      "fileSizeBytes": 1280,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8",
      "fileName": "4_animated.jpeg"
    },
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  }
}

Xử lý sự kiện sắp tới

Nhân viên hỗ trợ sẽ nhận được thông báo khi tin nhắn gửi cho người dùng được gửi và đọc.

Mã sau đây cho biết cách nhân viên hỗ trợ nhận tin nhắn. Để biết thông tin về định dạng và giá trị, hãy xem bài viết UserEvent.

Đã gửi thông báo cho người dùng

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "DELIVERED"
}

Người dùng đã đọc thông báo

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "eventType": "READ"
}

Người dùng đang soạn tin nhắn

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "agentId": "AGENT_ID"
}