> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kvantora.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kvantora Flow

> Первый сценарий, подключение моделей, бюджет и безопасные повторы.

Автоматизация запускает последовательность шагов после события. Шаг с моделью обращается к API Kvantora: выбирает модель по публичному ID, получает ответ и передаёт его следующему шагу.

## Руководства Kvantora Flow

<CardGroup cols={2}>
  <Card title="Первый сценарий" href="/flow-first">
    Соберите цепочку из расписания и текстовой модели, проверьте ответ в истории.
  </Card>

  <Card title="Триггеры и webhook" href="/flow-triggers">
    Настройте время запуска или получите образец входящего события.
  </Card>

  <Card title="Данные между шагами" href="/flow-data">
    Подставьте текст, поле объекта или элемент списка в следующее действие.
  </Card>

  <Card title="Подключения" href="/flow-connections">
    Выберите модели, бюджет и учётную запись внешнего сервиса.
  </Card>

  <Card title="Ветвления и циклы" href="/flow-branches">
    Разделите обработку по условиям и пройдите по элементам списка.
  </Card>

  <Card title="Текст и медиа" href="/flow-models">
    Получите ответ модели или дождитесь асинхронного задания.
  </Card>

  <Card title="Публикация и версии" href="/flow-publish">
    Включите проверенный сценарий и подготовьте следующую версию.
  </Card>

  <Card title="История и диагностика" href="/flow-history">
    Найдите неудачный шаг и сравните его вход с ожидаемыми данными.
  </Card>

  <Card title="Безопасные повторы" href="/flow-retry">
    Проверьте исход запроса перед новым запуском и повторной отправкой.
  </Card>
</CardGroup>

## Откройте Kvantora Flow

Откройте «Автоматизации» в кабинете Kvantora (`/app/automations`). Настройте подключение моделей и дневной бюджет, затем откройте редактор и создайте сценарий.

## Как подключить модели

1. Откройте настройку подключения в кабинете. Для изменения подключения нужны соответствующие права организации.
2. Выберите разрешённые модели и задайте общий дневной бюджет в рублях. Перед запуском проверьте доступность нужной операции у каждой модели.
3. Откройте редактор и выберите подключение Kvantora в действии с моделью. Секрет не нужно вставлять в текст сценария.
4. Начните с тестового входа без персональных данных. Убедитесь, что ответ и расходы появились в истории, прежде чем подключать внешние действия.

Если вы используете собственный редактор автоматизаций, создайте отдельный ключ Kvantora с нужными правами и бюджетом. Для первого текстового HTTP-шага достаточно `text`; для чтения каталога добавьте `models:read`. Сохраните ключ в защищённом подключении вашего редактора.

## Первый сценарий в Kvantora Flow

<Steps>
  <Step title="Подготовьте вход">
    Создайте сценарий и выберите триггер из доступных интеграций. Триггер задаёт событие запуска; действия выполняются после него. У интеграции Kvantora собственных триггеров нет. Для первого теста используйте короткое обезличенное сообщение.
  </Step>

  <Step title="Добавьте модель">
    Добавьте действие Kvantora «Сгенерировать текст» и выберите подготовленное подключение. В поле «Модель» вставьте публичный ID из каталога. Заполните задание, при необходимости инструкцию и максимум токенов ответа. Укажите максимальную стоимость в рублях.
  </Step>

  <Step title="Запустите сценарий целиком">
    Платное действие выполняется внутри запуска Kvantora Flow. Отдельный тест действия без контекста запуска может вернуть «Запустите действие в автоматизации Kvantora». Не обходите это ограничение заменой ключа: запустите весь сценарий и откройте историю.
  </Step>

  <Step title="Передайте результат дальше">
    После завершённого текстового ответа выберите `choices[0].message.content` в данных шага модели. Следующий шаг может использовать этот текст. Сначала проверьте результат в истории, затем подключайте действие, которое отправляет данные во внешний сервис.
  </Step>
</Steps>

## Данные между шагами

Сначала получите тестовые данные входного шага. Затем поставьте курсор в нужное поле следующего действия и выберите значение из панели данных. Проверяйте тип: текст сообщения, весь объект и ссылка на файл решают разные задачи. Изменение структуры входа требует повторной проверки привязок.

