กิจกรรม

เหตุการณ์คือการแจ้งเตือนที่เอเจนต์ของคุณส่งและรับได้ กิจกรรมมี 3 ประเภท ดังนี้

เหตุการณ์ที่เซิร์ฟเวอร์สร้างขึ้น

แพลตฟอร์ม RBM จะส่งเหตุการณ์เพื่อแจ้งให้ตัวแทนทราบเกี่ยวกับการอัปเดตระดับเซิร์ฟเวอร์ เช่น ข้อความหมดอายุ

ดูตัวเลือกการจัดรูปแบบและค่าได้ที่ ServerEvent

สถานะการเปิดใช้งานของตัวแทนมีการเปลี่ยนแปลง

แพลตฟอร์ม RBM จะส่งAgentLaunchEvent สำหรับการเปลี่ยนแปลงทุกครั้งในสถานะการเปิดตัวของตัวแทน ตัวอย่างเช่น เมื่อสถานะของตัวแทน เปลี่ยนจาก PENDING เป็น LAUNCHED หลังจากที่ผู้ให้บริการอนุมัติ คุณจะได้รับ เหตุการณ์ AgentLaunchEvent เพื่อระบุการเปลี่ยนแปลง ระบบจะส่งเหตุการณ์เหล่านี้สำหรับ ตัวแทน RBM ทั้งหมด และสำหรับการเปลี่ยนแปลงสถานะการเปิดตัวของผู้ให้บริการทั้งหมด

การกำหนดค่าเว็บฮุค

คุณสามารถใช้Webhook ระดับพาร์ทเนอร์หรือระดับตัวแทน เพื่อรับการแจ้งเตือนเหล่านี้

ข้อกำหนดเบื้องต้น

  • กำหนดค่าเว็บฮุค สำหรับการรับส่งข้อความ RBM (นี่เป็นข้อกำหนดสำหรับการรับข้อความของผู้ใช้และ เหตุการณ์ที่ผู้ใช้สร้างขึ้น)
  • หากต้องการแยกความแตกต่างระหว่างเหตุการณ์ที่ผู้ใช้สร้างขึ้น กับเหตุการณ์สถานะการเปิดตัวเอเจนต์ ให้ตรวจสอบเส้นทาง message.attributes.type สำหรับค่า agent_launch_event

โครงสร้างเพย์โหลดของเหตุการณ์

ระบบจะส่ง AgentLaunchEvent เป็นข้อความ Pub/Sub เช่น

{
  "message": {
    "attributes": {
      "business_id": "rbm-chatbot-id@rbm.goog",
      "event_type": "REJECTED",
      "product": "RBM",
      "project_number": "3338881441851",
      "type": "agent_launch_event"
    },
    "data": "....BASE64-encoded-JSON-with-notification...",
    "messageId": "14150481888479752",
    "message_id": "14150481888479752",
    "publishTime": "2025-03-05T18:50:21.88Z",
    "publish_time": "2025-03-05T18:50:21.88Z"
  },
  "subscription": "projects/rbm-partner-gcp/subscriptions/rbm-sub"
}

ฟิลด์ AgentLaunchEvent.LaunchState ในเพย์โหลดของเหตุการณ์จะระบุสถานะการเปิดตัวใหม่ของเอเจนต์ ค่าที่เป็นไปได้มีดังนี้

ค่า สถานะการเปิดตัวของตัวแทน รายละเอียด
UNLAUNCHED ยังไม่ได้เปิดตัว อนุญาตให้แก้ไขได้
PENDING รอดำเนินการ คำขอดังกล่าวได้ถูกส่งไปยังผู้ให้บริการเพื่อตรวจสอบแล้ว
LAUNCHED เปิดตัวแล้ว ข้อความจะได้รับอนุญาตบนผู้ให้บริการที่กำหนด
REJECTED ถูกปฏิเสธจากผู้ให้บริการรายหนึ่ง เหตุผลการปฏิเสธระบุไว้ในความคิดเห็น
SUSPENDED ถูกระงับในเครือข่ายของผู้ให้บริการที่ระบุ เหตุผลการระงับระบุไว้ในความคิดเห็น

