Подключение Google Sheets к n8n
Нужно для шаблонов W3 и W4. Идём через сервисный аккаунт — это проще, чем OAuth: не нужен экран согласия Google, и всё стабильно работает на локальном n8n (localhost).
Часть 1. Google Cloud — проект и API
Создай проект в Google Cloud
Открой console.cloud.google.com (войди своим Google-аккаунтом). Вверху слева — Select a project → New Project → задай имя, напр. mktflow-n8n → Create. Дождись создания и выбери проект.
screens/01-project.pngОкно «New Project» с именем проекта
Включи два API
Меню (☰) → APIs & Services → Library. Найди и включи Google Sheets API, затем так же — Google Drive API (Drive нужен, чтобы n8n находил и открывал таблицы).
screens/02-enable-apis.pngСтраница Google Sheets API с кнопкой Enable
Часть 2. Сервисный аккаунт и ключ
Создай сервисный аккаунт
Меню (☰) → IAM & Admin → Service Accounts → Create service account. Имя, напр. n8n-sheets → Create and continue → роли можно пропустить → Done.
screens/03-create-sa.pngФорма Create service account с именем n8n-sheets
Скачай JSON-ключ
Открой созданный сервисный аккаунт → вкладка Keys → Add key → Create new key → тип JSON → Create. Файл .json скачается на компьютер — он понадобится в n8n.
screens/04-json-key.pngKeys → Add key → Create new key → JSON
Скопируй email сервисного аккаунта
На странице сервисного аккаунта скопируй его email — он вида n8n-sheets@ИМЯ-ПРОЕКТА.iam.gserviceaccount.com. Он нужен для следующего шага.
screens/05-sa-email.pngEmail сервисного аккаунта (…iam.gserviceaccount.com)
Часть 3. Доступ к таблице и n8n
Дай сервисному аккаунту доступ к таблице
Открой свою Google-таблицу (ту, с которой работает workflow) → кнопка Share (Настройки доступа) → вставь email сервисного аккаунта из шага 5 → права Editor (Редактор) → Send.
screens/06-share.pngОкно Share таблицы с добавленным email сервисного аккаунта (Editor)
Заведи credential в n8n
В n8n открой ноду Google Sheets → создай credential → тип Service Account. Открой скачанный JSON-файл текстовым редактором и вставь из него:
- Service Account Email — значение поля
client_email; - Private Key — значение поля
private_keyцеликом (вместе с-----BEGIN PRIVATE KEY-----…-----END PRIVATE KEY-----).
Сохрани — Save.
screens/07-n8n-cred.pngCredential Service Account в n8n: email + private key
Выбери таблицу и запусти
В ноде Google Sheets укажи свою таблицу (по ссылке/ID) и нужный лист → Execute step. Если строки записались/прочитались — всё работает.
screens/08-run.pngНода Google Sheets: выбрана таблица/лист и зелёный результат прогона
Частые проблемы
- «The caller does not have permission» — не расшарил таблицу на email сервисного аккаунта (шаг 6) или дал не Editor, а Viewer.
- n8n не находит таблицу — не включён Google Drive API (шаг 2). Включи и повтори.
- Ошибка ключа / invalid key — Private Key вставлен не полностью. Копируй значение
private_keyцеликом, вместе со строками BEGIN/END. - Ключ утёк — в сервисном аккаунте: Keys → удали старый → создай новый JSON, обнови credential в n8n.
- Красный треугольник на поле Sheet — переключи режим на From list (или By Name), не By URL.
- Workflow с формой падает с «Unused Respond to Webhook node» — в ноде Webhook поле Respond → Using 'Respond to Webhook' node.