enВойти в Senler

Контекст сообщения

Используйте contextItems для одного вопроса. Для постоянно открытой страницы передавайте контекст страницы.

Передавайте только данные, которые разрешено видеть этому посетителю. Не добавляйте секреты, токены или платёжные данные. Контекст не выдаёт права на выполнение действий.

Добавьте объект текущего вопроса

Передайте contextItems, когда открываете чат для конкретной сущности или действия:

SenlerWidget.open({
  contextItems: [
    {
      id: "order:123",
      kind: "order",
      role: "business_context",
      display: {
        label: "Заказ #123",
        subtitle: "Открытая карточка",
      },
      ref: {
        entity_type: "order",
        entity_id: "123",
        route: "/orders/123",
      },
      snapshot: {
        status: "awaiting_payment",
        total: "4 900 ₽",
      },
      payload: {
        available_actions: ["pay", "cancel"],
      },
    },
  ],
  message: {
    text: "Опиши, что можно сделать с этим заказом.",
    startNewDialog: true,
    autoSend: true,
  },
});

В примере посетитель видит плашку «Заказ #123», а агент получает ID, маршрут, состояние заказа и доступные действия вместе с вопросом. Это данные для ответа, а не разрешение выполнить оплату или отмену. Одноразовый контекст очищается только после успешной отправки. Постоянный контекст страницы остаётся для следующих сообщений.

Поля объекта и правила объединения перечислены в формате элемента контекста.

Контекст выбранного элемента

Элемент, выбранный через функцию features.element_selection, добавляется как обычный элемент контекста с типом selected_element. Отдельно передавать его в contextItems не нужно.

Чтобы контекст содержал понятное название, назначение и связь с документацией, добавьте элементам страницы data-ai-* атрибуты. Подробности — в «Разметке элементов сайта» и «Подсветке и действиях».