UI 모듈 이벤트

이 페이지에는 모든 맞춤 UI 모듈 이벤트에 관한 API 문서가 포함되어 있습니다.

일정 세부정보

이벤트 이름 페이로드 설명
active-conversation-selected ActiveConversationSelectedPayload 대화가 선택될 때 전달됩니다.
smart-reply-selected SmartReplySelection 스마트 답장 칩이 선택되면 전송됩니다.
smart-reply-follow-up-suggestions-received SmartReplyFollowUpSuggestionsReceivedPayload 스마트 답장 후속 추천이 수신되면 전송됩니다.
conversation-details-received ConversationDetailsReceivedPayload SDK에서 대화 세부정보 (상담사 및 고객 정보 포함)를 수신하면 전달됩니다.
conversation-initialization-requested ConversationInitializationRequestedPayload Dialogflow 대화를 초기화해야 할 때 전달됩니다.
conversation-initialized ConversationInitializedPayload Dialogflow 대화가 초기화될 때 전달됩니다.
conversation-started ConversationStartedPayload Dialogflow 대화가 시작될 때 전달됩니다.
conversation-completed ConversationCompletedPayload Dialogflow 대화가 완료되면 전달됩니다.
conversation-profile-requested ConversationProfileRequestedPayload Dialogflow 대화 프로필을 가져올 때 전달됩니다.
conversation-profile-received ConversationProfileReceivedPayload Dialogflow 대화 프로필이 수신되면 전달됩니다.
conversation-model-requested ConversationModelRequestedPayload Dialogflow 대화 모델을 가져올 때 전달됩니다.
conversation-model-received ConversationModelReceivedPayload Dialogflow 대화 모델이 수신되면 전달됩니다.
new-message-received NewMessageReceivedPayload 새 스크립트 메시지가 수신되면 전달됩니다.
analyze-content-requested AnalyzeContentRequestDetails AnalyzeContent 요청을 해야 할 때 전달됩니다.
analyze-content-response-received AnalyzeContentResponseReceivedPayload 새 AnalyzeContentResponse가 수신되면 전달됩니다.
conversation-summarization-requested ConversationSummarizationRequestedEventPayload 대화 요약을 요청했습니다.
stateless-conversation-summarization-requested StatelessConversationSummarizationRequestedPayload 상태가 없는 대화 요약을 요청했습니다.
stateless-conversation-summarization-response-received StatelessConversationSummarizationResponseReceivedPayload 상태가 없는 대화 요약 응답이 수신되었습니다.
conversation-summarization-received ConversationSummarizationReceivedPayload 대화 요약을 수신했습니다.
dialogflow-api-error DialogflowApiErrorPayload Dialogflow API 오류가 발생했습니다.
dialogflow-api-authentication-error void Dialogflow API 인증 (401) 오류가 발생했습니다.
answer-record-requested AnswerRecordRequestedPayload 답변 기록이 요청되었습니다.
answer-record-received AnswerRecordReceivedPayload 답변 기록이 접수되었습니다.
patch-answer-record-requested PatchAnswerRecordRequestedPayload 패치 답변 레코드가 요청되었습니다.
patch-answer-record-received PatchAnswerRecordReceivedPayload 패치 답변 레코드 요청이 접수되었습니다.
article-search-requested ArticleSearchRequestedPayload 기사 검색을 요청했습니다.
article-search-response-received ArticleSearchResponseReceivedPayload 기사 검색 결과를 수신했습니다.
dark-mode-toggled DarkModeToggledPayload 상담사 데스크톱에서 어두운 모드로 전환했습니다.
snackbar-notification-requested SnackbarNotificationPayload 스낵바 알림이 요청되었습니다.
live-person-connector-initialized void LivePerson 커넥터가 초기화되었습니다.
genesys-cloud-connector-initialized void Genesys Cloud 커넥터가 초기화되었습니다.
api-connector-initialized void API 커넥터가 초기화되었습니다.
event-based-connector-initialized void 이벤트 기반 커넥터가 초기화되었습니다.
live-person-connector-initialization-failed void LivePerson 커넥터 초기화에 실패했습니다.
genesys-cloud-connector-initialization-failed void Genesys Cloud 커넥터 초기화에 실패했습니다.
genesys-cloud-connector-access-token-received GenesysCloudConnectorAccessTokenReceivedPayload Genesys Cloud 커넥터 액세스 토큰이 수신되었습니다.
api-connector-initialization-failed void API 커넥터 초기화에 실패했습니다.
event-based-connector-initialization-failed void 이벤트 기반 커넥터 초기화에 실패했습니다.
event-based-connection-established void WebSocket 연결이 설정될 때 전달됩니다.
list-messages-requested ListMessagesRequestedPayload 특정 대화의 메시지를 나열하도록 요청합니다.
list-messages-response-received ListMessagesResponseReceivedPayload 메시지 목록 응답이 수신되면 전달됩니다.
virtual-agent-assist-response-message-selected VirtualAgentAssistResponseMessageSelectedPayload Virtual Agent Assist 응답 메시지가 선택되면 전달됩니다. 이 값은 선택한 메시지로 상담사 입력란을 채우는 데 사용됩니다.
human-agent-transfer-initiated HumanAgentTransferInitiatedPayload 통화가 가상 상담사로부터 상담사에게 전달될 때 전달됩니다.
search-knowledge-requested SearchKnowledgeRequestedPayload 지식 검색을 요청했습니다.
search-knowledge-response-received SearchKnowledgeResponseReceivedPayload 검색 지식 응답을 받았습니다.
knowledge-assist-v2-answer-pasted 문자열 채팅에 붙여넣을 Knowledge Assist v2 답변입니다.
batch-create-messages-requested BatchCreateMessagesRequestedPayload 대화에서 메시지를 일괄 생성합니다. 이렇게 하면 메시지에 대한 Agent Assist 추천을 생성하지 않고도 메시지가 대화에 추가됩니다.
batch-create-messages-response-received BatchCreateMessagesResponseReceivedPayload 메시지 일괄 생성 응답을 수신했습니다.

