# Зібрати перший workflow: заявка без дублювання

AI Insider · Оновлено 2026-10-05
Гайд: https://www.aiinsider.it.com/insights/n8n-ukrainskoiu

Навчальне завдання на синтетичних даних. Не результат клієнтського проєкту.

Навчальний приклад — заявка на консультацію. Мета: одна заявка створює один запис; повторна доставка не створює другого. Спочатку працюйте з Manual Trigger і тестовими даними, без доступу до справжніх контактів.

## Порядок роботи

1. У Manual Trigger запустіть приклад. У Edit Fields створіть event_id, email і intent; email приведіть до нижнього регістру та приберіть пробіли.
2. Через IF перевірте, що event_id не порожній, email має очікувану структуру, intent належить до дозволеного списку. Помилкові записи відправте в окрему гілку.
3. Перед створенням запису знайдіть event_id у тестовій таблиці. Відсутній — створіть; наявний — завершіть без повторного повідомлення. Для паралельних запусків потрібне сховище з унікальним ключем, а не лише пошук у таблиці.
4. Запустіть нормальний приклад, порожній email і повторний event_id. Порівняйте кількість записів та повідомлень; збережіть execution кожного тесту.

## Вхідні дані

```json
{"event_id":"demo-001","email":"demo@example.com","intent":"consultation"}
```

## Перевірка

| Вхід або ситуація | Очікувана поведінка |
| --- | --- |
| Валідна заявка | Один запис і одне сповіщення |
| Повтор demo-001 | Жодного нового запису або повідомлення |
| Порожній email | Помилкова гілка; CRM не викликається |

## Межі прикладу

Це проєктна вправа. Підключення CRM, захист webhook і атомарний контроль дублів треба перевірити у вашому середовищі. Імпорт шаблону сам по собі не означає готовність до запуску.

## Джерела

- [Офіційна документація n8n](https://docs.n8n.io/)
- [Security audit n8n](https://docs.n8n.io/deploy/host-n8n/configure-n8n/security/run-security-audits)
