Error Handling
Обработка ошибок в workflows
Создание модульных workflows с вызовом одного workflow из другого
Под-workflows позволяют вызывать один workflow из другого. Это делает ваши автоматизации модульными и помогает избежать проблем с памятью при обработке больших объёмов данных.
| Преимущество | Описание |
|---|---|
| Модульность | Разбивайте сложную логику на переиспользуемые блоки |
| Память | Избегайте ошибок памяти при больших workflows |
| Повторное использование | Один под-workflow можно вызывать из нескольких родительских |
| Организация | Чистая структура проекта |
| Тестирование | Легче тестировать отдельные части |
Создайте новый workflow
Добавьте триггер Execute Sub-workflow Trigger (или “When Executed by Another Workflow”)
Настройте режим входных данных (Input data mode)
Добавьте остальные ноды для логики под-workflow
Сохраните workflow
| Режим | Описание | Когда использовать |
|---|---|---|
| Define using fields | Определите поля и типы данных | Строгая типизация, автоподстановка |
| Define using JSON | Пример JSON структуры | Сложные объекты |
| Accept all data | Принимает любые данные | Гибкость, но без валидации |
// Пример JSON схемы для "Define using JSON":{ "customer_id": "12345", "email": "user@example.com", "order_total": 150.00}По умолчанию под-workflow может вызывать только владелец. Для изменения:
Откройте родительский workflow
Добавьте ноду Execute Sub-workflow
Выберите способ указания под-workflow
Заполните требуемые входные данные
Сохраните и запустите
| Способ | Описание |
|---|---|
| From list | Выбор из списка ваших workflows |
| By ID | Указание ID workflow |
| By URL | URL до workflow |
| From file | Загрузка из локального файла |
| Parameter | JSON workflow как параметр |
┌─────────────────────────────────────────────────────────────┐│ Родительский Workflow ││ ││ ┌────────────┐ ┌───────────────────┐ ┌────────────┐ ││ │ Trigger │───→│ Execute Sub- │───→│ Следующая │ ││ │ │ │ workflow │ │ нода │ ││ └────────────┘ └─────────┬─────────┘ └────────────┘ ││ │ │└──────────────────────────────┼───────────────────────────────┘ │ ↓ Данные отправляются┌─────────────────────────────────────────────────────────────┐│ Под-Workflow ││ ││ ┌───────────────────┐ ┌────────────┐ ┌────────────┐ ││ │ Execute Sub- │───→│ Обработка │───→│ Последняя │ ││ │ workflow Trigger │ │ │ │ нода │ ││ └───────────────────┘ └────────────┘ └─────┬──────┘ ││ │ │└────────────────────────────────────────────────────┼─────────┘ │ ↑ Результат возвращаетсяПроцесс:
При выполнении workflow можно переключаться между родителем и под-workflow:
Это упрощает отладку и понимание потока данных.
Родительский workflow:┌────────────┐ ┌─────────────────┐ ┌─────────────────┐│ Webhook │───→│ Execute Sub- │───→│ Execute Sub- ││ (заказ) │ │ workflow │ │ workflow │└────────────┘ │ (валидация) │ │ (уведомления) │ └─────────────────┘ └─────────────────┘
Под-workflow "Валидация":- Проверка наличия товара- Валидация адреса- Расчёт доставки
Под-workflow "Уведомления":- Email клиенту- Slack команде- SMS при VIP заказеРодительский workflow (оркестратор):┌────────────┐ ┌─────────────────┐ ┌─────────────────┐│ Schedule │───→│ Loop Over Items │───→│ Execute Sub- ││ (ежечасно) │ │ (источники) │ │ workflow │└────────────┘ └─────────────────┘ │ (ETL для │ │ источника) │ └─────────────────┘
Под-workflow "ETL":1. Extract — получить данные из источника2. Transform — преобразовать в нужный формат3. Load — записать в целевую БД// Под-workflow для каждой AI модели:// - gpt4-processor// - claude-processor// - gemini-processor
// Родительский workflow выбирает модель:{ "model": "gpt4", "prompt": "Проанализируй текст..."}✅ Хорошо:- [SUB] Email Notifications- [SUB] Data Validation- Order Processing / Validate Order
❌ Плохо:- Workflow 1- Test- UntitledИспользуйте Sticky Notes в начале под-workflow:
Родительский workflow:┌────────────────┐│ Execute Sub- ││ workflow │└───────┬────────┘ │ ┌────┴────┐ ↓ ↓Success Error ───→ [Error Handler]Настройте Error Workflow для под-workflows отдельно.
Создайте под-workflow с триггером
Установите Input data mode в Accept all data
В настройках: Save successful production executions = Save
Запустите родительский workflow
Откройте под-workflow → загрузите данные из previous execution
Закрепите данные (Pin) для дальнейшей разработки
| Проблема | Решение |
|---|---|
| ”Workflow not found” | Проверьте ID и права доступа |
| ”Invalid input” | Сверьте схему данных |
| Пустой результат | Проверьте последнюю ноду под-workflow |
| Timeout | Увеличьте лимит или оптимизируйте |
Error Handling
Обработка ошибок в workflows
Executions
Выполнение workflows и отладка
Примеры
Примеры workflows с под-workflows