Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

  • chatSessionStarted - Оператору пришла новая сессия чата (при этом не факт, что оператору, может быть просто в помощь)
  • operatorNotFound - Сессия не нашла оператора и упала в помощь
  • chatSessionAdded - Сессия пришла оператору
  • chatMessageCreated - Оператору пришло новое сообщение в чате
  • chatMessageEdited - Кто-то из операторов изменил сообщение в чате
  • chatMessageRead - Оператору пришло сообщение, что клиент прочитал сообщение в чате
  • chatSessionDeleted - Есть кейсы, когда сессия после отправки определенного сообщения уходит на бота - и тогда пропадает у оператора
  • chatSessionSwitchedFromBotToOperator - Сессия была переключена с бота на оператора
  • sessionClosedByClient - Клиент закрыл сессию
  • operatorBlocked - Оператора заблокировали на платформе — требуется выкинуть оператора из кабинета
  • chatUserExists - Кто-то зашел в текущего оператора. Текущий сеанс оператора нужно закрыть
  • typing - пользователь печатает сообщение в чате
  • operatorLoggedOut - сделать оператора офлайн
  • clientOnline - клиент стал онлайн
  • clientOffline - клиент стал офлайн
  • Блок кода
    languagejavascript
    titlechatSessionStarted
    collapsetrue
    chatSessionStarted: {
      event: 'chatSessionStarted',
      data: {
        id: string;
        chatId: string;
        clientId: string | null;
        name: string;
        markedAsSpam: boolean;
        operatorId: string | number | null;
        operatorType?: string;
        channel: string;
        botStatus?: string | null;
        status: string;
        startedAt: string;
        clientOnlineAt?: string | null;
        clientOfflineAt?: string | null;
        lastMessageCreatedAt: string | null;
        lastMessage?: Unknown | null;
        clientExternalId?: string | null;
        clientBanned?: boolean | null;
        referer?: string;
        clientIp?: string | null;
        coordinates?: {
          city?: string | null;
          latitude?: number | null;
          zip_code?: string | null;
          longitude?: number | null;
          time_zone?: string | null;
          region_name?: string | null;
          country_code?: string | null;
          country_name?: string | null;
        } | null;
        unreadClientMessageCount?: number | null;
        unreadClientMessageExists?: boolean | null;
        messengerType?: string | null;
        whatsappPhone?: string | null;
        timerFirstAnswer?: number;
        timerNextAnswers?: number;
        lastOperatorMessage?: Unknown | null;
        firstClientMessageAfterLastOperatorMessage?: Unknown | null;
        operatorAssignedAt: string | null;
        previousOperator?: {
          id?: string | null;
          name?: string | null;
        } | null;
      }
    }
  • operatorNotFound - Сессия не нашла оператора и упала в помощь
  • chatSessionAdded - Сессия пришла оператору
  • chatMessageCreated - Оператору пришло новое сообщение в чате
  • chatMessageEdited - Кто-то из операторов изменил сообщение в чате
  • chatMessageRead - Оператору пришло сообщение, что клиент прочитал сообщение в чате
  • chatSessionDeleted - Есть кейсы, когда сессия после отправки определенного сообщения уходит на бота - и тогда пропадает у оператора
  • chatSessionSwitchedFromBotToOperator - Сессия была переключена с бота на оператора
  • sessionClosedByClient - Клиент закрыл сессию
  • operatorBlocked - Оператора заблокировали на платформе — требуется выкинуть оператора из кабинета
  • chatUserExists - Кто-то зашел в текущего оператора. Текущий сеанс оператора нужно закрыть
  • typing - пользователь печатает сообщение в чате
  • operatorLoggedOut - сделать оператора офлайн
  • clientOnline - клиент стал онлайн
  • clientOffline - клиент стал офлайн
