Сценарии

Объект сценария

{
    "id": "42",
    "amocrm_id": 31245678,
    "active": true,
    "scenario": {
        "name": "Оценка менеджера",
        "vendor": "openai",
        "model": "gpt-6.1-terra",
        "prompt": {
            "system": "Ты — руководитель отдела продаж. Оцени работу менеджера.",
            "user": "Оцени разговор по шкале и объясни оценку одним предложением."
        },
        "field": { "name": "Оценка звонка", "value": 884411, "isGroup": false, "group": "leads" },
        "writeField": true,
        "autoBoot": true,
        "notifyAfterBoot": false,
        "notifyOnFinish": false,
        "resultType": "score",
        "score": { "min": 1, "max": 10 },
        "role": "manager-score"
    },
    "created_at": "2026-10-01T09:00:00.000Z",
    "updated_at": "2026-10-01T09:00:00.000Z"
}
ПолеТипОписание
activeboolВключён ли сценарий. Новый сценарий создаётся выключенным
scenario.namestringНазвание
scenario.vendorstringПоставщик модели: openai или deepseek
scenario.modelstringМодель. См. модели
scenario.prompt.systemstringСистемная инструкция: роль и правила
scenario.prompt.userstringЗадание, которое выполняется над расшифровкой
scenario.fieldobjectПоле amoCRM для результата: name — название, value — ID поля, group — leads, contacts или companies, isGroup — false для поля
scenario.writeFieldboolЗаписывать результат в поле. Запись выполняется, если звонок относится к сущности того же типа, что и поле
scenario.autoBootboolВыполнять автоматически после автоматической расшифровки. Работает только у включённого сценария
scenario.notifyAfterBootboolДобавлять результат примечанием к сущности amoCRM
scenario.notifyOnFinishboolОтправлять событие scenario-processed по WebSocket. По умолчанию false
scenario.resultTypestringtext (по умолчанию) — свободный текст; score — число по шкале с комментарием
scenario.scoreobjectШкала сценария score: min и max, целые. По умолчанию от 1 до 10
scenario.rolestring | nullmanager-score — оценка этого сценария используется в аналитике; summary — краткое содержание; null — без роли

Сценарий с resultType: "score" возвращает оценку и комментарий. В поле amoCRM при этом записывается текст вида 8/10 — комментарий.

Модели

vendormodel
openaigpt-6-luna, gpt-5.6-luna, gpt-6.1-terra, gpt-5.6-terra, gpt-6.1-sol, gpt-5.6-sol, gpt-6-astra
deepseekdeepseek-flash, deepseek-v4-pro

Сценарии, сохранённые с более старыми моделями, продолжают работать: после отключения модели поставщиком запросы автоматически идут в модель, которую поставщик рекомендует на замену. Менять сценарий для этого не нужно.

Список сценариев

GET /api/v1/settings/scenarios/{amocrmId}

Ответ 200 — массив объектов сценария аккаунта.

Создать сценарий

POST /api/v1/settings/scenarios

Тело запроса

ПолеТипОписание
amocrmId обязательноеintАккаунт amoCRM
scenario обязательноеobjectСодержимое сценария — поля scenario.* из таблицы выше
curl -X POST "{base_url}/api/v1/settings/scenarios" \
  -H "Content-Type: application/json" \
  -d '{
    "amocrmId": 31245678,
    "scenario": {
      "name": "Краткое содержание",
      "vendor": "openai",
      "model": "gpt-6-luna",
      "prompt": { "system": "Ты — ассистент отдела продаж.", "user": "Перескажи разговор в трёх предложениях." },
      "field": { "name": "Итог звонка", "value": 884412, "isGroup": false, "group": "leads" },
      "writeField": true,
      "autoBoot": true,
      "notifyAfterBoot": false,
      "notifyOnFinish": true,
      "role": "summary"
    }
  }'

Ответ 201 — созданный объект сценария. Сценарий создаётся выключенным: чтобы он выполнялся автоматически, включите его.

Изменить сценарий

PATCH /api/v1/settings/scenarios/{scenarioId}

Тело запроса

ПолеТипОписание
scenario обязательноеobjectНовое содержимое сценария

Содержимое заменяется целиком: передавайте все поля, а не только изменённые. Ответ 200 — обновлённый объект сценария.

Включить или выключить сценарий

PATCH /api/v1/settings/scenarios/activate/{scenarioId}

Тело запроса

ПолеТипОписание
activated обязательноеbooltrue — включить, false — выключить

Ответ 200

{ "ok": true, "data": true }

data — новое состояние сценария.

Удалить сценарий

DELETE /api/v1/settings/scenarios/{scenarioId}

Ответ 200

{ "ok": true, "data": 1 }

data — число удалённых сценариев: 1, либо 0, если сценария с таким ID нет. Вместе со сценарием удаляются его результаты.