Импорт Google Sheets в Notion
Импорт Google Sheets в Notion требует чтения одобренных строк таблицы, сопоставления их полей с типами свойств целевой базы и создания страницы для каждой принятой строки. Перед следующим переносом запишите возвращённый идентификатор страницы Notion рядом с идентификатором источника. Описанный ниже вариант основан на каталоге и предусматривает одностороннее создание страниц с явной проверкой сопоставлений и повторных запусков.
Столбцы таблицы и свойства базы Notion имеют разные правила. Столбец с названием Status не становится автоматически допустимым свойством выбора или одним из разрешённых значений такого свойства.
Автор: Ai Flowi · Опубликовано
Официальные источники: документация Google Sheets API; документация Notion API
Выберите исходный диапазон и идентификатор страницы
Определите таблицу, вкладку и точный диапазон, который вам разрешено читать. Включите стабильный идентификатор источника в каждую строку и согласуйте поля, которые станут свойствами Notion. Ограничьте выбранный диапазон так, чтобы исключить посторонние конфиденциальные столбцы. Сортировка и вставка строк меняют их положение; используйте идентификатор источника для распознавания одной и той же записи в разных пакетах.
Read Range возвращает values как JSON. Для входа data компонента Loop указаны Table и DataFrame, поэтому не соединяйте Read Range напрямую с Loop лишь на том основании, что оба представляют коллекции. Преобразуйте проверенные записи с заданными соответствиями через Data → DataFrame и сначала проверьте Table.
Что требуется от обоих сервисов
Авторизуйте свой аккаунт Google для исходной таблицы по инструкции подключения Google и передайте учётные данные базы своего аккаунта Notion через notion_secret; услуги провайдеров оплачиваются отдельно, а вызовов модели в этом переносе нет.
До выбора пакета убедитесь в рамках небольшой локальной проверки, что учётные данные Notion позволяют проверить нужную базу.
Настройте List Database Properties и Create Page по справочнику интеграции Notion.
В сопоставлении переноса рядом с каждым целевым свойством должна быть указана нужная база. В двух базах может быть свойство Status с разными допустимыми вариантами. Проверьте выбранный вариант по схеме базы, выбранной для этого пакета, вместо переноса сопоставления из другой целевой базы с похожим названием.
Настройте пакетное создание страниц с проверкой
пример конфигурации, а не результат документированного испытания
| Компонент | Входные поля для настройки | Критерий принятия результата |
|---|---|---|
| Read Range | Выберите одобренные ячейки заголовков и данных через range_name; укажите их таблицу через spreadsheet_id и выберите google_account. | Проверьте, что позиции в выбранном диапазоне по-прежнему соответствуют одобренным исходным заголовкам. |
| List Database Properties | Задайте notion_secret и нужный database_id. | Проверенная схема относится к базе, выбранной для этого пакета. |
| JSON Operations | Выберите "JQ Expression" через operations для переданных data; напишите query, чтобы именовать фактические поля строк и отклонять записи без идентификаторов. | У каждой принятой строки есть проверенное сопоставление свойств и идентификатор источника. |
| Data → DataFrame и Loop | Передайте JSON с заданными соответствиями в data_list, затем полученный dataframe — в Loop.data. | Каждое подтверждение создания нужно сопоставлять по идентификатору источника, а не просто по позиции строки. |
| Create Page | Выберите database_id для этого пакета, передайте проверенную строку свойств в properties_json и учётные данные через notion_secret. Если строка сформирована на предыдущем этапе, используйте проверенное преобразование в Message. | Откройте созданную страницу и сравните её статус с одобренным решением о сопоставлении. |
- Прочитайте строки и обозначьте поля. Запустите Read Range на тестовой таблице. Сопоставьте каждую фактическую позицию с согласованным заголовком, сохранив стабильный идентификатор источника. Проверьте пустые ячейки в конце, прежде чем считать укороченную строку признаком отсутствующих столбцов.
- Проверьте схему Notion. Запустите List Database Properties отдельно. Задайте соответствие для каждого исходного поля: имя целевого свойства, ожидаемый тип, обработку пустых значений и допустимые варианты, где это применимо.
- Подготовьте принятые записи. Используйте JSON Operations для формирования только разрешённых полей. Остановите ручную проверку при появлении повторяющихся идентификаторов, неизвестных статусов или отсутствующего обязательного содержимого; не создавайте страницы с частичными сопоставлениями без уведомления.
- Сопоставьте каждый элемент с подтверждением. Настройте перебор с учётом ограничений подключения и порядка Loop. Проверьте, что каждый возвращённый идентификатор страницы связан с идентификатором источника в запросе её создания; сравнивайте идентификаторы, а не сопоставляйте строки и подтверждения по позиции.
- Создайте одну страницу и сохраните подтверждение. Подготовьте объект свойств по фактической схеме назначения, при необходимости преобразуйте его в Message через Type Convert с
output_type="Message"и убедитесь, что полученный текст — валидный JSON. Передайте его вproperties_jsonкомпонента Create Page. - Запишите соответствие источника и страницы. Для этого упражнения вручную сохраните идентификатор источника, возвращённый идентификатор страницы и результат в журнале проверки до выбора следующей строки. В этой схеме не настроен узел автоматической обратной записи.
Осознанно сопоставляйте типизированные свойства
В условном переносе строка таблицы обозначает задачу как T-07 и задаёт статус Waiting. Если в целевой базе нет соответствующего варианта статуса, отложите строку до решения о сопоставлении. Не подставляйте первый доступный вариант и не создавайте вводящую в заблуждение страницу с внешне допустимым статусом. Проверяющий может одобрить конкретный вариант назначения, исправить источник или пропустить строку, записав причину. Сохраните решение рядом с T-07, чтобы та же неоднозначность не повторилась в следующем пакете.
Разделяйте текст, числовые величины, даты и значения вариантов в таблице сопоставлений. Пустая ячейка может означать «оставить свойство пустым», «отклонить запись» или «использовать одобренное значение по умолчанию»; решите это явно. Никогда не придумывайте дату из неоднозначного текста таблицы лишь ради заполнения целевого поля.
Для свойств с вариантами сравнивайте исходное значение с допустимыми значениями назначения. Для текстовых свойств сохраняйте значимые переносы строк и пунктуацию. Описание компонента не подтверждает автоматическое разрешение связей, копирование вложений или преобразование форматированного текста. Исключите эти поля из первого переноса до проверки их данных и поведения.
Предотвращайте случайное создание при повторных запусках
Create Page — операция создания, а не документированная операция обновления или вставки. Если та же строка выбрана повторно, не предполагайте, что совпадающее название обновит прежнюю страницу. По журналу подтверждений соответствия источников и страниц выбирайте только строки, создание которых заведомо не завершено.
Если надёжное подтверждение создания не вернулось, проверьте целевую базу на наличие этого идентификатора источника, прежде чем отправлять строку снова. Каталог не предусматривает параметр идемпотентности для Create Page или транзакционную связь между созданием и журналом подтверждений. Страница может существовать, даже если вызывающая сторона не сохранила её идентификатор; остановитесь и выясните результат вместо автоматической повторной попытки.
Проверьте перенос до расширения
Подготовьте искусственные строки с пустым необязательным значением, недопустимым вариантом, идентификатором источника с ведущим нулём и повторяющимися идентификаторами. Подтвердите, что предложенная проверка исключает недопустимые записи до создания. Для одной принятой строки проверьте значения свойств назначения и запишите идентификатор страницы; затем убедитесь, что отбор исключает эту строку из второго пакета создания.
Проверьте заголовок диапазона после вставки или переименования столбца таблицы. Если преобразование сопоставляет позиции, смещение заголовка должно остановить процесс, а не перенести значения в неправильные свойства. Сохраняйте исходную схему для каждого пакета, чтобы последующие изменения можно было объяснить.
Каковы ограничения переноса из Google Sheets в Notion и какие есть другие направления?
Этот перенос описан в каталоге; Ai Flowi не проверяла его в производственной среде. Двусторонняя синхронизация, автоматическая сверка изменений, полная пагинация, обратное подключение цикла и безопасный механизм повторных попыток не подтверждены. Выберите существующий ручной импорт, если он уже подходит для разового переноса, и избегайте обработки без участия человека до проверки сопоставлений и восстановления после сбоев.
Для переноса выбранных свойств базы в обратном направлении прочитайте перенос из Notion в Google Sheets. Для создания снимка текста страницы в документе используйте перенос из Notion в Google Docs. Это отдельные результаты с отдельными правилами идентификации.
Расход при создании страницы для каждой строки
Тарифы: Go от USD8 в месяц при годовой оплате (USD10 помесячно), Plus от USD16 (USD20 помесячно), Pro 100 от USD80 (USD100 помесячно), Pro 200 от USD160 (USD200 помесячно) и Pro 500 от USD400 (USD500 помесячно), от 5,000 до 250,000 Flowi Tokens в месяц с возможностью пополнения; 1 токен за каждый запуск узла; использование сторонних API и моделей не включено.
Проверяйте запуски внутри перебора, а также чтение источника и преобразование в Table. Узел создания для каждой строки может выполняться много раз в пакете; один видимый узел в схеме не означает один оплачиваемый запуск узла для всего переноса.
Справочные материалы по переносу таблиц
Проверьте интерфейсы свойств в справочнике Notion. Если строки поступают через HTTP, изучите руководство по приёму через вебхук до выбора пакета переноса. Указатель сценариев описывает границы других процессов. Обратные выгрузки свойств базы описаны в переносе из Notion в Google Sheets; для полей, которые пока находятся лишь в загруженных документах, сначала используйте извлечение данных из документов с ИИ.