ДОКУМЕНТАЦИЯ / НАЧАЛО / ВВЕДЕНИЕ

Введение в Staq Workflow

Staq Workflow — платформа для автоматизации процессов: от синхронизации CRM до AI-агентов и data pipelines. Узлы, код, 480+ интеграций, один рантайм.

TL;DR

Нужен self-host? docker run -p 7700:7700 staq/workflow. Нужно облако? Регистрация на staq.ru — и первый флоу запущен через 3 минуты.

Установка #

Staq работает одинаково локально, на вашем сервере и в облаке Staq. Выберите способ установки:

docker docker-compose npm brew
1# Минимальный запуск — всё в контейнере
2$ docker run -p 7700:7700 -v staq-data:/data staq/workflow:latest
3
4# Откройте http://localhost:7700
5# Первый логин — admin / admin (смените в настройках)
1services:
2  staq:
3    image: staq/workflow:latest
4    ports: ["7700:7700"]
5    environment:
6      STAQ_DB_URL: postgres://staq:staq@db/staq
7      STAQ_ENCRYPTION_KEY: ${STAQ_KEY}
1$ npm install -g @staq/workflow
2$ staq start --port 7700
1$ brew tap staq/tap
2$ brew install staq-workflow
3$ staq start

Первый флоу за 3 минуты #

Разберём на примере: каждый час забрать новые заказы из PostgreSQL, обогатить данными о клиенте, отправить уведомление в Telegram.

CRON
0 * * * *
pgPOSTGRES
orders.new
ƒFUNCTION
enrich
tgTELEGRAM
send

В визуальном редакторе это четыре узла, соединённых линиями. Каждый узел — декларация: триггер, источник, трансформация, действие. Данные из предыдущего узла доступны через $input или через drag-and-drop из панели переменных.

function.js
1// Узел: Function · "enrich"
2// Входит массив заказов из узла postgres
3
4const orders = $input.all();
5
6return orders.map(o => ({
7  id: o.id,
8  total: o.total,
9  text: `Новый заказ № ${o.id} · ${o.total} ₽`,
10  chat: '@sales_team'
11}));

Ключевые концепции #

В Staq пять базовых сущностей. Зная их, вы сможете построить любой процесс.

СущностьЧто этоПример
FlowОдин процесс: от триггера до действияorder-sync
NodeОдин шаг: триггер, код, интеграция, логикаpostgres.query
TriggerТочка входа: webhook, cron, очередьcron(0 * * * *)
ExecutionОдин запуск флоу со всеми даннымиexec_4a7b2e
CredentialЗашифрованные секреты для интеграцийpg-prod
ПРИНЦИП

Один Flow = один Trigger + N Node. Каждый запуск — Execution с полной историей входов/выходов каждого узла.

REST API #

Всё, что можно сделать в UI, можно сделать через API. Ключ — в настройках профиля.

Запустить флоу

POST /v1/flows/{flow_id}/execute
cURL TypeScript Python
1$ curl -X POST https://api.staq.ru/v1/flows/order-sync/execute \
2    -H "Authorization: Bearer $STAQ_TOKEN" \
3    -H "Content-Type: application/json" \
4    -d '{"order_id": 4721, "source": "checkout"}'
5
6# Ответ
7{ "execution_id": "exec_4a7b2e", "status": "running" }

Получить статус выполнения

GET /v1/executions/{execution_id}

Эндпоинты

МетодПутьОписание
GET/v1/flowsСписок всех флоу
POST/v1/flowsСоздать новый флоу
POST/v1/flows/{id}/executeЗапустить флоу
GET/v1/executions/{id}Статус и результат
DEL/v1/executions/{id}Отменить выполнение
GET/v1/connectorsСписок коннекторов