N8n + notion поддержание slave таблиц актуальными

100 000 руб. за проект
12 января 2023, 09:30 • 10 откликов • 67 просмотров
Требуется в n8n создать механизм поддержания slave таблиц notion актуальными.

Постоплата (ИП, самозанятость).
Срок: 1 неделя.

Интеграция в n8n должна на основании параметров, которые должны легко изменяться (перечень параметров см. ниже), обеспечить синхронизацию таблицы по полям, т.е.:
  1. если добавился/изменился элемент в мастер-таблице, то добавить или удалить соответствующий элемент в related таблице;
  2. если удален элемент из master таблицы, то отметить соответствующий элемент в slave таблице как отсутствующий в Master.

Параметры, которые оператор должен легко поменять при клонировании джобы:
  1. ключ клиента для авторизации (сравниваем с таблицей в Airtable);
  2. ключ API в Notion для Master;
  3. ключ API в Ноуш для Slave;
  4. ID таблицы в Ноушн, мастер;
  5. ID таблицы в Ноушн, slave;
  6. boolean обновлять содержимое документа (да-нет);
  7. поле для отметки об отсутствии в Мастер-таблице;
  8. удалять ли элемент в slave если отсутствует в master;
  9. список полей, которые обновлять (по имени).
Джоба должна срабатывать по времени (раз в час, например).

Выход: синхронизированное обновление.

Таблицы могут быть не публичными (не shared to web) и доступ к элементам делать строго по API.

В slave есть атрибут связи relation (односторонний или двухсторонний).

Предполагаемая реализация:
  1. в мастер-таблице проверить все обновленные/добавленные элементы с прошлой даты синхронизации этих таблиц;
  2. обновить элементы в slave (добавить новые элементы, обновить содержимое старых) - если указано обновлять документ, взять содержимое из элемента таблицы (которая сам по себе документ) и положить в элемент таблицы в slave. Обновить поля slave, указанные для синхронизации;
  3. в таблицу биллинга (Airtable) добавить количество блоков, которые обновлены (количество блоков = сумма полей, которые обновляются, и сумма элементов в документе, которые обновляются).

Структура таблиц настроек и биллинга в Airtable:
  1. customers
    1. name — text
    2. active yes/no
    3. customer-keys — relation
    4. billing — relation)
  2. customer-keys
    1. key — text
    2. customers — relation
  3. billing
    1. RequestDateTime — datetime
    2. customers — relation
    3. Requests — number
Отзывы
Все супер! Мы получили рабочий сценарий в первые дни после новогодних каникул. Пока все праздновали, ребята работали.

Реализовано по ТЗ с учетом особенностей и ограничений n8n. Объяснили, как настраивать джобу при клонировании. Дали подробный фидбек по итогу работы с n8n.

Рекомендую!

1 год назад