Перейти к содержанию

Set/Edit Fields в n8n: нормализация данных без потери полей

Обновлено: 2026-05-29

Открыть мой план

Edit Fields, раньше Set node, — одна из самых полезных нод в n8n. Она приводит входящие данные к удобному виду: создаёт новые поля, переименовывает старые, собирает payload для API, удаляет мусор и готовит единый формат для CRM, таблицы или AI Agent. Хорошо настроенный Set/Edit Fields делает workflow понятным: после него видно, какие поля считаются «рабочим контрактом» данных.

Главный риск

Не включайте удаление лишних полей без причины. Частая ошибка — оставить только новые поля, а потом потерять исходный webhook payload, UTM-метки, ID заказа или служебные поля, которые понадобятся дальше.

Когда нужна эта нода

ЗадачаПример поляЗачем
нормализовать контактcontact_keyдедупликация CRM
подготовить payloadcrm_payloadчистый JSON для HTTP Request
сохранить источникsource_systemаудит и аналитика
привести статусnormalized_statusусловия IF/Switch
добавить времяreceived_atразбор дублей и задержек

Рабочий контракт данных

Перед внешними API удобно собирать единый объект. Например, заявка из Tilda, VK и Telegram может приходить в разном формате, но дальше CRM должна получить один контракт:

{
  "contact_key": "79990000000",
  "name": "Иван Петров",
  "phone": "+79990000000",
  "email": "ivan@example.ru",
  "source": "tilda",
  "utm_source": "yandex",
  "received_at": "2026-05-29T09:00:00+03:00"
}

Такой объект легче проверять, логировать и передавать в Битрикс24, amoCRM, Google Sheets или Postgres.

Нормализация phone и email

Телефон лучше приводить к стабильному виду до поиска дублей. Сырые значения +7 999 000-00-00, 89990000000 и 7 (999) 000 00 00 должны стать одним ключом. Email приводите к нижнему регистру и убирайте пробелы.

{{ ($json.phone || '').replace(/\D/g, '').replace(/^8/, '7') }}
{{ ($json.email || '').trim().toLowerCase() }}

Если телефон пустой, не делайте из него строку undefined. Лучше явно оставить пустую строку или null, а затем IF отправит такую заявку на ручную проверку.

Keep Only Set: когда включать

Опция, которая оставляет только заданные поля, полезна перед отправкой данных во внешний API: вы контролируете, что именно уйдёт наружу. Но в середине workflow она может повредить. Если позже нужна исходная строка, вложение, binary file, UTM или сырой webhook, сначала сохраните их в отдельном поле, например raw_payload.

Set/Edit Fields перед HTTP Request

Лучше не собирать большой body прямо внутри HTTP Request. Сначала создайте объект api_body в Set/Edit Fields, затем в HTTP Request передайте его как JSON. Так проще отлаживать: если API вернул 400, вы открываете вход HTTP Request и сразу видите точный body.

{
  "fields": {
    "TITLE": "Заявка с сайта",
    "NAME": "{{$json.name}}",
    "PHONE": [{"VALUE": "{{$json.phone}}", "VALUE_TYPE": "WORK"}],
    "SOURCE_ID": "WEB"
  }
}

Set/Edit Fields для AI Agent

Перед AI Agent полезно собрать отдельное поле user_prompt и отдельное поле context. Не передавайте модели весь сырой payload, если там есть токены, внутренние ID или персональные данные, которые не нужны для задачи. Чем чище вход, тем стабильнее ответ и ниже стоимость запроса.

Типовые ошибки

СимптомПричинаИсправление
дальше пропали полявключили Keep Only Setвыключить или сохранить нужные поля заранее
API получает строку вместо объектаJSON собран как текстпроверить режим выражения и тип поля
дубли в CRM не находятсяphone/email не нормализованысоздать contact_key
IF не видит статусполе называется иначе в разных источникахсоздать единое normalized_status
AI отвечает нестабильнов модель отправляется весь сырой payloadсобрать короткий prompt и нужный context

Практический контекст для внедрения

Эта страница полезна не как абстрактная справка, а как рабочая инструкция под использование ноды/паттерна «Set/Edit Fields в n8n: нормализация данных без потери полей» в рабочем workflow, где важно понимать входные items и формат результата. Перед изменением workflow зафиксируйте источник события: входные данные по теме set edit fields: webhook, schedule, ручной запуск или событие внешнего сервиса. Так проще отделить ошибку данных от ошибки настройки n8n и не превратить исправление в набор случайных правок.

Минимальная проверка перед публикацией workflow: один happy path, один пустой payload, один повтор события и одна ошибка внешнего сервиса. Для мониторинга используйте successful executions, skipped items, retry count, error branch usage; эти показатели быстро покажут, что сценарий работает иначе, чем ожидалось.

Связанные материалы