ฟิลด์ข้อมูลประกอบด้วยวัตถุ JSON ที่เข้ารหัส Base64 พร้อมรายละเอียดสถานะการเปิดตัว นี่คือตัวอย่างของ JSON ที่ถอดรหัสแล้ว:

    {
      "eventId": "rbm-chatbot-id/0a7ed168-676e-4a56-b422-b23434",
      "agentId": "rbm-chatbot-id@rbm.goog",
      "botDisplayName": "RBM Welcome Bot 7 - RBM Chatbot name",
      "brandId": "bd38fbff-392a-437b-a6f2-7f2e43745b56",
      "brandDisplayName": "Chatbots brand",
      "regionId": "/v1/regions/fi-rcs",
      "oldLaunchState": "PENDING",
      "newLaunchState": "REJECTED",
      "actingParty": "rbm-support@google.com",
      "comment": "Carrier has rejected the launch: policy violation",
      "sendTime": "2025-03-05T18:50:19.386436Z"
    }

ตารางต่อไปนี้แสดงสถานะการเปิดตัวตัวแทนและการดำเนินการที่กระตุ้นสถานะเหล่านั้น:

สถานะการเปิดตัวเก่า สถานะการเปิดตัวใหม่ การกระตุ้นให้เกิดการเปลี่ยนแปลง
PENDING LAUNCHED ตัวแทนที่กำลังรอการอนุมัติ
PENDING REJECTED ตัวแทนที่รอการพิจารณาถูกปฏิเสธ
LAUNCHED SUSPENDED ตัวแทนเปิดตัวถูกระงับ
SUSPENDED LAUNCHED ตัวแทนที่ถูกระงับการใช้งานจะถูกเปิดใช้งานอีกครั้ง
SUSPENDED TERMINATED ตัวแทนที่ถูกระงับถูกยุติแล้ว
TERMINATED LAUNCHED เปิดตัวตัวแทนที่ถูกยกเลิกแล้ว

ข้อความหมดอายุแล้ว การเพิกถอนสำเร็จแล้ว

ข้อความหมดอายุแล้วและถูกเพิกถอนสำเร็จแล้ว เหตุการณ์นี้อาจเป็นตัวกระตุ้นที่ดีสำหรับกลยุทธ์การส่งข้อความสำรองของคุณ

{
  "phoneNumber": [phone number of recipient that the original message was intended for] ,
  "messageId": [RCS message ID of the message],
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKED",
  "eventId": [unique ID generated by the RBM platform],
  "sendTime": [time at which the server sent this event]
}

ข้อความหมดอายุแล้ว เพิกถอนไม่สำเร็จ

ข้อความหมดอายุแล้วแต่ไม่ถูกเพิกถอน

{
  "phoneNumber": [phone number of recipient that the original message was intended for] ,
  "messageId": [RCS message ID of the message],
  "agentId": [bot ID],
  "eventType": "TTL_EXPIRATION_REVOKE_FAILED",
  "eventId": [unique ID generated by the RBM platform],
  "sendTime": [time at which the server sent this event]
}

การส่งข้อความไม่มีการรับประกัน

  • หากข้อความถูกส่งแล้ว คุณจะได้รับเหตุการณ์ DELIVERED ที่เว็บฮุกของคุณ
  • หากระบบไม่ส่งข้อความ ให้ใช้ API การเพิกถอนเพื่อส่งคำขอเพิกถอน

หากข้อความมีความเร่งด่วน เช่น OTP หรือการแจ้งเตือนการฉ้อโกง คุณควร ส่งข้อความผ่านช่องทางอื่น เช่น SMS แม้ว่าการดำเนินการนี้จะส่งผลให้ผู้ใช้ได้รับ ข้อความซ้ำก็ตาม

เหตุการณ์ที่ผู้ใช้สร้างขึ้น

เช่นเดียวกับข้อความของผู้ใช้และการตรวจสอบความสามารถ เอเจนต์จะได้รับเหตุการณ์ของผู้ใช้เป็น JSON

สำหรับการจัดรูปแบบและตัวเลือกค่า โปรดดู UserEvent

ผู้ใช้ได้รับข้อความจากตัวแทน

เหตุการณ์นี้บ่งชี้ว่ามีการนำส่งข้อความแล้ว

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "DELIVERED",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้อ่านข้อความตัวแทน

เหตุการณ์นี้ระบุว่าข้อความได้รับการเปิดหรือได้รับการรับทราบแล้ว

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "READ",
  "eventId": "EVENT_ID",
  "messageId": "MESSAGE_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้เริ่มพิมพ์

