Appearance
Сохранение отзыва CSAT
Концептуально, оценка CSAT представляет собой шкалу от 1 до 5, где 1 означает, что клиент полностью не удовлетворен взаимодействием, а 5 — что он полностью доволен.
При сохранении отзыва указывается канал channel, из которого получена оценка, и кампания campaign, к которой относится отзыв. Кампания — это и есть то, что оценивается. Например, работа службы поддержки (support) или оформление заказа (checkout).
Кампании создаются в личном кабинете в разделе «Опросы → CSAT → Кампании», каналы — в разделе «Опросы → Настройки → Каналы». Каналы общие для NPS, CSAT и CES.
Технически процесс оценки следующий:
- Запрашиваете информацию о кампании с помощью метода csat/campaigns. Оттуда вас интересуют дополнительные вопросы к клиенту в зависимости от его оценки.
- Опционально запрашиваете каналы с помощью метода nps/channels. Но, скорее всего, это не потребуется, т.к. код канала вы знаете заранее и должны «зашить» в саму форму на сайте или в мобильном приложении.
- Предлагаете клиенту выбрать оценку от 1 до 5. Визуал может быть либо в виде 5 звездочек либо набором смайлов от грустного к веселому.
- После выбора оценки проверяете, какой вопрос нужно задать по этой кампании. Вопросы вы получили в csat/campaigns. Вопрос выбирается так:
- если оценка от 1 до 2, то вопрос из поля
dissatisfied_question; - если оценка 3, то вопрос из поля
neutral_question; - если оценка от 4 до 5, то вопрос из поля
satisfied_question.
- если оценка от 1 до 2, то вопрос из поля
- Под вопросом выводите поле ввода комментария.
- Предлагаете клиенту либо оставить комментарий либо нажать кнопку «Пропустить».
- В конце, отправляете собранные данные на текущий метод API и отображаете клиенту финальное сообщение из csat/campaigns:
- если оценка от 1 до 2, то сообщение из поля
dissatisfied_success; - если оценка 3, то сообщение из поля
neutral_success; - если оценка от 4 до 5, то сообщение из поля
satisfied_success.
- если оценка от 1 до 2, то сообщение из поля
POST https://api.rees46.ru/csat/createПараметры
| Параметр | Тип | Обязателен? | Описание |
|---|---|---|---|
| shop_id | String | Да | API-ключ |
| shop_secret | String | Нет | Секретный API-ключ. Обязателен, если в запросе отсутствует did |
| did* | String | Нет | Идентификатор устройства. SDK передает его автоматически |
| seance* | String | Нет | Идентификатор сессии |
| phone* | String | Нет | Телефон клиента |
| email* | String | Нет | Email клиента |
| loyalty_id* | String | Нет | Идентификатор участника программы лояльности |
| external_id* | String | Нет | Внешний идентификатор клиента |
| telegram_id* | String | Нет | Идентификатор клиента в Telegram |
| order_id* | String | Нет | Идентификатор заказа, если оценивается заказ |
| channel | String | Да | Код канала |
| campaign | String | Да | Код кампании |
| rate | Integer | Да | Оценка: 1..5 |
| comment | String | Нет | Опциональный комментарий к оценке |
| label | String | Нет | Произвольная метка для группировки отзывов в отчете |
Идентификаторы
Параметры, отмеченные [*] — обязателен хотя бы один из них. На стороне сайта или мобильных приложений SDK автоматически передает did.
Повторная отправка
Если за текущий день от этого клиента уже был отзыв по этим же каналу, кампании, заказу и метке, то оценка и комментарий в существующем отзыве обновятся, а новый отзыв создан не будет.
Запрос
Пример запроса:
shell
curl 'https://api.rees46.ru/csat/create' \
-X 'POST' \
-H 'Content-Type: application/json' \
--data-raw '{"shop_id":"SHOP_ID", "shop_secret":"SHOP_SECRET", "email":"EMAIL", "channel": "email", "campaign": "support", "rate": 4, "comment": "..."}'Поддержка в SDK
На текущий момент методы CSAT доступны только через серверный API. Поддержка в JS SDK и мобильных SDK появится позже.
Ответ
Пример ответа сервера:
json
{
"status": "success",
"payload": {
"review": {
"id": 1
}
}
}Расшифровка свойств ответа:
| Свойство | Тип | Описание |
|---|---|---|
| review.id | Integer | Идентификатор сохраненного отзыва. При повторной отправке — идентификатор обновленного отзыва |
В случае ошибки ответ будет в формате:
json
{
"status": "error",
"payload": {
"message": "Campaign not found"
}
}Возможные ошибки:
| Код | Сообщение | Причина |
|---|---|---|
| 400 | Missing user identifier | Не передан ни один идентификатор клиента |
| 400 | текст ошибки валидации | Некорректная оценка или другие данные отзыва |
| 403 | Invalid API key or secret key | Не передан или неверен shop_secret при серверном запросе |
| 404 | User not found | Клиент по переданным идентификаторам не найден |
| 404 | Channel not found | Канал с таким channel не найден |
| 404 | Campaign not found | Кампания с таким campaign не найдена |