Подробное описание данных в событиях
Блок кода
languagejavascript
titleoperatorNotFound
collapsetrue
operatorNotFound: {

...


  action: 'operatorNotFound';

...


  data: {

...


    botStatus: string; // например, 'HELP'

...


    chatId: string;

...


    operatorType: string;

...


    sessionId: string;

...


    status: string;

...


  };

...


}
Блок кода
languagejavascript
titlechatSessionAdded
collapsetrue
chatSessionAdded: {

...


  action: 'chatSessionAdded';

...


  data: {

...


    id: string;

...


    chatId: string;

...


    clientId: string | null;

...


    name: string;

...


    markedAsSpam: boolean;

...


    operatorId: string | number | null;

...


    operatorType?: string;

...


    channel: string;

...


    botStatus?: string | null;

...


    status: string;

...


    startedAt: string;

...


    clientOnlineAt?: string | null;

...


    clientOfflineAt?: string | null;

...


    lastMessageCreatedAt: string | null;

...


    lastMessage?: Unknown | null;

...


    clientExternalId?: string | null;

...


    clientBanned?: boolean | null;

...


    referer?: string;

...


    clientIp?: string | null;

...


    coordinates?: {

...


      city?: string | null;

...


      latitude?: number | null;

...


      zip_code?: string | null;

...


      longitude?: number | null;

...


      time_zone?: string | null;

...


      region_name?: string | null;

...


      country_code?: string | null;

...


      country_name?: string | null;

...


    } | null;

...


    unreadClientMessageCount?: number | null;

...


    unreadClientMessageExists?: boolean | null;

...


    messengerType?: string | null;

...


    whatsappPhone?: string | null;

...


    timerFirstAnswer?: number;

...


    timerNextAnswers?: number;

...


    lastOperatorMessage?: Unknown | null;

...


    firstClientMessageAfterLastOperatorMessage?: Unknown | null;

...


    operatorAssignedAt: string | null;

...


    previousOperator?: {

...


      id?: string | null;

...


      name?: string | null;

...


    } | null;

...


  };

...


}
Блок кода
languagejavascript
titlechatMessageCreated
collapsetrue
chatMessageCreated: {

...


  action: 'chatMessageCreated';

...


  data: {

...


    id: string;

...


    sessionId: string;

...


    clientId: string | null;

...


    authorId: string;

...


    authorType: string;

...


    authorName: string | null;

...


    type: 'REGULAR' | 'TERMINAL';

...


    body: string;

...


    attachments: unknown[];

...


    createdAt: string;

...


    updatedAt?: string | null;

...


    readAt?: string | null;

...


    deletedAt?: string | null;

...


    actions?: unknown[];

...


    replyTo?: {

...


      id: string;

...


      authorType: string;

...


      body: string;

...


      attachments: unknown[];

...


      authorName: string | null;

...


    } | null;

...


    history?: {

...


      editedAt?: string | null;

...


    }[];

...


  }

...


  replyToMessage?: {

...


    id: string;

...


    authorType: string;

...


    body: string;

...


    attachments: unknown[];

...


    authorName: string | null;

...


  } | null;

...


}
Блок кода
languagejavascript
titlechatMessageEdited
collapsetrue
chatMessageEdited: {

...


  action: 'chatMessageEdited';

...


  data: {

...


    body: string;

...


    messageId: string;

...


    attachments: unknown[];

...


  };

...


}
Блок кода
languagejavascript
titlechatMessageRead
collapsetrue
chatMessageRead: {

...


  action: 'chatMessageRead';

...


  data: {

...


    messageId: string;

...


  };

...


}
Блок кода
languagejavascript
titlechatSessionDeleted
collapsetrue
chatSessionDeleted: {

...


  action: 'chatSessionDeleted';

...


  data: {

...


    sessionId: string;

...


  };

...


}
Блок кода
languagejavascript
titlechatSessionSwitchedFromBotToOperator
collapsetrue
chatSessionSwitchedFromBotToOperator: {

...


  action: 'chatSessionSwitchedFromBotToOperator';

...


  data: {

...


    operatorId: string;

...


    operatorName: string;

...


    sessionId: string;

...


  };

...


}
Блок кода
languagejavascript
titlesessionClosedByClient
collapsetrue
sessionClosedByClient: {

...


  action: 'sessionClosedByClient';

...


  data: {

...


    chatId: string;

...


    sessionId: string;

...


  };

...


}
Блок кода
languagejavascript
titleoperatorBlocked
collapsetrue
operatorBlocked: {

...


  action: 'operatorBlocked',

...


  data: Unknown,

...


}
Блок кода
languagejavascript
titlechatUserExists
collapsetrue
chatUserExists: {

...


  action: 'chatUserExists';

...


  data: Unknown;

...


}

typing: {
  action: 'typing',
  data: Unknown,
}

...