Введение
Когда вы начинаете собирать автоматизации в n8n, первый инстинкт — использовать для хранения данных Google Sheets или Airtable. Это наглядно, просто и работает "из коробки". Но как только ваш процесс вырастает из "игрушечного" в боевой (тысячи записей в день, сложные связи между клиентами и заказами, требования к безопасности), эти инструменты начинают тормозить, выдавать ошибки API-лимитов и стоить неадекватных денег.
Решение для взрослого бизнеса — это переход на полноценные реляционные базы данных. И здесь абсолютным королем является PostgreSQL. В этой статье мы разберем, как перестать бояться SQL, почему связка n8n + PostgreSQL — это лучший фундамент для любого backend-приложения, и как правильно настроить эту интеграцию.
Почему именно PostgreSQL, а не Google Sheets?
Сравним два подхода на реальном примере: у вас есть Telegram-бот, который собирает заказы, и вы хотите проверять, есть ли пользователь в вашей "базе" перед тем, как выдать ему бонус.
- Google Sheets: n8n берет ID пользователя, делает запрос к API Google. Google читает всю
таблицу (скажем, 50 000 строк) и ищет совпадение. Это занимает 2-3 секунды. Если в эту секунду к боту
обратятся 10 человек, Google может просто заблокировать запрос с ошибкой
429 Too Many Requests. - PostgreSQL: n8n отправляет SQL-запрос
SELECT * FROM users WHERE telegram_id = '123'. За счет индексов база данных за миллисекунды (0.01 сек) отдает точный ответ. Вы можете обрабатывать сотни запросов в секунду абсолютно бесплатно.
Нода PostgreSQL в n8n: Режимы работы
n8n предлагает отличную официальную ноду для работы с Postgres. Она умеет работать в двух основных режимах, которые закрывают 99% потребностей без знания глубокого синтаксиса.
1. Базовые операции (CRUD без SQL)
Если вы не умеете писать SQL-запросы, n8n сделает это за вас через визуальный интерфейс. В выпадающем меню ноды (раздел Operation) вы можете выбрать:
- Insert: Добавить новую строку. Вы просто выбираете таблицу из списка, и n8n сам
подтягивает ее колонки. Вам остается только перетащить в них переменные (например,
{{ $json.chat_id }}в колонкуuser_id). - Update: Обновить данные. Например, изменить статус заказа с "New" на "Paid". Указываем таблицу, колонку для обновления, и условие (Update Key), по которому база найдет нужную строку.
- Upsert (Update or Insert): Самая популярная операция. n8n проверяет: если такой пользователь уже есть в базе — он обновляет его данные; если нет — создает нового. Это спасает от дублей при повторных срабатываниях вебхуков.
- Select: Выборка данных. Можно задать лимит, сортировку и простейшие условия (WHERE) прямо в меню настроек.
2. Режим Execute Query (Для сложных SQL-запросов)
Если вам нужно сделать сложную аналитику (JOIN нескольких таблиц, агрегация GROUP BY, математические
вычисления на стороне базы), вы выбираете режим Execute Query и пишете чистый SQL-код.
Пример: Найти топ-5 клиентов, которые потратили больше всего денег за последний месяц, и чьи заказы в статусе "Доставлено".
SELECT users.name, SUM(orders.total_amount) as total_spent
FROM users
JOIN orders ON users.id = orders.user_id
WHERE orders.status = 'delivered'
AND orders.created_at >= CURRENT_DATE - INTERVAL '1 month'
GROUP BY users.name
ORDER BY total_spent DESC
LIMIT 5;
n8n выполнит этот запрос и вернет вам аккуратный JSON-массив с Топ-5 клиентами, который вы сможете тут же отправить в Telegram-чат руководителю отдела продаж.
Безопасность: Берегитесь SQL-инъекций!
Самая большая ошибка новичков при работе с режимом Execute Query — это прямая вклейка переменных
в текст запроса. Никогда не делайте так:
SELECT * FROM users WHERE name = '{{ $json.user_input }}';
Если пользователь введет в бота фразу '; DROP TABLE users; --, база данных удалит всю вашу
таблицу пользователей.
Правильный подход (Использование Query Parameters):
В n8n под полем с вашим SQL-кодом
есть переключатель "Query Parameters". Активируйте его. В самом SQL-запросе используйте заглушку
(placeholder) — $1.
SELECT * FROM users WHERE name = $1;
А в поле Query Parameters вставьте вашу переменную {{ $json.user_input }}. База данных (и
драйвер Postgres под капотом n8n) сама безопасно заэкранирует этот текст, превратив любые кавычки в обычный
текст, а не в команду.
Где взять PostgreSQL?
Если вы только учитесь, не обязательно сразу покупать дорогой сервер.
- Облачные сервисы (DBaaS): Платформы вроде Supabase, Neon.tech или Render дают щедрые бесплатные тарифы на полноценный PostgreSQL в облаке. Достаточно скопировать длинную строку подключения (Connection String) и вставить ее в Credentials n8n.
- Self-Hosted (Docker): Если у вас уже есть VPS, где крутится n8n, вы можете развернуть Postgres рядом в соседнем Docker-контейнере всего одной командой. Это бесплатно, данные не покидают ваш сервер, а скорость общения n8n и базы будет максимальной.
Заключение
Переход от табличек к реляционной базе данных — это Рубикон в карьере любого специалиста по автоматизации. Да, придется выучить основы создания таблиц, типы данных (VARCHAR, INT, BOOLEAN) и синтаксис SQL. Но взамен вы получите фундамент, который легко масштабируется от 10 заказов в день до инфраструктуры уровня маркетплейса, не требуя переписывания логики в n8n.