Налаштування Flows (автоматизація) Directus
Flows — візуальний конструктор автоматизації в Directus. Логіка: тригер (подія) → ланцюг операцій. Без коду можна налаштувати сповіщення, синхронізацію даних, звернення до зовнішніх API, відправлення email.
Тригери Flow
- Event Hook — подія колекції (create, update, delete)
- Schedule — по розкладу (cron)
- Webhook — вхідний HTTP запит
- Manual — запуск вручну з адміністраторської панелі
- 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 — перевірити тип événня
{ "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 — в адміністраторі можна побачити кожен крок з вхідними/вихідними даними та помилками. Кнопка «Test» дозволяє запустити вручну з mock-даними.
Терміни
Налаштування 3–5 Flows (сповіщення, вебхуки, звіти) — 1–2 дні без написання коду.