이벤트 페이로드

모든 맞춤 이벤트 페이로드를 확인합니다.

ActiveConversationSelectedPayload

interface ActiveConversationSelectedPayload {
  conversationName: string;
}

AnalyzeContentRequestDetails

interface AnalyzeContentRequestDetails {
  type?: string;
  conversationId: string;
  participantRole:
    | "ROLE_UNSPECIFIED"
    | "HUMAN_AGENT"
    | "AUTOMATED_AGENT"
    | "END_USER";

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversations.participants/analyzeContent#request-body
   */
  request: AnalyzeContentRequest;
}

AnalyzeContentResponseReceivedPayload

interface AnalyzeContentResponseReceivedPayload {
  conversationName: string;
  payload: {
    type?: string;

    /**
     * @link
     * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversations.participants#Participant
     */
    participant?: Participant;

    /**
     * @link
     * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversations.participants/analyzeContent#request-body
     */
    request?: AnalyzeContentRequest;

    /**
     * @link
     * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/AnalyzeContentResponse
     */
    response: AnalyzeContentResponse;
  };
}

ArticleSearchRequestedPayload

interface ArticleSearchRequestedPayload {
  queryText: string;
}

ArticleSearchResponseReceivedPayload

interface ArticleSearchResponseReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/priv/docs/reference/rest/v2beta1/projects.locations.conversations.suggestions/searchArticles#response-body
   */
  payload: SearchArticlesResponse;
}

ConversationDetailsReceivedPayload