เหตุการณ์นี้บ่งชี้ว่าผู้ใช้กำลังพิมพ์

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "IS_TYPING",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้ส่งข้อความ

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "text": "Hi",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้ส่งไฟล์

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "userFile": {
    "payload": {
      "mimeType": "image/gif",
      "fileSizeBytes": 127806,
      "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9",
      "fileName": "4_animated.gif"
    }
  },
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

ผู้ใช้แตะคำตอบที่แนะนำ

เมื่อผู้ใช้แตะคำตอบที่แนะนำ ตัวแทนของคุณจะได้รับเหตุการณ์พร้อมข้อมูลการโพสต์กลับและข้อความตอบกลับ

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234",
    "text": "Hello there!"
  }
}

ผู้ใช้แตะการดำเนินการที่แนะนำ

เมื่อผู้ใช้แตะการดำเนินการที่แนะนำ ตัวแทนของคุณจะได้รับเหตุการณ์พร้อมข้อมูลการโพสต์แบ็กของการดำเนินการนั้น

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID",
  "suggestionResponse": {
    "postbackData": "postback_1234"
  }
}

ผู้ใช้ยกเลิกการสมัครจากการสนทนา

หากผู้ใช้ไม่ต้องการรับข้อความที่ไม่จำเป็นจากธุรกิจ เช่น โปรโมชัน ก็สามารถยกเลิกการสมัครรับการสนทนา RBM ใน Google Messages ได้

เหตุการณ์ UNSUBSCRIBE ระบุว่าผู้ใช้ได้ยกเลิกการสมัครจากการสนทนากับตัวแทนของคุณและธุรกิจที่ตัวแทนเป็นตัวแทน นี่คือตัวอย่างของเพย์โหลด JSON:

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "UNSUBSCRIBE",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

วิธีการทำงาน

  • ตัวเลือกยกเลิกการสมัครรับข้อมูลจะพร้อมใช้งานเสมอในเมนูแชท สำหรับตัวแทนส่งเสริมการขายและตัวแทนใช้งานหลายรายการ ตัวเลือกนี้อาจปรากฏขึ้นโดยตรงในแชทหลังจากมีข้อความที่ยังไม่ได้อ่านจำนวนหนึ่ง (กฎเฉพาะจะแตกต่างกันไปในแต่ละประเทศ)
  • การเลือกUnsubscribe จะทำให้เกิดการดำเนินการสองอย่างพร้อมกัน: Google Messages จะส่งคำสำคัญเฉพาะประเทศ (เช่น "STOP") ไปยังตัวแทนของคุณ และแพลตฟอร์ม RBM จะส่งเหตุการณ์ UNSUBSCRIBE ไปยังเว็บฮุกของคุณ

    คำหลักจะถูกกำหนดโดยรหัสประเทศสองตัวอักษรของหมายเลขโทรศัพท์ของผู้ใช้ ตารางต่อไปนี้แสดงรายการคำหลักสำหรับแต่ละประเทศที่รองรับ

    ประเทศ (รหัสประเทศ) คีย์เวิร์ดการยกเลิกการสมัครรับข้อมูล
    สหรัฐอเมริกา (US), อินเดีย (IN), สหราชอาณาจักร (GB), เยอรมนี (DE) หยุด
    สเปน (ES), เม็กซิโก (MX) BAJA
    ฝรั่งเศส (FR) หยุด
    บราซิล (BR) พาราร์
  • หลังจากที่ผู้ใช้ยกเลิกการสมัคร การสนทนาจะยังคงอยู่ในกล่องจดหมาย เว้นแต่จะมีการรายงานว่าเป็นสแปม ในกรณีนี้ การสนทนาจะถูกย้ายไปยังโฟลเดอร์สแปมและถูกบล็อก

  • Google จะตรวจสอบรูปแบบข้อความหลังจากที่ผู้ใช้ยกเลิกการสมัครรับอีเมลเพื่อระบุการละเมิดนโยบายและกฎทางธุรกิจ

