Manual processes devour time: managers spend up to 4 hours a day on notifications, status updates, and CRM sync. Errors from manual entry cost businesses up to 5% of revenue. We automate such scenarios in Directus using Flows — a visual no-code/low-code builder. Flows cut routine operation time by 80% and reduce incidents by 95%. This not only speeds up work but eliminates human error.
How Flows replace custom scripts
Flows are operation chains triggered by an event. Instead of writing a separate script for each task, you assemble logic from ready-made blocks: data reads, conditions, API requests, and JavaScript transformations. Compare: a typical new-order notification in custom PHP takes about 4 hours to develop and test. In Directus Flows, the same task is solved in 30 minutes — 8x faster. Plus, there's no risk of breaking adjacent logic. If the process changes, you just drag and drop blocks instead of rewriting code.
Triggers: where a Flow starts
| Trigger Type | Description | Example Use Case |
|---|---|---|
| Event Hook | Fires on collection events (create, update, delete) | Notify when a new order is placed |
| Schedule | Runs on a cron schedule | Daily sales report at 9:00 AM |
| Webhook | Incoming HTTP request | Receive events from Stripe or Telegram |
| Manual | Manual launch from admin | Test run or report generation |
| Another Flow | Called from another Flow | Composite automation of multiple scenarios |
Example: notification for a large order
Trigger: Event Hook → items.create → collection orders Operations:
-
Read Data — get order details with populate
{ "collection": "orders", "key": "{{$trigger.key}}", "query": { "fields": ["*", "customer.*"] } }Condition — check if the order is expensive
{ "rule": { "total": { "_gte": 10000 } } }Send Email (via Operations → Email)
To: [email protected] Subject: Large order #{{$last.id}} for {{$last.total}} ₽ Body: Customer: {{$last.customer.email}}Webhook → POST to Slack
{ "url": "{{SLACK_WEBHOOK}}", "method": "POST", "body": { "text": "New order #{{$last.id}} from {{$last.customer.email}}" } }Note: all API keys are stored in environment variables, not hard-coded.
Custom Operation Extension
If standard operations aren't enough, we write a custom extension. For example, sending SMS:
// 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() }, }Environment variables are set in Settings → Project Settings → Flows Variables. Reference them as
{{SLACK_WEBHOOK}}.Why choose Directus Flows over manual coding?
Flows provide visual control, per-step logging, and quick adaptability. An error in a custom script means hours of debugging. In Flows, the admin sees the entire schema and can fix a condition in a few clicks. Complex data transformations — like calculating VAT or array filtering — are handled by the built-in JavaScript block, so flexibility isn't lost. Our data shows that companies switching from custom development to Flows save up to 70% on integration maintenance time.
Comparison: manual process vs Flows
Parameter Manual Process Directus Flows Notification setup time 4 hours 30 minutes Risk of errors on change High Minimal Logging None Built-in Adaptation to new requirements Days Hours What if standard operations aren't enough?
For specific tasks, we create custom operations — Flows extensions. These are TypeScript classes compiled to JS and plugged into Directus as modules. The SMS example above is one such case. The built-in environment variable system safely stores access keys. We also add error handling: if an external service is down, the Flow can retry the request or log an error.
Flow debugging tip
If a Flow doesn't trigger, check environment variables — a common mistake. Use the 'Test' button in the admin to simulate the trigger. Logs for each step are available in the Logs section.What's included in our work
- Analysis of your business processes and automation opportunities.
- Designing Flow schemas: triggers, conditions, operation chains.
- Turnkey implementation: setting up all Flows, integrating with external APIs, creating custom operations if needed.
- Testing on a staging environment with your data.
- Documentation for each Flow and admin training.
- Performance guarantee: if something breaks after an update, we fix it.
Estimated timeline
- Simple Flow (notification, webhook) — from 1 day.
- Complex chain (3–5 Flows with integrations) — from 3 to 5 days.
- Pricing is calculated individually per project. We'll assess your project for free.
Our experience
We've been developing on Directus for over 7 years, completed 30+ projects with Flows. We know typical pitfalls: forgotten environment variables, incorrect conditions, missing error handling. We hold certified partner status and licenses for production use. Directus Flows Documentation
Contact us — we'll show how Flows can save your team 10+ hours per week. Request a free consultation.







