برای غنی سازی مکالمات رویدادها را ارسال و دریافت کنید

در مکالمات Business Messages، رویدادها با برقراری ارتباط محتوای غیر پیامی، تجربه مکالمه کاربران و نمایندگان را افزایش می دهند. برای کاربران، رویدادها به‌عنوان اعلان‌هایی در مکالماتشان نمایش داده می‌شوند و بر اساس اقدامات مختلفی که ممکن است کاربران انجام دهند، فعال می‌شوند. نمایندگان رویدادها را در وب هوک های خود دریافت می کنند و رویدادها را با تماس های API ارسال می کنند.

نمایندگان باید از رویدادهای آغاز شده توسط کاربر آگاه باشند و بتوانند بر این اساس پاسخ دهند. به عنوان مثال، اگر یک کاربر یک نماینده زنده درخواست کند، اما نماینده نتواند به درخواست پاسخ مثبت یا منفی بدهد، این منجر به تجربه کاربری بدی می شود.

انواع رویداد

هر رویداد به یک نوع خاص تعلق دارد:

  • رویدادهای درخواست شده توسط نماینده زنده نشان می دهد که کاربر می خواهد مستقیماً با یک نماینده زنده صحبت کند.

    اگر نماینده بتواند مکالمه را به یک نماینده انسانی انتقال دهد، یک رویداد عضویت نماینده ارسال کند، سپس پیام‌های بعدی را از نماینده انسانی ارسال کند.

    اگر نماینده نمی تواند مکالمه را به نماینده انسانی منتقل کند، پیامی ارسال کنید تا به کاربر اطلاع داده شود و زمانی که یک نماینده زنده در دسترس خواهد بود به او اطلاع دهید.

  • رویدادهای عضو شده/چپ نماینده به کاربران می‌گویند که نمایندگان زنده چه زمانی به مکالمه می‌پیوندند یا آن را ترک می‌کنند. این رویدادها اعلان‌ها را در مکالمه نمایش می‌دهند و به تعیین انتظارات کاربر در مورد پاسخ‌دهی و انواع سؤالاتی که می‌توانند بپرسند کمک می‌کنند.

    نماینده پیوست/چپ کرد

  • رویدادهای تایپ نشان می دهد که کاربر یا عامل در حال تایپ است.

    برای کاربران، isTyping بولی وضعیت تایپ آنها را نشان می دهد. هر تغییر وضعیت باعث ایجاد یک رویداد جدید می شود.

    نمایندگان می توانند رویدادهای TYPING_STARTED و TYPING_STOPPED را برای نمایش نشانگرهای تایپ در مکالمه ارسال کنند. تایپ رویدادها از عوامل به کاربران می گوید که یک نماینده انسانی در حال نوشتن پاسخ است یا اینکه اتوماسیون باطن در حال پردازش سؤال یا درخواست آنها است.

    نشانگر تایپ

یک رویداد ارسال کنید

برای ارسال یک رویداد، دستور زیر را اجرا کنید. موارد زیر را جایگزین کنید:

  • CONVERSATION_ID با شناسه مکالمه ای که می خواهید نظرسنجی را ارسال کنید
  • EVENT_ID با یک شناسه منحصر به فرد برای رویداد
  • PATH_TO_SERVICE_ACCOUNT_KEY با مسیر کلید حساب سرویس شما در دستگاه شما
  • EVENT_TYPE با مقداری از EventType
  • REPRESENTATIVE_NAME با نام کاربر زنده یا خودکار ایجاد کننده رویداد
  • REPRESENTATIVE_TYPE با مقداری از RepresentativeType
curl -X POST "https://businessmessages.googleapis.com/v1/conversations/CONVERSATION_ID/events?eventId=EVENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-messages" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businessmessages`" \
-d "{
  'eventType': 'EVENT_TYPE',
  'representative': {
    'avatarImage': 'REPRESENTATIVE_AVATAR_URL',
    'displayName': 'REPRESENTATIVE_NAME',
    'representativeType': 'REPRESENTATIVE_TYPE',
  },
}"

برای گزینه‌های قالب‌بندی و مقدار، به conversations.events مراجعه کنید.

مثال: ارسال یک رویداد پیوسته نماینده

# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#     https://www.apache.org/licenses/LICENSE-2.0

# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This code sends a REPRESENTATIVE_JOINED event to the user.
# Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/message/events#send

# Replace the __CONVERSATION_ID__ with a conversation id that you can send messages to
# Make sure a service account key file exists at ./service_account_key.json

curl -X POST "https://businessmessages.googleapis.com/v1/conversations/__CONVERSATION_ID__/events?eventId=6a0af2c6-787d-4097-870d-93fe20351747" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-messages" \
-H "$(oauth2l header --json ./service_account_key.json businessmessages)" \
-d "{
  'eventType': 'REPRESENTATIVE_JOINED',
  'representative': {
    'avatarImage': 'https://developers.google.com/identity/images/g-logo.png',
    'displayName': 'Chatbot',
    'representativeType': 'HUMAN'
  }
}"

یک رویداد را دریافت کنید

وقتی کاربر رویدادی را در دستگاه خود راه اندازی می کند، نماینده شما رویداد را در وب هوک خود دریافت می کند. رویدادها را به همان شیوه ای که پیام ها را دریافت می کنید، دریافت و پردازش کنید.

رویدادهای ایجاد شده توسط کاربر دارای قالب زیر هستند.

{
  "agent": "brands/BRAND_ID/agents/AGENT_ID",
  "requestId": "REQUEST_ID",
  "conversationId": "CONVERSATION_ID",
  "customAgentId": "CUSTOM_AGENT_ID",
  "sendTime": "SEND_TIME",
  "userStatus": {
    "isTyping": "BOOLEAN",
    "requestedLiveAgent": "BOOLEAN",
    "createTime": "CREATION_TIME",
  }
}

برای گزینه‌های قالب‌بندی و مقدار، به UserMessage مراجعه کنید.