Nhận tin nhắn

Nhân viên hỗ trợ RBM nhận tin nhắn và sự kiện thông qua webhook. Khi người dùng gửi tin nhắn cho nhân viên hỗ trợ của bạn, dịch vụ RBM của Google sẽ gửi tin nhắn đó đến webhook mà bạn đã định cấu hình. Sau đó, tác nhân của bạn có thể giải mã tin nhắn, 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 kỳ văn bản, vị trí hoặc tệp nào mà ứng dụng RCS của họ cho phép. Nhân viên hỗ trợ 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à những thông báo đó có thể kích hoạt.

Xử lý tin nhắn đến

Cách nhân viên hỗ trợ xử lý và phản hồi tin nhắn của người dùng phụ thuộc rất nhiều vào logic nghiệp vụ của bạn. Tuy nhiên, các bước để phản hồi tin nhắn của người dùng thường 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 là câu trả lời dạng tự do.
  • Đề xuất bao gồm dữ liệu postback và văn bản của hành động đề 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 độ.

  • Thông báo Tệp bao gồm URI cho một tệp và dữ liệu liên quan.

Bước 2: Xử lý nội dung tin nhắn

Nội dung tin nhắn của người dùng sẽ hướng dẫn logic và phản hồi tiếp theo của trợ lý 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 postback từ một câu trả lời hoặc hành động được đề xuất. Bất kể văn bản nào liên kết với đề xuất, dữ liệu postback đều có thể đọc được bằng máy.

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 để tìm 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 hướng đi tiếp theo.

Tin nhắn vị trí và tệp không bao gồm dữ liệu văn bản hoặc dữ liệu gửi lại, vì vậy, tác nhân 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 phản hồi tin nhắn của người dùng, thì tác nhân của bạn sẽ phản hồi bằng 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 người dùng nhập dữ liệu theo cách khác hoặc trình bày các câu trả lời và hành động đề xuất mà tác nhân biết cách phản hồi.

Bước 3: Thực hiện logic nghiệp vụ cho hoạt động tương tác

Sau khi xác định được câu trả lời chính xác cho thông báo của người dùng, nhân viên hỗ trợ 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 khi cần thiết để 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 nhân viên hỗ trợ hoàn tất logic nghiệp vụ cho hoạt động tương tác, nhân viên hỗ trợ sẽ 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ụ

Đoạn mã sau cho biết cách tác nhân của bạn nhận tin nhắn. Để biết thông tin về định dạng và giá trị, hãy xem UserMessage.

Lưu ý: Đối với lưu lượng truy cập ở Hoa Kỳ, tin nhắn của người dùng và lượt nhấn vào các hành động được đề xuất phải tuân theo các phân loại của mô hình thanh toán ở Hoa Kỳ. Khi nhận được các sự kiện này, tác nhân của bạn sẽ bao gồm trường richMessageClassification, trường này xác định loại sự kiện có tính phí. Hãy xem hướng dẫn về mô hình thanh toán ở Hoa Kỳ để biết thông tin chi tiết về việc phân loại.

Nhân viên hỗ trợ nhận được tin nhắn văn bả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 được 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 được 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
  }
}

Nhân viên nhận được tệp

{
  "agentId": "AGENT_ID",
  "senderPhoneNumber": "PHONE_NUMBER",
  "messageId": "MESSAGE_ID",
  "sendTime": "2018-12-31T15:01:23.045123456Z",
  "userFile": {
    "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ý các sự kiện đến

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

Đoạn mã sau cho biết cách tác nhân của bạn nhận tin nhắn. Để biết thông tin về định dạng và giá trị, hãy xem UserEvent.

Đã gửi tin nhắn 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ư

{
  "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 nhập

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