interface ConversationDetailsReceivedPayload {
  conversationName: string;
  payload: {
    chatInfo: {
      rtSessionId: string;
      accountId: string;
      chatRequestedTime: number;
      chatStartTime: number;
      sessionStartTime: number;
      chatStartUrl: string;
      spectatedEngagement: boolean;
      chatSkill: string;
    };
    chattingAgentInfo: {
      agentName: string;
      agentNickname: string;
      agentGroupName: string;
      agentId: number;
    };
    agentInfo: {
      accountId: string;
      agentName: string;
      agentNickname: string;
      agentId: number;
      agentEmail: string;
      employeeId: string;
      maxChats: number;
      agentGroupName: string;
    };
    chatTranscript: { lines: TranscriptMessage[] };
    surveyQuestions: {
      preChat: {
        email: { value: string; displayName: string };
        phone: { value: string; displayName: string };
        name: { value: string; displayName: string };
        customizedQuestions: [];
      };
      postChat: [];
      agentSurvey: [];
    };
    visitorInfo: {
      visitorId: string;
      visitorName: string;
      visitorSso: boolean;
      device: string;
      browser: string;
      operatingSystem: string;
      country: string;
      countryCode: string;
      state: string;
      city: string;
      isp: string;
      organization: string;
      IpAddress: string;
      visitStartTime: string;
      chattingVisitorState: string;
      chatRequestedTime: string;
      chatStartUrl: string;
      visitorTimezone: string;
      visitorTyping: boolean;
    };
    campaignInfo: {
      campaignName: string;
      campaignId: string;
      campaignDescription: string;
      targetAudience: [];
      goalName: string;
      goalId: string;
      goalDescription: string;
    };
    engagementInfo: {
      VisitorBehavior: [];
      skill: string;
      engagementType: string;
      engagementId: string;
      engagementName: string;
      agentNote: string;
      engagementSkill: string;
    };
    visitorJourney: {
      pages: [];
      searchEngine: { searchProvider: string; searchKeywords: string };
    };
    SDE: {
      customerDetails: [];
      personalInfo: [];
      marketingSource: [];
      leadGeneration: [];
      transaction: [];
      viewedProducts: [];
      shoppingCart: [];
      serviceActivity: [];
      error: [];
    };
    authenticatedData: { customerDetails: []; personalInfo: [] };
    claimsAndAuthType: { claims: {}; acr: string };
    applicationInfo: { theme: "light" | "dark" };
    customVariables: [];
    splitSession: { customVariables: [] };
  };
}

ConversationInitializationRequestedPayload

interface ConversationInitializationRequestedPayload {
  conversationName: string;
}

ConversationInitializedPayload

interface ConversationInitializedPayload {
  conversation: Conversation;
  participants: ParticipantsMap<Participant_ | null>;
}

ConversationProfileRequestedPayload

interface ConversationProfileRequestedPayload {
  conversationProfileName: string;
}

ConversationProfileReceivedPayload

type ConversationProfileReceivedPayload =
  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversationProfiles#ConversationProfile
   */
  ConversationProfile | null;

ConversationModelRequestedPayload

interface ConversationModelRequestedPayload {
  modelName: string | null;
}

ConversationModelReceivedPayload

type ConversationModelReceivedPayload =
  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversationModels#ConversationModel
   */
  ConversationModel | null;

ConversationSummarizationReceivedPayload

interface ConversationSummarizationReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/SuggestConversationSummaryResponse
   */
  payload: SuggestConversationSummaryResponse;
}

ConversationSummarizationRequestedEventPayload

type ConversationSummarizationRequestedEventPayload = {
  conversationName?: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversations.suggestions/suggestConversationSummary#request-body
   */
  request?: SuggestConversationSummaryRequest;
} | void;

DarkModeToggledPayload

interface DarkModeToggledPayload {
  on: boolean;
}

DialogflowApiErrorPayload

type DialogflowApiErrorPayload = {
  conversationName: string;
  source:
    | "TYPE_UNSPECIFIED"
    | "ARTICLE_SUGGESTION"
    | "FAQ"
    | "SMART_REPLY"
    | "DIALOGFLOW_ASSIST"
    | "SMART_COMPOSE"
    | "ISSUE_SMART_COMPOSE"
    | "SPELL_GRAMMAR_CORRECTION"
    | "CONVERSATION_SUMMARIZATION"
    | "KEY_MOMENT"
    | "ARTICLE_SEARCH"
    | "CONVERSATION_GUIDANCE"
    | "ARTICLE_SUGGESTION_VOICE"
    | "CONVERSATION_SUMMARIZATION_VOICE"
    | "KNOWLEDGE_SEARCH"
    | "KNOWLEDGE_ASSIST"
    | "ENTITY_EXTRACTION"
    | "ANALYZE_CONTENT"
    | "INITIALIZATION"
    | "AUTHORIZATION"
    | "LIST_MESSAGES"
    | "BATCH_CREATE_MESSAGES"
    | "GET_CONVERSATION_PROFILE"
    | "GET_CONVERSATION_MODEL"
    | "SEARCH_KNOWLEDGE"
    | "GENERATE_STATELESS_SUMMARY";
  data?: Dictionary;
  error: GoogleRpcStatus | null;
} | null;

