Как подключить Google Sheets к n8n
Интеграция Google Sheets с n8n позволяет автоматизировать передачу данных между таблицами и сотнями других сервисов, создавая мощные рабочие процессы без написания кода. n8n предоставляет нативные ноды (узлы) для работы с Google Sheets, поддерживающие чтение, запись и обновление данных. Процесс подключения состоит из двух основных этапов: настройки учетных данных (Credentials) в Google Cloud Console и их использования в нодах n8n.
Создание проекта и учетных данных в Google Cloud Console
Для взаимодействия n8n с API Google Sheets необходимо создать проект в Google Cloud Platform и настроить OAuth 2.0 авторизацию.
- Перейдите в Google Cloud Console. Создайте новый проект или выберите существующий.
- На боковой панели навигации выберите «APIs & Services» > «Library». В поиске найдите и включите два API: Google Sheets API и Google Drive API. Это обязательное условие для работы ноды.
- После включения API перейдите в раздел «APIs & Services» > «Credentials». Нажмите «CREATE CREDENTIALS» и выберите «OAuth client ID».
- Если это ваш первый раз, система предложит настроить экран согласия OAuth. Выберите тип пользователя «External» и заполните обязательные поля: название приложения и email для связи. На этапе тестирования можно добавить тестовых пользователей (ваш email).
- При создании OAuth 2.0 Client ID выберите тип приложения «Web application». Дайте ему понятное имя, например, «n8n Google Sheets».
- В поле «Authorized redirect URIs» необходимо добавить callback-URL вашего экземпляра n8n. Стандартный URL:
https://your-n8n-domain.com/rest/oauth2-credential/callback. Замените «your-n8n-domain.com» на адрес вашего сервера n8n. Для локальной установки (например, через Docker) это может бытьhttp://localhost:5678/rest/oauth2-credential/callback. - Нажмите «CREATE». Система отобразит «Client ID» и «Client Secret». Скопируйте и сохраните их — они понадобятся в n8n.
Настройка учетных данных в n8n
Теперь необходимо добавить полученные ключи в n8n для создания безопасного подключения.
- В интерфейсе n8n перейдите в раздел «Credentials» (значок ключа на левой панели).
- Нажмите «Add Credential». Выберите из списка «Google Sheets OAuth2 API».
- Заполните поля:
- Credential Name: Укажите понятное имя, например, «Мой Google Аккаунт».
- Client ID: Вставьте скопированный Client ID из Google Cloud Console.
- Client Secret: Вставьте скопированный Client Secret.
- В разделе «Scopes» должны быть предзаполнены необходимые области доступа:
https://www.googleapis.com/auth/drive.file,https://www.googleapis.com/auth/spreadsheets. Этого достаточно для базовых операций. - Нажмите «Create». После этого появится кнопка «Connect». Нажмите на нее — откроется новое окно или вкладка с запросом на авторизацию Google. Войдите в аккаунт, к таблицам которого нужен доступ, и предоставьте запрашиваемые разрешения.
- После успешной авторизации вы вернетесь в n8n, а в списке учетных данных появится запись с зеленой галочкой, подтверждающая подключение.
Использование ноды Google Sheets в воркфлоу
Создайте новый воркфлоу (workflow) или откройте существующий. Добавьте ноду Google Sheets, найдя ее в списке триггеров или действий.
Основные операции и настройки ноды
Нода Google Sheets в n8n поддерживает множество операций. Ключевые параметры для настройки:
- Resource: Выберите тип ресурса: Spreadsheet (работа с документом) или Sheet (работа с конкретным листом внутри документа).
- Operation: Выберите действие (Create, Read, Update, Append).
- Authentication: Выберите из выпадающего списка созданные ранее учетные данные.
Для операций с данными необходимо указать идентификатор таблицы (Spreadsheet ID). Его можно найти в URL вашего Google-документа: https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit.
Таблица: Основные операции ноды Google Sheets
| Операция (Operation) | Описание | Ключевые поля для заполнения |
|---|---|---|
| Create | Создает новую строку в указанном листе. | Spreadsheet ID, Sheet Name, Columns (определение колонок), Row Object (данные для вставки). |
| Read | Читает данные из листа. Можно задать диапазон. | Spreadsheet ID, Sheet Name, Range (например, A1:C10). Если Range не указан, читается весь лист. |
| Update | Обновляет существующую строку. | Spreadsheet ID, Sheet Name, Range (одна ячейка или диапазон), Row Object (новые данные). |
| Append | Добавляет новую строку в конец листа. | Spreadsheet ID, Sheet Name, Columns, Row Object. |
Практический пример: Автоматический сбор данных из формы в таблицу
Рассмотрим воркфлоу, где данные, пришедшие на ноду Webhook (например, из формы на сайте), автоматически записываются в Google Sheets.
- Добавьте ноду Webhook (триггер) в начало воркфлоу. Настройте ее: выберите метод POST, создайте уникальный путь (например,
form-data). После активации воркфлоу скопируйте сгенерированный URL. - Добавьте ноду Google Sheets. Свяжите ее с нодой Webhook.
- Настройте ноду Google Sheets:
- Resource: Sheet
- Operation: Append
- Учетные данные: Выберите ваши.
- Spreadsheet ID: Укажите ID вашей таблицы.
- Sheet Name: Название листа (например, «Лист1»).
- Columns: Определите заголовки колонок. Используйте Expression, чтобы динамически подставлять данные из Webhook. Например, для колонки «Имя» значение можно задать как
{{$json.name}}, гдеname— свойство из входящего JSON.
- Активируйте воркфлоу. Отправьте тестовый POST-запрос на URL Webhook с данными в формате JSON. Нода автоматически добавит новую строку в конец указанного листа.
Обработка данных и расширенные сценарии
n8n позволяет не просто передавать данные, но и преобразовывать их перед записью в таблицу или после чтения из нее.
- Использование ноды Code: С помощью нод «Function» или «Function Item» можно написать JavaScript-код для сложной обработки данных (например, расчеты, форматирование дат, объединение полей).
- Фильтрация и маршрутизация: Нода «IF» позволяет проверять условия (например, если сумма заказа больше 1000) и направлять данные по разным веткам воркфлоу, возможно, в разные листы.
- Цикл по данным: При чтении из таблицы нода возвращает массив строк. Используйте ноду «SplitInBatches» или «Iterator» для обработки каждой строки по отдельности (например, для отправки индивидуальных email).
Особенности работы с диапазонами и форматами
Для операций Read, Update важно правильно указывать диапазон (Range). Форматы:
A1:B5— диапазон ячеек.SheetName!A1:B5— указание листа и диапазона.- При обновлении данных необходимо точно указать диапазон, который соответствует размеру передаваемых данных.
Данные в n8n и Google Sheets передаются в виде массивов объектов. Первая строка листа обычно интерпретируется как заголовки колонок. При операции Append убедитесь, что структура Row Object соответствует этим заголовкам.
Устранение неполадок и отладка
Если нода не работает, выполните проверку по следующим пунктам:
- Ошибка аутентификации: Убедитесь, что учетные данные в n8n активны (зеленая галочка). Попробуйте переподключиться (кнопка «Reconnect» в настройках учетных данных). Проверьте, не отозвали ли вы доступ приложению в настройках аккаунта Google.
- Нет доступа к таблице: Убедитесь, что Spreadsheet ID указан верно. Проверьте, предоставлен ли доступ на редактирование Google-таблицы email-адресу, ассоциированному с проектом в Google Cloud.
- Ошибка диапазона: Проверьте правильность написания имени листа и диапазона. Учтите, что имя листа чувствительно к регистру.
- Логирование: Включите режим отладки (Execution Debug mode в настройках воркфлоу) и проверьте входные и выходные данные каждой ноды. Это поможет локализовать проблему.
Ответы на часто задаваемые вопросы (FAQ)
Нужно ли каждый раз авторизовываться в Google при использовании ноды?
Нет. После первоначальной OAuth-авторизации n8n получает и хранит refresh token, который автоматически обновляет access token при истечении его срока действия. Авторизация требуется однократно при настройке учетных данных.
Можно ли подключить несколько Google-аккаунтов к одному экземпляру n8n?
Да. Для этого необходимо создать отдельные учетные данные (Credentials) в n8n для каждого аккаунта Google. В настройках ноды вы сможете выбирать, какие учетные данные использовать.
Как ограничить доступ n8n только к определенным таблицам?
При настройке OAuth в Google Cloud Console вместо широких scope (например, .../auth/drive) используйте https://www.googleapis.com/auth/drive.file. Этот scope дает доступ только к файлам, созданным или открытым через ваше приложение. Также вы можете вручную предоставить доступ к конкретным таблицам email-адресу сервисного аккаунта или OAuth-клиента.
Почему нода Read возвращает пустые данные, хотя в таблице есть информация?
Наиболее вероятная причина — неверно указанный диапазон (Range) или имя листа (Sheet Name). Убедитесь, что вы указываете правильное имя листа, как оно отображается в нижней части интерфейса Google Sheets. Попробуйте оставить поле Range пустым, чтобы прочитать весь лист.
Как работать с большими объемами данных без превышения лимитов API?
Google Sheets API имеет квоты. Для обработки больших таблиц используйте пагинацию: настройте ноду Read на чтение данных по частям (например, по 100 строк за раз), используя поля «Range» и последующую обработку батчами. Добавьте задержки между операциями с помощью ноды «Wait».
Поддерживает ли нода Google Sheets работу с несколькими листами в одном документе?
Да. Вы можете выполнять операции на разных листах в рамках одного воркфлоу. Для этого добавьте несколько нод Google Sheets, укажите один и тот же Spreadsheet ID, но разные имена листов (Sheet Name) в каждой ноде.
Можно ли создавать новые таблицы через n8n?
Да, для этого существует отдельная операция. Выберите Resource: «Spreadsheet», а Operation: «Create». В параметрах можно указать название новой таблицы и листы внутри нее.
Добавить комментарий