# Общее описание и условия работы

После того как диалог был закрыт оператором, посетителю может быть предложено пройти опрос. На одном аккаунте можно создать любое количество опросов и назначить разные опросы для разных отделов. Создать опрос можно через [Конструктор опросов](https://webim.ru/kb/for-admins/surveys/surveys-editor.html) или вручную — составив конфигурацию в формате JSON.

Опрос может состоять из нескольких шагов (форм), в которых может быть несколько вопросов, которые, в свою очередь, могут принимать один из трёх предложенных видов:

  * Оценка по шкале от 1 до 5 звёзд (*оценка*, *stars*)

  * Выбор одного варианта из нескольких предложенных (*выбор*, *radio*)

  * Комментарий пользователя (*комментарий*, *comment*)

Для каждого вопроса может быть только один ответ. В виджете чата между формами можно переключаться по нажатию на соответствующие кнопки (вперёд и назад), а также изменять свои ответы до отправки. В остальных доступных каналах общения формы не отображаются, вопросы идут друг за другом в последовательном порядке, изменение ответов не предусмотрено.

Опрос отправляется при соблюдении следующих условий:

  * Существует корректная конфигурация опроса (созданного в конструкторе или добавленного в БД).

  * Опросы включены в account config (опция `surveys`) и меню тарифов.

  * Оценка оператора (опция `rate_operator`) отключена в account config.

  * Посетитель **не** заблокирован.

  * В чате есть оператор.

  * Опросы поддерживаются в данном канале общения.

  * Хотя бы один таймаут из представленных ниже имеет ненулевое значение и не истёк:

    * `surveyTimeout` в location settings

    * `surveys_timeout` в настройках канала

    * `default_survey_timeout` в [account config](https://webim.ru/kb/for-admins/service-pages/account-config-editor.html)

  * Настройка account config `operator_closes_chat_finally` должна иметь значение `false`.

В одном диалоге форма опроса отправляется только один раз. В случае переоткрытия чата до окончательного закрытия (например, из-за срабатывания тайм-аута) форма опроса повторно не отправляется, в том числе, если обращение обслуживалось несколькими операторами, поскольку опрос привязан к конкретному обращению, а не к оператору.

Каналы общения, в которых поддерживаются опросы, можно посмотреть [тут](https://webim.ru/kb/channels/channels-functions.html).

![Опрос посетителя в окне веб-чата](https://webim.ru/kb/img/for-admins/surveys/surveys-overview/survey-web-view.webp){ style="width: 355px; max-width: 100%" }

![Отображение опроса в виджете на сайте](https://webim.ru/kb/img/for-admins/surveys/surveys-overview/survey-web-view-second-page.webp){ style="width: 349px; max-width: 100%" }

![Отображение опроса в Telegram (оценка)](https://webim.ru/kb/img/for-admins/surveys/surveys-overview/survey-tg-view-1.webp){ style="width: 570px; max-width: 100%" }

![Отображение опроса в Telegram (выбор)](https://webim.ru/kb/img/for-admins/surveys/surveys-overview/survey-tg-view-2.webp){ style="width: 561px; max-width: 100%" }

![Отображение опроса в Telegram (развернутый ответ)](https://webim.ru/kb/img/for-admins/surveys/surveys-overview/survey-tg-view-3.webp){ style="width: 564px; max-width: 100%" }

Результаты опросов отображаются в разделе **История диалогов**.

При подключенном модуле **Статистика** результаты опросов также сохраняются в статистических данных и доступны для построения отчётов и метрик. Подробнее см. в статье [Создание отчетов по опросам](https://webim.ru/kb/for-admins/surveys/surveys-reports-guide.html).

![Отображение опроса в Истории диалогов](https://webim.ru/kb/img/for-admins/surveys/surveys-overview/survey-in-history.webp){ style="width: 520px; max-width: 100%" }

## Конфигурация опроса

Создать опрос можно двумя способами:

  * в интерфейсе **Webim** через [Конструктор опросов](https://webim.ru/kb/for-admins/surveys/surveys-editor.html). В этом случае конфигурация формируется автоматически.

  * вручную — подготовив JSON-конфигурацию, описывающую формы и вопросы (пример приведён ниже).

**Пример конфигурации**

```
{
    "forms":
    [
        {
            "id": 0,
            "subjects": ["robot", "operator"],
            "questions":
            [
                {
                    "text": {
                        "ru": "Оцените, пожалуйста, скорость ответа оператора:",
                        "en": "Please, rate operator's answer speed:"
                    },
                    "type": "stars"
                },
                {
                    "text": {
                        "ru": "Нам удалось решить вашу проблему?",
                        "en": "Did operator solve your problem?"
                    },
                    "type": "radio",
                    "options": {
                        "ru": ["Да", "Нет"],
                        "en": ["Yes", "No"]
                    }
                },
                {
                    "text": {
                        "ru": "Поделитесь впечатлениями от общения с нашим клиентским центром! Что понравилось, а что стоит улучшить?",
                        "en": "Share your impression about chatting with our client support service! What did you like and what you think we should improve?"
                    },
                    "type": "comment"
                }
            ]
        },
        {
            "id": 1,
            "subjects": ["robot", "operator"],
            "questions":
            [
                {
                    "text": {
                        "ru": "Оцените, пожалуйста, работу нашего чат-бота:",
                        "en": "Please, rate our bot's work"
                    },
                    "type": "stars"
                },
                {
                    "text": {
                        "ru": "Хотите протестировать бот Webim на своем сайте?",
                        "en": "Do ypu want to test Webim bot on your own website?"
                    },
                    "type": "radio",
                    "options": {
                        "ru": ["Да", "Нет"],
                        "en": ["Yes", "No"]
                    }
                }
            ]
        },
        {
            "id": 2,
            "subjects": ["robot", "operator"],
            "questions":
            [
                {
                    "text": {
                        "ru": "Вы посещаете вебинары Webim?",
                        "en": "Do you visit Webim webinars?"
                    },
                    "type": "radio",
                    "options": {
                        "ru": ["Да", "Нет"],
                        "en": ["Yes", "No"]
                    }
                },
                {
                    "text": {
                        "ru": "Какую тему вы бы предложили для нашего следующего вебинара?",
                        "en": "Which theme would you suggest for our next webinar?"
                    },
                    "type": "comment"
                }
            ]
        }
    ]
}
```

Описание полей:

  * `id`: id формы. Формы выводятся в виджете чата последовательно друг за другом. Во всех остальных каналах вопросы выводятся в точно таком же последовательном порядке, но без форм.

  * `subjects`: субъекты, связанные с опросом. Может принимать значения `bot` и `operator`. Форма с соответствующими субъектами будет показана только в том случае, если в общении с посетителем принимали участие бот и/или оператор.

  * `questions`: массив вопросов, находящихся в форме.

  * `text`: текст вопроса. Вопрос можно локализовать на любой из [доступных языков общения](https://webim.ru/kb/for-admins/languages.html).

  * `type`: тип вопроса. Принимает 3 значения: `stars`, `radio`, `comment`.

  * `options`: специальное поле для вопроса типа `radio`. Является массивом вариантов ответа на поставленный вопрос. Ответы, как и вопросы, могут быть локализованы на любой из доступных языков общения.


## Размещение опроса в системе

Если опрос создан в [Конструкторе опросов](https://webim.ru/kb/for-admins/surveys/surveys-editor.html), конфигурация сохраняется в системе автоматически, и вручную добавлять её в БД не требуется.

После создания конфигурации Вам необходимо:

  * в случае облачного размещения - обратиться в [техническую поддержку](mailto:support@webim.ru)

  * в случае hosted-размещения - самостоятельно добавить опрос в БД следующей командой:

```
INSERT INTO webim_service_pro_<Имя аккаунта>.surveyconfig(descriptor, created, version)
VALUES (<Конфигурация опроса>, <Дата и время создания>, <Номер версии опроса>)
```

!!! Note "N.B."
    Конфигурация опроса в запрос должна поступать в виде `json-encoded string`.

---

Источник: https://webim.ru/kb/for-admins/surveys/surveys-overview.html
