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ợ 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 tin nhắn đó có thể kích hoạt.

Để tìm hiểu cách tác nhân của bạn có thể xử lý thông báo đã gửi, thông báo xác nhận đã đọc và chỉ báo đang soạn tin nhắn, hãy xem phần Nhận sự kiện.

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 kinh doanh của bạn. Tuy nhiên, nhìn chung, các bước để phản hồ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 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 được đề xuất hoặc câu trả lời được đề 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 liên kết với đề xuất là gì, 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, thì 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à tin nhắn tệp không bao gồm văn bản hoặc dữ liệu postback, 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 phải 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, bằng cách yêu cầu người dùng nhập dữ liệu theo một cách khác hoặc bằng cách 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 để 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 được 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 đượ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 hỗ trợ 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"
    }
  }
}