Nas conversas do Business Messages, os eventos informam e enriquecem a experiência de conversa de usuários e agentes ao comunicar conteúdo que não é de mensagem. Para usuários, os eventos são exibidos como notificações nas conversas e acionados com base em várias ações que os usuários podem realizar. Os agentes recebem eventos nos webhooks e os enviam com chamadas de API.
Os agentes precisam estar cientes dos eventos iniciados pelo usuário e capazes de responder de acordo. Por exemplo, se um usuário solicita um agente em tempo real, mas o agente não consegue responder positiva ou negativamente à solicitação, isso resulta em uma experiência do usuário ruim.
Tipos de evento
Cada evento pertence a um tipo específico:
Os eventos de agente em tempo real solicitado indicam que o usuário quer falar diretamente com um agente em tempo real.
Se o agente puder fazer a transição da conversa para um representante humano, envie um evento Representante representativo e envie mensagens subsequentes de um representante humano.
Se o agente não conseguir transferir a conversa para um representante humano, envie uma mensagem para notificar o usuário e informar quando um agente em tempo real estará disponível.
Os eventos de representação de que entrou/saiu informam os usuários quando agentes ativos entram ou saem de uma conversa. Esses eventos exibem notificações na conversa e ajudam a definir as expectativas do usuário sobre a capacidade de resposta e os tipos de perguntas que podem ser feitas.
Os eventos de digitação indicam que o usuário ou o agente está digitando.
Para os usuários, o booleano
isTyping
indica o status de digitação. Cada mudança de status aciona um novo evento.Os agentes podem enviar eventos
TYPING_STARTED
eTYPING_STOPPED
para exibir indicadores de digitação na conversa. Digitar eventos de agentes informa aos usuários que um representante humano está escrevendo uma resposta ou que a automação de back-end está processando a pergunta ou solicitação.
Enviar um evento
Para enviar um evento, execute o comando a seguir. Substitua os seguintes itens:
- CONVERSATION_ID pelo identificador da conversa para a qual você quer enviar a pesquisa.
- EVENT_ID com um identificador exclusivo para o evento
- PATH_TO_SERVICE_ACCOUNT_KEY pelo caminho para a chave da conta de serviço na sua máquina
- EVENT_TYPE com um valor de
EventType
- REPRESENTATIVE_NAME pelo nome voltado ao usuário do agente ao vivo ou automação que cria o evento;
- REPRESENTATIVE_TYPE com um valor de
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', }, }"
Para opções de formatação e valor, consulte
conversations.events
.
Exemplo: enviar um evento de participação de um representante.
# 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' } }"
Receber um evento
Quando um usuário aciona um evento no próprio dispositivo, seu agente recebe o evento no webhook dele. Receba e processe eventos da mesma forma que recebe mensagens.
Os eventos iniciados pelo usuário têm o seguinte formato.
{ "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", } }
Para opções de formatação e valor, consulte
UserMessage
.