กฎเกณฑ์ทางธุรกิจ

  • ในฐานะพาร์ทเนอร์ RBM ที่จัดการการสนทนานี้ คุณมีหน้าที่ ปฏิบัติตามคำขอของผู้ใช้ในการยกเลิกการติดตาม
  • หากคุณไม่สามารถยกเลิกการสมัครภายในเธรดข้อความได้ คุณต้องส่งข้อความยืนยันทันทีพร้อมลิงก์โดยตรงไปยังเว็บไซต์หรือแอปที่ผู้ใช้สามารถจัดการการตั้งค่าการสมัครของตนได้
  • หลังจากที่ผู้ใช้ยกเลิกการสมัครแล้ว จะไม่สามารถส่งข้อความที่ไม่จำเป็นได้
  • ข้อความสำคัญยังคงได้รับอนุญาต ซึ่งรวมถึง:
    • การตรวจสอบสิทธิ์ เช่น รหัสผ่านครั้งเดียว (OTP)
    • การแจ้งเตือนเกี่ยวกับบริการเฉพาะที่ผู้ใช้ร้องขอและยินยอม
    • การยืนยันคำขอยกเลิกการสมัครของผู้ใช้ พร้อมข้อมูลสำหรับจัดการการตั้งค่าการสื่อสารเพิ่มเติม

ตัวอย่าง

หากผู้ใช้ยกเลิกการสมัครจากตัวแทนสายการบินที่มีการใช้งานแบบใช้งานหลายอย่าง คุณจะต้องหยุดส่งข้อความทางการตลาด อย่างไรก็ตาม คุณสามารถส่งการอัปเดตเที่ยวบินได้หากผู้ใช้ได้ให้ความยินยอมอย่างชัดแจ้งในการรับการอัปเดตสำหรับเที่ยวบินนั้นๆ

เหตุผลในการยกเลิกการสมัคร

เมื่อผู้ใช้ยกเลิกการสมัครจากตัวแทนของคุณ พวกเขาสามารถเลือกเหตุผลจากตัวเลือกต่อไปนี้:

  • ไม่ได้ลงชื่อสมัครรับข้อมูล
  • มีข้อความมากเกินไป
  • ไม่สนใจเป็นสมาชิกแล้ว
  • สแปม
  • อื่นๆ

ในปัจจุบัน เหตุผลในการยกเลิกการสมัครจะไม่ได้รับการเปิดเผยให้กับพันธมิตรหรือผู้ให้บริการทราบ

ผู้ใช้สมัครเข้าร่วมการสนทนาอีกครั้ง

ผู้ใช้สามารถสมัครเข้าร่วมการสนทนาที่ยกเลิกไปแล้วใน Google Messages อีกครั้งได้

เหตุการณ์ SUBSCRIBE ระบุว่าผู้ใช้ต้องการรับข้อความจากตัวแทนของคุณ รวมถึงเนื้อหาที่ไม่จำเป็น เช่น โปรโมชัน นี่คือตัวอย่างของเพย์โหลด JSON:

{
  "senderPhoneNumber": "PHONE_NUMBER",
  "eventType": "SUBSCRIBE",
  "eventId": "EVENT_ID",
  "agentId": "AGENT_ID"
}

วิธีการทำงาน

  • ตัวเลือกสมัครสมาชิก ซึ่งมีให้เลือกใช้ทั้งจากเมนูแชทและลิงก์ในแชท ช่วยให้ผู้ใช้สามารถสมัครสมาชิกการสนทนาที่ยกเลิกไปแล้วได้อีกครั้ง
  • การเลือกสมัครสมาชิกจะกระตุ้นการดำเนินการสองอย่างพร้อมกัน: Google Messages จะส่งคำสำคัญเฉพาะประเทศ (เช่น "เริ่มต้น") ไปยังตัวแทนของคุณ และแพลตฟอร์ม RBM จะส่งเหตุการณ์ SUBSCRIBE ไปยังเว็บฮุกของคุณ

    คำหลักที่เฉพาะเจาะจงจะถูกกำหนดโดยรหัสประเทศสองตัวอักษรของหมายเลขโทรศัพท์ของผู้ใช้ ตารางต่อไปนี้แสดงรายการคำหลักสำหรับแต่ละประเทศที่รองรับ

    ประเทศ (รหัสประเทศ) คำสำคัญในการสมัครสมาชิก
    สหรัฐอเมริกา (US), อินเดีย (IN), สหราชอาณาจักร (GB), เยอรมนี (DE) เริ่ม
    สเปน (ES), เม็กซิโก (MX) ALTA
    ฝรั่งเศส (FR) เดมาร์เรอร์
    บราซิล (BR) começar

