Импортировать сценарий
POST /api/v1/bots/{uniqueId}/scenarios/import
URL
https://app.helpfy.ai/api/v1/bots/{uniqueId}/scenarios/import
Адрес своей установки подставьте вместо https://app.helpfy.ai. Идентификаторы в фигурных скобках замените значениями из ответов API.
Заголовки
| Заголовок | Значение |
|---|---|
Authorization | Basic <base64(email:api_key)> |
Accept | application/json |
Для JSON-тела передайте Content-Type: application/json.
Подробнее — авторизация API.
Параметры запроса
Параметры пути
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
uniqueId | строка | Да | Идентификатор бота. |
Тело запроса (application/json)
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
format | helpfy.bot-scenario | Да | Формат переносимых данных. |
schema_version | 1, 2 | Да | Версия формата данных. |
exported_at | строка | Нет | Дата и время экспорта. |
scenario | объект | Да | Данные переносимого сценария. |
dependencies | объект | Нет | Функции и другие объекты, от которых зависит сценарий. |
Пример запроса
curl --request POST 'https://app.helpfy.ai/api/v1/bots/11111111-1111-4111-8111-111111111111/scenarios/import' \
--user 'user@example.com:api_key' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-binary @- <<'JSON'
{
"format": "helpfy.bot-scenario",
"schema_version": 2,
"scenario": {
"title": "example",
"trigger_description": "example",
"examples": [
"example"
],
"exclusions": [
"example"
],
"min_confidence": 50,
"priority": 1,
"allow_repeat_in_dialogue": false,
"definition": {
"start_node_id": "answer",
"nodes": [
{
"id": "answer",
"type": "FIXED_REPLY",
"title": "Ответить клиенту",
"text": "Адрес доставки можно изменить до передачи заказа в доставку."
},
{
"id": "end",
"type": "END",
"title": "Завершить сценарий"
}
],
"edges": [
{
"id": "answer-end",
"source": "answer",
"target": "end",
"priority": 100,
"condition": {
"type": "ALWAYS"
}
}
]
}
}
}
JSON
Ответы
| HTTP | Описание |
|---|---|
| 201 | Успешный ответ |
| 400 | Неверные настройки сценария. |
| 401 | Требуется авторизация. |
| 403 | Нет доступа к боту. |
| 404 | Бот или сценарий не найден. |
Пример ответа — HTTP 201
Сокращённый пример; показаны клиентские поля. Значения условные.
{
"unique_id": "17396bcc-6b29-4b2e-b7fd-63c8eb8b6cc8",
"title": "Статус доставки",
"trigger_description": "Клиент спрашивает о текущем статусе доставки своего заказа",
"min_confidence": 78,
"priority": 100,
"is_active": false,
"allow_repeat_in_dialogue": false,
"versions": [
{
"unique_id": "17396bcc-6b29-4b2e-b7fd-63c8eb8b6cc8",
"version": 2,
"status": "DRAFT",
"definition": {
"start_node_id": "answer",
"nodes": [
{
"id": "answer",
"type": "FIXED_REPLY",
"title": "Ответить клиенту",
"text": "Адрес доставки можно изменить до передачи заказа в доставку."
},
{
"id": "end",
"type": "END",
"title": "Завершить сценарий"
}
],
"edges": [
{
"id": "answer-end",
"source": "answer",
"target": "end",
"priority": 100,
"condition": {
"type": "ALWAYS"
}
}
]
},
"created_at": "2026-10-16T09:00:00.000Z"
}
],
"_count": {
"runs": 12
},
"created_at": "2026-10-16T09:00:00.000Z",
"updated_at": "2026-10-16T09:00:00.000Z"
}
Пример ошибки — HTTP 400
Пример структуры ошибки. Код и сообщение зависят от причины ошибки.
{
"statusCode": 400,
"error": "Bad Request",
"code": "BAD_REQUEST",
"message": "Bad Request"
}