← Назад до блогу

n8n і Google Sheets: зіставлення ID та оновлення визначених стовпців

Створіть процес n8n для Google Sheets: перевіряйте ID записів, оновлюйте визначені стовпці й спрямовуйте відсутні або дубльовані збіги на перевірку.

Рожева ручка націлена на один стовпець паперового реєстру, а неоднозначні позначки ID чекають у лотку для перевірки.

Перевірено за наведеними джерелами .

Підготуйте інтеграцію n8n із Google Sheets

Цей посібник з n8n і Google Sheets пропонує контрольований навчальний робочий процес: прийняти один запит на оновлення, підрахувати точні збіги ID, оновити automation_status лише за єдиного збігу й додати винятки на окремий аркуш для перевірки. Кроки та код — це навчальний приклад із критеріями приймання нижче; результатів фактичного виконання не наведено.

Для початку потрібні робочий простір n8n, наявні робочі облікові дані Google Sheets і копія навчальної електронної таблиці. Створення облікових даних, налаштування розкладу для промислового використання, пакетна обробка, масштабування й оптимізація квот виходять за межі посібника. Перед побудовою підготуйте наведені нижче тестові дані. Приклад таблиці Records містить запропоновані навчальні дані: зберігайте ID як текст. Надішліть чотири запити окремо, по одному на виконання, зі значеннями record_id A-001, A-002, A-999 і порожнім рядком, щоразу задаючи automation_status значення ready. Не додавайте A-999 до Records.

Пропонована структура навчальної таблиці
РозташуванняПоляПризначення
Аркуш Recordsrecord_id, automation_status, team_notesРобочі дані для практики
Аркуш Reviewrequested_id, proposed_value, classification, match_countПеревірка винятків
Запитrecord_id, automation_statusОдне запропоноване оновлення
Приклад таблиці Records: запропоновані навчальні дані
record_idautomation_statusteam_notes
A-001pendingПідтвердити адресу доставки
A-002pendingОчікуємо на фінансовий відділ
A-002on_holdЗателефонувати перед відправленням

На нашу думку, відповідальність за стовпці варто визначити до підключення вузла запису: так колезі буде простіше перевірити заплановану зміну.

1. Підготуйте один запит і прочитайте рядки

Аркуш із запитом, реєстр і порожній конверт уособлюють етап читання Google Sheets у n8n та шлях для порожнього результату.
Один запит і невеликий навчальний аркуш спрощують етап читання.

Використовуйте стабільні текстові ідентифікатори в record_id. У цій вправі застосовується точна текстова рівність: без видалення пробілів, зміни регістру чи перетворення на числа. Наприклад, A-001 відрізняється від a-001. Читання всіх рядків спрощує цю невелику навчальну вправу. Створіть перші вузли так.

  1. Додайте Manual Trigger, а потім Edit Fields із назвою Request.
  2. У Request задайте record_id значення A-001, а automation_status — ready. Виконуйте лише один запит за одне виконання.
  3. Додайте вузол Google Sheets з операцією Get Row(s). Виберіть наявні облікові дані, документ і аркуш Records; не задавайте фільтрів читання.
  4. У Settings вузла читання ввімкніть Always Output Data.

Документація n8n описує вибір наявних облікових даних і стандартне отримання всіх рядків через Get Row(s). Always Output Data повертає порожній елемент, коли вузол не повертає даних; код зіставлення має виключати цей службовий елемент.

Sources: n8n-docs/docs/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/understand-workflows/workflow-components/work-with-nodes.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.set.md at main · n8n-io/n8n-docs · GitHub

2. Підрахуйте збіги та спрямуйте запит

Ворота зіставлення спрямовують запит або шляхом оновлення за єдиного збігу, або шляхом перевірки винятків.
Запропонована маршрутизація відокремлює єдині збіги від запитів, що потребують перевірки.

Додайте вузол Code після читання та виберіть JavaScript, Run Once for All Items. n8n підтримує доступ до всіх вхідних елементів і звернення до першого елемента вузла за його назвою. Вставте цей запропонований навчальний код:

const request = $('Request').first().json; const id = request.record_id; const valid = typeof id === 'string' && id.trim().length > 0; const rows = $input.all().map(item => item.json).filter(row => Object.prototype.hasOwnProperty.call(row, 'record_id')); const count = valid ? rows.filter(row => typeof row.record_id === 'string' && row.record_id === id).length : 0; return [{ json: { requested_id: id ?? '', proposed_value: request.automation_status, classification: !valid ? 'invalid' : count === 1 ? 'unique' : count === 0 ? 'missing' : 'duplicate', match_count: count } }];

Додайте вузол Switch із правилами для classification зі значеннями unique, missing, duplicate та invalid. Увімкніть резервний вихід Extra Output. Ці класифікації — умовні позначення, обрані для посібника. Підключіть unique до гілки оновлення, а решту виходів і резервний вихід — до перевірки.

Пропонований процес оновлення та перевірки: 1. Читання; 2. Класифікація; 3. Маршрутизація; 4. Перевірка