กฎธุรกิจ

  • ในฐานะพาร์ทเนอร์ RBM ที่จัดการการสนทนานี้ คุณมีหน้าที่ ปฏิบัติตามคำขอของผู้ใช้ในการสมัครรับข้อมูลอีกครั้ง
  • การสมัครรับข้อความอีกครั้งมีผลกับข้อความทุกประเภท รวมถึงเนื้อหาที่ไม่จำเป็น เช่น โปรโมชัน
  • หากผู้ใช้ส่งข้อความถึงธุรกิจหลังจากยกเลิกการสมัครรับข้อความแล้ว ระบบจะถือว่าเป็นการ ขอสมัครรับข้อความอีกครั้ง
  • หากผู้ใช้สมัครรับข้อความอีกครั้งนอกช่องทางการรับส่งข้อความ (เช่น ในเว็บไซต์ของคุณ) คุณในฐานะพาร์ทเนอร์ RBM มีหน้าที่ต้องอัปเดตสถานะของผู้ใช้และส่งข้อความต่อตามนั้น

เหตุการณ์ที่ Agent สร้างขึ้น

ตัวแทนจะส่งเหตุการณ์เพื่อจำลองการโต้ตอบของมนุษย์และรับรองกับผู้ใช้ว่า ตัวแทนของคุณมีส่วนร่วมกับข้อความของผู้ใช้ สำหรับผู้ใช้ เหตุการณ์จะแสดงเป็นการแจ้งเตือนในการสนทนา

ดูตัวเลือกการจัดรูปแบบและค่าได้ที่ phones.agentEvents

ตัวแทนส่งเหตุการณ์ READ

สำหรับผู้ใช้ เหตุการณ์นี้จะปรากฏเป็นใบตอบรับการอ่านสำหรับข้อความที่เฉพาะเจาะจง ซึ่งจะแจ้งให้ผู้ใช้ทราบว่าแพลตฟอร์ม RBM ได้ส่งข้อความของผู้ใช้แล้วและตัวแทนกำลังประมวลผลข้อความ

โค้ดต่อไปนี้จะส่งเหตุการณ์ READ สำหรับข้อความที่มี messageId ที่ตรงกัน

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d "{
  'eventType': 'READ',
  'messageId': 'MESSAGE_ID'
}"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage('+12223334444', messageId);
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

Java

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Send the device an event to indicate that messageId has been read
rbmApiHelper.sendReadMessage(messageId, "+12223334444");
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Send the device an event to indicate that message_id was read
rbm_service.send_read_event('+12223334444', message_id)
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Send the device an event to indicate that messageId has been read
rbmApiHelper.SendReadMessage(messageId, "+12223334444");
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

ตัวแทนส่งเหตุการณ์ IS_TYPING

เหตุการณ์นี้จะปรากฏต่อผู้ใช้เป็นตัวบ่งชี้การพิมพ์และแจ้งให้ผู้ใช้ทราบว่าตัวแทนของคุณกำลังเขียนข้อความ ข้อความว่า "กำลังพิมพ์" จะหมดอายุหลังจากผ่านไปไม่นาน (ประมาณ 20 วินาที) หรือเมื่ออุปกรณ์ของผู้ใช้ได้รับข้อความใหม่จากตัวแทน ของคุณ เอเจนต์สามารถส่งเหตุการณ์ IS_TYPING หลายรายการเพื่อรีเซ็ตตัวจับเวลาหมดอายุของตัวบ่งชี้การพิมพ์

โค้ดต่อไปนี้จะส่งเหตุการณ์ IS_TYPING

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d "{
  'eventType': 'IS_TYPING',
}"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage('+12223334444', function() {
    console.log('Typing event sent!');
});
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

Java

import com.google.rbm.RbmApiHelper;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper();

// Send the device an event to indicate that the agent is typing
rbmApiHelper.sendIsTypingMessage("+12223334444");
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Send the device an event to indicate that the agent is typing
rbm_service.send_is_typing_event('+12223334444')
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Send the device an event to indicate that the agent is typing
rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");
โค้ดนี้เป็นส่วนหนึ่งของตัวแทนตัวอย่าง RBM