Как подключить google sheets к n8n

Как подключить 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 для создания безопасного подключения.

  1. В интерфейсе n8n перейдите в раздел «Credentials» (значок ключа на левой панели).
  2. Нажмите «Add Credential». Выберите из списка «Google Sheets OAuth2 API».
  3. Заполните поля:
    • Credential Name: Укажите понятное имя, например, «Мой Google Аккаунт».
    • Client ID: Вставьте скопированный Client ID из Google Cloud Console.
    • Client Secret: Вставьте скопированный Client Secret.
  4. В разделе «Scopes» должны быть предзаполнены необходимые области доступа: https://www.googleapis.com/auth/drive.file, https://www.googleapis.com/auth/spreadsheets. Этого достаточно для базовых операций.
  5. Нажмите «Create». После этого появится кнопка «Connect». Нажмите на нее — откроется новое окно или вкладка с запросом на авторизацию Google. Войдите в аккаунт, к таблицам которого нужен доступ, и предоставьте запрашиваемые разрешения.
  6. После успешной авторизации вы вернетесь в 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.

  1. Добавьте ноду Webhook (триггер) в начало воркфлоу. Настройте ее: выберите метод POST, создайте уникальный путь (например, form-data). После активации воркфлоу скопируйте сгенерированный URL.
  2. Добавьте ноду Google Sheets. Свяжите ее с нодой Webhook.
  3. Настройте ноду Google Sheets:
    • Resource: Sheet
    • Operation: Append
    • Учетные данные: Выберите ваши.
    • Spreadsheet ID: Укажите ID вашей таблицы.
    • Sheet Name: Название листа (например, «Лист1»).
    • Columns: Определите заголовки колонок. Используйте Expression, чтобы динамически подставлять данные из Webhook. Например, для колонки «Имя» значение можно задать как {{$json.name}}, где name — свойство из входящего JSON.
  4. Активируйте воркфлоу. Отправьте тестовый 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 соответствует этим заголовкам.

Устранение неполадок и отладка

Если нода не работает, выполните проверку по следующим пунктам:

  1. Ошибка аутентификации: Убедитесь, что учетные данные в n8n активны (зеленая галочка). Попробуйте переподключиться (кнопка «Reconnect» в настройках учетных данных). Проверьте, не отозвали ли вы доступ приложению в настройках аккаунта Google.
  2. Нет доступа к таблице: Убедитесь, что Spreadsheet ID указан верно. Проверьте, предоставлен ли доступ на редактирование Google-таблицы email-адресу, ассоциированному с проектом в Google Cloud.
  3. Ошибка диапазона: Проверьте правильность написания имени листа и диапазона. Учтите, что имя листа чувствительно к регистру.
  4. Логирование: Включите режим отладки (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». В параметрах можно указать название новой таблицы и листы внутри нее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *