İleti alma

RBM temsilcileri, mesajları ve etkinlikleri webhook aracılığıyla alır. Bir kullanıcı temsilcinize mesaj gönderdiğinde Google'ın RBM hizmeti, mesajı yapılandırılmış webhook'unuza gönderir. Ardından temsilciniz mesajı çözebilir, işleyebilir ve kullanıcıya yanıt verebilir.

Kullanıcı, temsilciye mesaj gönderir.

Kullanıcılar, RCS istemcilerinin izin verdiği metinleri, konumları veya dosyaları gönderebilir. Aracınız, kullanıcının gönderebileceği tüm metinleri, konumları veya dosyaları ve bu mesajların tetikleyebileceği tüm hata durumlarını işlemelidir.

Gelen mesajları işleme

Temsilcinizin kullanıcılardan gelen mesajları nasıl ele alacağı ve yanıtlayacağı, büyük ölçüde iş mantığınıza bağlıdır. Ancak genel olarak, kullanıcı mesajlarına yanıt verme adımları tutarlıdır.

1. adım: Kullanıcının gönderdiği mesajın türünü belirleyin

Kullanıcılar dört tür mesaj gönderebilir:

  • Metin mesajları serbest biçimli yanıtlardır.
  • Öneri mesajları, geri gönderme verilerini ve kullanıcının dokunduğu önerilen işlemin veya önerilen yanıtın metnini içerir.
  • Konum mesajları enlem ve boylam değerlerini içerir.

  • Dosya mesajları, bir dosyanın URI'sini ve ilişkili verileri içerir.

2. adım: İleti içeriğini işleme

Kullanıcı mesajının içeriği, görüşmedeki aracınızın mantığını ve bir sonraki yanıtını yönlendirmelidir.

Kullanıcı amacını belirlemenin en kolay yolu, önerilen yanıttan veya önerilen işlemden gelen geri gönderme verileridir. Öneriye ilişkin metinden bağımsız olarak geri gönderme verileri makine tarafından okunabilir.

Bir kullanıcı kısa mesaj gönderdiğinde aracınız, yanıtı desteklenen anahtar kelimeler için ayrıştırabilir veya kullanıcının mesajını işlemek ve ilerlenecek bir yol belirlemek için doğal dil işleme (ör. Dialogflow) kullanabilir.

Konum ve dosya mesajları metin veya geri gönderme verilerini içermediğinden, yanıt vermeden önce temsilciniz görüşmenin bağlamını ve son mesajları dikkate almalıdır.

Temsilciniz kullanıcının mesajına nasıl yanıt vereceğini bilmiyorsa hata durumuyla yanıt vermeli ve kullanıcıdan ek bilgi istemek, farklı bir şekilde giriş yapmasını istemek veya temsilcinin nasıl yanıt vereceğini bildiği yanıt ve işlem önerileri sunmak gibi yöntemlerle sohbete devam etmeye çalışmalıdır.

3. adım: Etkileşim için iş mantığını yerine getirin

Temsilciniz, kullanıcının mesajına doğru yanıtı belirledikten sonra altyapınızdan gerekli bilgileri toplar ve etkileşimin iş mantığını yerine getirmek için gerektiğinde diğer sistemlerle etkileşime geçer.

4. adım: Kullanıcıya yanıt verin

Temsilci, etkileşimle ilgili işletme mantığını yerine getirdikten sonra başka bir mesaj gönderir ve kullanıcıyla görüşmeye devam eder.

Örnekler

Aşağıdaki kodda, aracınızın mesajları nasıl aldığı gösterilmektedir. Biçimlendirme ve değer bilgileri için UserMessage bölümüne bakın.

Not: ABD trafiği için kullanıcı mesajları ve önerilen işlemlere dokunma, ABD faturalandırma modeli sınıflandırmalarına tabidir. Aracınız bu etkinlikleri aldığında, faturalandırılabilir etkinlik türünü belirleyen richMessageClassification alanını içerir. Sınıflandırma ayrıntıları için ABD faturalandırma modeli kılavuzuna bakın.

Destek uzmanı metin alır

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

Temsilci, öneriden gelen bir mesajı alır.

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

Temsilci bir konum alır

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

Temsilci dosya alır

{
  "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"
    }
  }
}

Gelen etkinlikleri işleme

Temsilciniz, kullanıcılara gönderdiği mesajlar teslim edildiğinde ve okunduğunda bildirim alır.

Aşağıdaki kodda, aracınızın mesajları nasıl aldığı gösterilmektedir. Biçimlendirme ve değer bilgileri için UserEvent başlıklı makaleyi inceleyin.

İleti kullanıcıya teslim edildi

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

Mesaj kullanıcı tarafından okundu

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

Kullanıcı yazıyor

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