На нашу думку, неочікувану класифікацію слід спрямовувати на перевірку, а не до гілки запису. Так резервний вихід стає свідомим рішенням.

Sources: Using the Code node, n8n-docs/docs/build/work-with-data/transform-data/expression-reference/nodeinputdata.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/work-with-data/reference-data/reference-previous-nodes.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.switch.md at main · n8n-io/n8n-docs · GitHub

3. Обмежте запис і додайте винятки

Широкий валик і тонка ручка протиставляють необмежений запис оновленню визначених стовпців.
Явні зіставлення визначають, які стовпці має змінювати автоматизація.

У гілці unique налаштуйте вузол Google Sheets у n8n за наведеними нижче кроками. Update Row оновлює наявні рядки, а ручне зіставлення визначає окремі стовпці. Edit Fields може відкидати поля, які не були задані явно.

  1. Додайте Edit Fields до гілки unique. Задайте record_id зі значення requested_id, а automation_status — зі значення proposed_value.
  2. Увімкніть опцію відкидання інших вхідних полів.
  3. Додайте Google Sheets Update Row для аркуша Records і виберіть record_id як стовпець для зіставлення.
  4. Виберіть Map Each Column Manually. Зіставте лише record_id та automation_status; не використовуйте Append or Update Row.

Повністю виключіть team_notes: видаліть його зіставлення, а не залишайте значення порожнім. Надані матеріали реалізації з гілки master показують, що ручне зіставлення у вузлі Google Sheets версії 4 і новіших перетворює зіставлені значення null або undefined на порожні рядки. Інша допоміжна функція пропускає отримані властивості зі значеннями null або undefined, тому попереднє зіставлення має значення. Документація не має дати, а реалізацію не прив’язано до конкретної версії; установлені випуски та назви елементів інтерфейсу можуть відрізнятися.

Для гілки перевірки використайте Google Sheets Append Row на аркуші Review. Вручну зіставте requested_id, proposed_value, classification і match_count із вихідними даними класифікації. Append Row додає рядок у кінці; ця процедура перевірки — запропонований нами підхід, а не вбудована функція перевірки винятків.

Sources: n8n-docs/docs/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/integrations/builtin/core-nodes/n8n-nodes-base.set.md at main · n8n-io/n8n-docs · GitHub, n8n/packages/nodes-base/nodes/Google/Sheet/v2/helpers/GoogleSheet.ts at master · n8n-io/n8n · GitHub, n8n/packages/nodes-base/nodes/Google/Sheet/v2/actions/sheet/update.operation.ts at master · n8n-io/n8n · GitHub

4. Перевірте зміни та усуньте проблеми

Дві смужки реєстру й чотири лотки з тестовими даними допомагають перевірити оновлення та збереження командних приміток.
Порівняйте вміст до й після виконання для запропонованих сценаріїв приймання.

Перед кожним запуском зафіксуйте team_notes, виконайте робочий процес, а потім повторно прочитайте аркуш. Використовуйте ці запропоновані критерії приймання для свого робочого процесу n8n із Google Sheets.

Запропоновані критерії приймання, а не спостережені результати
ЗапитАркуш RecordsАркуш Review
Унікальний IDЗмінюється лише automation_status; team_notes збереженоБез запису
Відсутній IDБез змінЗапис missing, кількість 0
Дубльований IDОбидва відповідні рядки без змінЗапис duplicate, кількість збігів
Порожній IDБез змінЗапис invalid, кількість 0

Якщо результати неочікувані, перегляньте Executions і використайте Execute step для перевірки окремих вузлів. Перевірте вибрані документ, аркуш, розташування заголовків і даних, типи ID, вихідні дані класифікації та зіставлення для запису. Якщо замінюєте читання всіх рядків на читання з фільтром, явно виберіть Return All Matches: інакше, згідно з документацією n8n, повертається лише перший відповідний результат.

Визначення відповідальності за стовпці звужує область запису, але надані джерела не підтверджують транзакційного забезпечення унікальності, блокування чи виявлення конфліктів між пошуком і оновленням. Тому одночасні зміни в клітинках, за які відповідає автоматизація, можуть залишатися поза захистом цього навчального робочого процесу.

Sources: Sheet Within Document operations | Nodes | n8n Docs, n8n-docs/docs/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/sheet-operations.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/understand-workflows/workflow-components/work-with-nodes.md at main · n8n-io/n8n-docs · GitHub, n8n-docs/docs/build/flow-logic/handle-errors-gracefully.md at main · n8n-io/n8n-docs · GitHub

Спробуйте на практиці

Практичні завдання з n8n

Оберіть завдання й створіть робочий воркфлоу у власному середовищі n8n – до кожного завдання є п’ять поступових підказок.

Спробувати практичне завдання

Для вашої команди

Програми навчання n8n для однієї команди чи відділу – на вашому власному екземплярі n8n, з вашими інструментами й даними.

Навчання для вашої команди

Оцінка навичок n8n

Безкоштовний тест приблизно на 20 хвилин, англійською: 30 запитань у 10 напрямах і рівень від початківця до експерта. На AI Adoption Score – іншому проєкті автора цього сайту.

Дізнатися свій рівень n8n