Настройка Flows (автоматизация) Directus
Flows — визуальный конструктор автоматизации в Directus. Логика: триггер (событие) → цепочка операций. Без кода можно настроить уведомления, синхронизацию данных, обращения к внешним API, отправку email.
Триггеры Flow
- Event Hook — событие коллекции (create, update, delete)
- Schedule — по расписанию (cron)
- Webhook — входящий HTTP запрос
- Manual — запуск вручную из admin UI
- Another Flow — вызов из другого Flow
Пример: уведомление при новом заказе
Триггер: Event Hook → items.create → коллекция orders
Операции:
-
Read Data — получить детали заказа с populate
{ "collection": "orders", "key": "{{$trigger.key}}", "query": { "fields": ["*", "customer.*"] } } -
Condition — проверить что заказ дорогой
{ "rule": { "total": { "_gte": 10000 } } } -
Send Email (через Operations → Email)
To: [email protected] Subject: Крупный заказ #{{$last.id}} на {{$last.total}} ₽ Body: Клиент: {{$last.customer.email}} -
Webhook → POST в Slack
{ "url": "{{SLACK_WEBHOOK}}", "method": "POST", "body": { "text": "Новый заказ #{{$last.id}} от {{$last.customer.email}}" } }
Пример: ежедневный отчёт (Schedule)
Триггер: Schedule → 0 9 * * 1-5 (в 9:00, пн-пт)
Операции:
-
Read Data — последние 24 часа заказов
{ "collection": "orders", "query": { "filter": { "date_created": { "_gte": "$NOW(-24h)" }, "status": { "_in": ["paid", "delivered"] } } } } -
Transform (JS код)
const orders = $last const total = orders.reduce((sum, o) => sum + o.total, 0) return { count: orders.length, revenue: total } -
Webhook → Slack с итогами
Пример: входящий вебхук (Stripe)
Триггер: Webhook → метод POST
Операции:
-
Condition — проверить тип события
{ "rule": { "type": { "_eq": "checkout.session.completed" } } } -
Read Data — найти заказ по ID из metadata
{ "collection": "orders", "query": { "filter": { "stripe_session_id": { "_eq": "{{$trigger.body.data.object.id}}" } } } } -
Update Data — обновить статус заказа
{ "collection": "orders", "key": "{{$last[0].id}}", "payload": { "status": "paid" } }
Custom Operation Extension
Для операций, которых нет в стандартном наборе:
// extensions/operations/send-sms/index.ts
export default {
id: 'operation-send-sms',
handler: async ({ phone, message }: { phone: string; message: string }) => {
const response = await fetch('https://api.sms.ru/sms/send', {
method: 'POST',
body: new URLSearchParams({
api_id: process.env.SMSRU_API_ID!,
to: phone,
msg: message,
}),
})
return response.json()
},
}
Переменные окружения в Flows
В настройках Directus (Settings → Project Settings → Flows Variables) можно задать переменные, доступные во всех Flows:
SLACK_WEBHOOK = https://hooks.slack.com/...
CRM_API_URL = https://api.crm.com
В операции ссылаться как {{SLACK_WEBHOOK}}.
Отладка Flows
Directus сохраняет логи выполнения каждого Flow — в admin можно увидеть каждый шаг с входными/выходными данными и ошибками. Кнопка «Test» позволяет запустить вручную с mock-данными.
Сроки
Настройка 3–5 Flows (уведомления, вебхуки, отчёты) — 1–2 дня без написания кода.







