# AutoFAQ

[AutoFAQ](https://autofaq.ai/) — омниканальная ИИ-платформа для автоматизации поддержки клиентов и сотрудников. Интеграция с **Webim** позволяет получать подсказки AutoFAQ в рабочем месте оператора и быстрее отвечать на обращения посетителей.

Тип **AutoFAQ** подходит для FAQ-систем и других сервисов, которые по одному сообщению посетителя возвращают готовые варианты ответа для оператора. **Webim** отправляет запрос на указанный URL при каждом подходящем сообщении посетителя; отдельной сессии суфлёра и вызовов открытия или закрытия у AutoFAQ нет.

Общие сведения о разделе суфлёров, заголовки запросов и форма создания — на странице [Суфлёры](https://webim.ru/kb/prompters/).

## API AutoFAQ

**URL**

Используется адрес из поля **URL** в настройках суфлёра (в конфигурации он хранится как `api_url`), без добавления суффиксов пути. Если адрес заканчивается на `/`, **Webim** убирает завершающий слеш перед отправкой запроса.

**Метод**

`POST`

**Заголовки**

```
Accept: application/json
Authorization: Bearer {api_token}
```

**Тело запроса**

```
{
  "session": "<идентификатор_сессии_чата>",
  "text": "Текст последнего сообщения посетителя"
}
```

**Поля запроса**

  * `session` — идентификатор сессии чата (внутри **Webim**: `chat.session.id`). AutoFAQ не открывает и не закрывает отдельную сессию суфлёра, но передаёт этот идентификатор, чтобы внешний сервис мог связать запросы одного диалога.
  * `text` — текст последнего входящего сообщения посетителя (внутри **Webim**: `message.text`).

В протоколе **L2U** то же значение сессии передаётся в поле `session_id` и используется в цепочке `/start`, `/next`, `/end`; для AutoFAQ такой цепочки нет. Подробнее см. [L2U](https://webim.ru/kb/prompters/l2u.html).

**Ожидаемый ответ**

HTTP статус `200` и JSON в теле ответа вида:

```
{
  "answerVariants": [
    "text1",
    "text2",
    "text3"
  ]
}
```

**Поля ответа**

  * `answerVariants` — массив строк-подсказок. Пустой массив означает, что для этого сообщения подсказок нет.

**Webim** берёт первые `number_of_prompts` элементов массива и показывает их оператору.

Если ответ не HTTP `200`, тело не удаётся разобрать как JSON или в нём нет ожидаемой структуры, подсказки оператору **не показываются**; детали ошибки фиксируются в логах сервера **Webim**.

---

Источник: https://webim.ru/kb/prompters/autofaq.html
