Mesaj alma

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

Kullanıcı, temsilciye ileti gönderir

Kullanıcılar, RCS istemcilerinin izin verdiği metin, konum veya dosyaları gönderebilir. Temsilcinizin, kullanıcının gönderebileceği tüm metin, konum veya dosyaların yanı sıra bu mesajların tetiklenebileceği herhangi bir hata mesajını işlemesi gerekir.

Gelen iletileri işleme

Temsilcinizin kullanıcılardan gelen mesajları işleme ve yanıtlama biçimi büyük ölçüde iş mantığınıza bağlıdır. Ancak genellikle bir kullanıcı mesajına yanıt vermek için uygulanacak adımlar tutarlıdır.

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

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

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

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

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

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

Kullanıcının niyetini belirlemenin en kolay yolu, önerilen bir yanıttan veya önerilen işlemden elde edilen geri gönderme verilerini kullanmaktır. Öneriyle ilişkilendirilen metinden bağımsız olarak, geri gönderme verileri makine tarafından okunabilir.

Bir kullanıcı kısa mesaj gönderirse aracınız, kullanıcının mesajını işlemek ve ileriye yönelik bir yol tanımlamak için desteklenen anahtar kelimelere yönelik yanıtı ayrıştırabilir veya NLU (Dialogflow gibi) kullanabilir.

Konum ve dosya mesajları, metin veya geri gönderme verisi içermez. Bu nedenle, temsilciniz yanıt vermeden önce 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 bilmezse hata durumuyla yanıt vermeli ve kullanıcıdan ek bilgi isteyerek, farklı bir şekilde giriş yapmasını isteyerek veya nasıl yanıt vereceğini bildiği önerilen yanıtları ve önerilen işlemleri sunarak görüşmeye devam etmeye çalışmalıdır.

3. Adım: Etkileşimin iş mantığına uygun hale getirin

Temsilciniz kullanıcının mesajına verilen 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

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

Örnekler

Aşağıdaki kod, temsilcinizin mesajları nasıl aldığını gösterir. Biçimlendirme ve değer bilgileri için UserMessage konusuna bakın.

Aracı metni alır

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

Temsilci bir öneriden 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
  }
}

Aracı bir dosya alır

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

Gelen etkinlikleri işleme

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

Aşağıdaki kod, temsilcinizin mesajları nasıl aldığını gösterir. Biçimlendirme ve değer bilgisi için UserEvent bölümüne bakın.

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