SmartReplySelection

SuggestionFeatureSelection<SmartReplyAnswer>

SmartReplyFollowUpSuggestionsReceivedPayload

interface SmartReplyFollowUpSuggestionsReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/SuggestSmartRepliesResponse#smartreplyanswer
   */
  payload: SmartReplyAnswer_[];
}

PatchAnswerRecordRequestedPayload

type PatchAnswerRecordRequestedPayload = PatchPayload<{
  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.answerRecords#AnswerRecord
   */
  answerRecord: AnswerRecord;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.answerRecords#AnswerRecord
   */
  previousAnswerRecord?: AnswerRecord | undefined;
}>;

PatchAnswerRecordReceivedPayload

interface PatchAnswerRecordReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.answerRecords#AnswerRecord
   */
  payload: AnswerRecord;
}

SnackbarNotificationPayload

interface SnackbarNotificationPayload {
  message: string;
  actionMessage?: string | undefined;
  actionHandler?: () => void;
}

AnswerRecordRequestedPayload

interface AnswerRecordRequestedPayload {
  answerRecordName: string;
}

AnswerRecordReceivedPayload

interface AnswerRecordReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.answerRecords#AnswerRecord
   */
  payload: AnswerRecord;
}

ConversationStartedPayload

interface ConversationStartedPayload {
  conversationName: string;
}

ConversationCompletedPayload

interface ConversationCompletedPayload {
  conversationName: string;
}

NewMessageReceivedPayload

type NewMessageReceivedPayload =
  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/Message
   */
  Message;

GenesysCloudConnectorAccessTokenReceivedPayload

export declare interface GenesysCloudConnectorAccessTokenReceivedPayload {
  accessToken: string;
}

ListMessagesRequestedPayload

interface ListMessagesRequestedPayload {
  conversationName: string;
}

ListMessagesResponseReceivedPayload

interface ListMessagesResponseReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/ListMessagesResponse
   */
  payload: ListMessagesResponse;
}

VirtualAgentAssistResponseMessageSelectedPayload

interface VirtualAgentAssistResponseMessageSelectedPayload {
  responseMessage: string;
}

HumanAgentTransferInitiatedPayload

interface HumanAgentTransferInitiatedPayload {
  conversationName: string;
}

SearchKnowledgeRequestedPayload

interface SearchKnowledgeRequestedPayload {
  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.suggestions/searchKnowledge
   */
  request: SearchKnowledgeRequest;
}

SearchKnowledgeResponseReceivedPayload

interface SearchKnowledgeResponseReceivedPayload {
  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.suggestions/searchKnowledge
   */
  request: SearchKnowledgeRequest;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/SearchKnowledgeResponse
   */
  response: SearchKnowledgeResponse;
}

BatchCreateMessagesRequestedPayload

interface BatchCreateMessagesRequestedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.conversations.messages/batchCreate#request-body
   */
  request: BatchCreateMessagesRequest;
}

BatchCreateMessagesResponseReceivedPayload

interface BatchCreateMessagesResponseReceivedPayload {
  conversationName: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/BatchCreateMessagesResponse
   */
  response: BatchCreateMessagesResponse;
}

StatelessConversationSummarizationRequestedPayload

interface StatelessConversationSummarizationRequestedPayload {
  conversationName?: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/projects.locations.suggestions/generateStatelessSummary#request-body
   */
  request?: GenerateStatelessSummaryRequest;
}

StatelessConversationSummarizationResponseReceivedPayload

interface StatelessConversationSummarizationResponseReceivedPayload {
  conversationName?: string;

  /**
   * @link
   * https://cloud.google.com/dialogflow/es/docs/reference/rest/v2beta1/GenerateStatelessSummaryResponse
   */
  response?: GenerateStatelessSummaryResponse;
}