Для статического теста напишите задание вручную. Когда сценарий работает, замените только входной текст значением триггера. Не вставляйте сырой JSON строковой склейкой: кавычки и переносы в сообщении должны сохраняться.

## Действия Kvantora

| Действие                                             | Результат                                                          |
| ---------------------------------------------------- | ------------------------------------------------------------------ |
| Получить модели                                      | Каталог, доступный подключению                                     |
| Сгенерировать текст                                  | Текстовый ответ и сведения о расходах                              |
| Создать изображение / Создать видео / Озвучить текст | Асинхронное задание                                                |
| Получить результат задания                           | Текущий статус по ID задания                                       |
| Получить баланс / Получить расходы                   | Данные в пределах прав ключа                                       |
| Запрос генерации                                     | JSON выбранной операции: текст, изображение, видео или озвучивание |

Действие медиа сначала запрашивает оценку стоимости. Оно не ждёт готового файла: сохраните ID и используйте «Получить результат задания». Транскрипция и редактирование изображения не входят в список готовых действий этой интеграции.

## HTTP-шаг в собственном редакторе

Начните с ручного запуска. Добавьте HTTP-шаг с методом `POST`. Адрес: `https://api.kvantora.ai/v1/chat/completions`.

Адрес должен быть доступен с сервера автоматизации по HTTPS.

Передайте заголовки:

* `Authorization: Bearer <ключ из защищённого подключения>`
* `Content-Type: application/json`
* `Idempotency-Key: <сохранённый уникальный ID этого шага>`

Замените `PUBLIC_API_ID` публичным ID из каталога. Это место для вашего ID, а не имя существующей модели.

```json theme={null}
{
  "model": "PUBLIC_API_ID",
  "messages": [
    { "role": "user", "content": "Составь краткое описание входящего обращения" }
  ],
  "max_tokens": 256
}
```

Когда статический запрос работает, подставьте входной текст триггера в `messages[0].content` через поля редактора. Формируйте JSON средствами редактора: кавычки и переносы во входном тексте не должны ломать тело запроса.

При завершённом текстовом ответе следующий шаг получает `choices[0].message.content`. Сначала проверьте HTTP-статус и поле `object`, затем читайте текст. Расходы находятся в `usage.cost_microrub`, состояние расчёта в `billing.status`.

## Ответы, ошибки и повторы

Сохраните ID шага до его отправки. При повторной доставке одного события используйте тот же ключ, endpoint, тело и `Idempotency-Key`. Не создавайте новый UUID внутри каждой попытки повтора: это отдельный запрос.

* HTTP 202: результат ещё не готов. Не передавайте его следующему шагу как ответ модели.
* Сетевая ошибка: исход может быть неизвестен. Для собственного HTTP-клиента проверяйте исходный запрос с тем же ID, ключом, endpoint и телом по [правилам повторов](/errors). Во встроенном действии при `needs_reconciliation` откройте историю Kvantora и остановите цепочку; новый запуск сценария не заменяет проверку прежнего исхода. Не переключайте модель автоматически.
* `api_key_daily_budget_exceeded`: проверьте дневной лимит, расходы и открытые резервы.
* `idempotency_conflict`: сравните отправленное тело с исходным.

Медиа обрабатываются через задания. После отправки сохраняйте ID задания, проверяйте `GET /v1/jobs/ID` и получайте файл только после `succeeded`. Клиентские уведомления webhook о готовности медиа сейчас не отправляются. Используйте опрос статуса из [руководства по заданиям](/jobs).

## Бюджет и данные

Лимит запусков автоматизаций и стоимость вызовов моделей считаются отдельно. Один запуск может включать несколько обращений к моделям. Их оплата проходит через общий баланс Kvantora, а дневной бюджет ограничивает суммарные расходы разрешённого ключа с учётом резервов.

Бюджет и расходы отображаются в рублях с двумя знаками после запятой, например **0,99 ₽**. Подробнее о резервировании и списаниях — в [руководстве по оплате](/billing).

Передавайте редактору только ключ Kvantora с нужными ограничениями. Другие пароли и доступ к внутренним сервисам для HTTP-шагов не нужны. Данные из ответа, отправленные следующим шагом во внешний сервис, становятся частью этой интеграции; настройте состав данных перед запуском.

[Руководство API](/api) · [Быстрый старт](/quickstart) · [Памятка по ошибкам](/errors).
