Связку Тильды и amoCRM я настраиваю и на простых лендингах, и на сайтах с несколькими формами под разные продукты. Чаще всего вопрос после запуска звучит так: заявки приходят, но в сделке не те поля, не видно рекламной кампании или один клиент превратился в две сделки. Причина почти всегда одна: от штатной интеграции ждут того, чего она не делает. Ниже разбираю, что именно и в каком виде приходит в amoCRM из формы Тильды и что делать, если данные нужно разложить по своим полям сделки.
По теме статьи
Готовое решение
Подарочные сертификаты Тильда без процента с продаж
Покупатель оплачивает сертификат как обычный товар, получает код на почту и гасит его в корзине. Работает на вашем хостинге, без процента с продаж.
от30 000 ₽
Кастомный скрипт
Когда стандартных блоков не хватает
Доработка сайтов на Тильде: скрипты для корзины, промокоды, зоны доставки, интеграции с CRM и Telegram. Простой скрипт от 3 000
от3 000 ₽
Что приходит в amoCRM из формы Тильды
Штатный приёмщик AmoCRM создаёт сделку на этапе воронки и с ответственным, которые выбраны в его настройках. Название сделки это тема заявки. По умолчанию сделка называется Lead from Tilda, свою тему задают в настройках приёмщика.
В карточке сделки видно:
- когда добавлена сделка;
- контакт, если в форме были поля с названиями NAME, EMAIL и PHONE;
- страницу, с которой отправили форму, в поле REFERER;
- остальные поля формы под их именами, например TEXTAREA1.
Интерфейса сопоставления полей формы с полями amoCRM у штатной интеграции нет. Поля в amoCRM создаёт сама интеграция, и выбрать, что значение из формы должно лечь в ваше поле «Бюджет» или «Тариф», нельзя. Удалять поля, созданные интеграцией, тоже нельзя, это приведёт к ошибкам. Можно поменять только заголовок: например, TEXTAREA1 переименовать в «Комментарий клиента», и карточка станет понятной менеджеру.
Настройки приёмщика, которые меняют данные в сделке
Настроек у приёмщика немного, и каждая влияет на то, что увидит менеджер.
| Настройка | Что меняет | Когда включаю |
|---|---|---|
| Этап воронки и ответственный | Куда падает сделка и кто её получает | Всегда. Для разных форм создаю несколько приёмщиков |
| Тема заявки | Название сделки. В теме можно использовать свой текст, системные переменные и значения полей в формате {{name}} | Когда на сайте несколько форм и по названию сделки нужно понять, откуда она |
| Метод добавления сделок с поиском дублей | Заявка проходит поиск дублей, это функция самой amoCRM | Когда клиенты оставляют повторные заявки |
| Отправка куки | Вместе с заявкой уходят куки посетителя | Когда нужны UTM-метки |
| Передача заявки только после оплаты | В amoCRM уходят только оплаченные заявки | Когда форма или корзина принимает оплату и в CRM нужны только оплаченные заказы |
Разные воронки для разных форм штатно делаются только отдельными приёмщиками. Тема заявки с переменной, например {{tarif}}, где tarif это латинское имя переменной поля, даёт менеджеру тариф прямо в названии сделки, без открытия карточки.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
UTM-метки: где они лежат и как их достать
Отдельной настройки сбора UTM-меток в Тильде нет. Тильда хранит метки в cookie TILDAUTM: если посетитель пришёл по ссылке с меткой и вернулся не позже чем через 30 дней, метки лежат в этой куке. Если посетитель раньше на сайте не был, куки с заявкой не придут.
В amoCRM куки уходят, только если у приёмщика включена отправка куки. В каком виде они лягут в карточку сделки, справка Тильды не пишет. Поэтому после включения я отправляю тестовую заявку со страницы, открытой по ссылке с меткой, и смотрю карточку глазами.
При вебхуке формат описан точно. С включённой отправкой куки в данных заявки есть поле COOKIES, внутри него TILDAUTM, а метки разделены тремя вертикальными чертами и дополнительно закодированы. Вот так их разбираю в обработчике или в узле Code в n8n, когда тело запроса уже разобрано:
function parseTildaUtm(cookies) {
const match = (cookies || '').match(/TILDAUTM=([^;]+)/);
if (!match) return {};
return Object.fromEntries(
decodeURIComponent(match[1])
.split('|||')
.filter(Boolean)
.map((pair) => pair.split('='))
);
}
На выходе получается объект вида utm_source, utm_medium, utm_campaign, который дальше можно записать в поля сделки.
Как разложить данные по своим полям сделки
Если значения формы должны попасть в ваши поля amoCRM, штатный приёмщик не подходит. Нужен вебхук Тильды и обработчик: сценарий в n8n или свой скрипт, который пишет в amoCRM через API.
По документации amoCRM это выглядит так:
- Список полей сделки с их ID получаю запросом GET /api/v4/leads/custom_fields, поля контакта через GET /api/v4/contacts/custom_fields.
- Значения передаю в массиве custom_fields_values. Поле указывается через field_id или через символьный код field_code.
- У полей типа select, multiselect и radiobutton значение можно передать текстом, символьным кодом enum_code или ID варианта enum_id. ID вариантов видны в ответе запроса списка полей, в массиве enums.
- Телефон и email контакта это поля с кодами PHONE и EMAIL, у значения указываю enum_code, например WORK.
- Если сделка создаётся вместе с контактом методом POST /api/v4/leads/complex, для каждой сущности можно передать не больше 40 значений дополнительных полей.
Имена переменных полей в форме Тильды задаю до запуска: именно по ним обработчик находит значения в заявке. Без своих имён поля приходят с заглавной буквы, например Name, Phone, Email. Кроме полей формы в вебхуке есть tranid, номер заявки, и formid, номер блока, из которого её отправили. Номер заявки удобно писать в поле сделки, чтобы потом найти её в разделе «Заявки» Тильды.
Для B2B-форм с названием компании и ИНН штатная интеграция положит эти значения в сделку отдельными полями под именами из формы. Если нужна отдельная карточка компании в amoCRM, её создаёт обработчик: метод /api/v4/leads/complex добавляет к сделке один контакт и одну компанию, и новые контакт и компания связываются между собой. Менеджер видит в сделке и человека, и организацию, а не название фирмы в текстовом поле.
Как понять, из какой формы пришла заявка
На сайте часто две-три формы: короткая в шапке, подробная анкета, заказ в корзине. При штатной интеграции различаю их двумя способами: отдельный приёмщик на каждую форму со своей темой заявки или одна тема с переменными. При вебхуке проще: в каждой заявке есть поле formid, номер блока с формой, и обработчик по нему выбирает воронку и этап.
Такой обработчик под свои поля и воронки собираю в рамках доработки сайтов на Tilda.
Дубли и повторные заявки
В amoCRM контроль дублей настраивается отдельно для каждой воронки: выбираются источники заявок и параметры, по которым искать дубли. Со стороны Тильды за это отвечает метод добавления сделок с поиском дублей у приёмщика, поэтому при жалобе на повторные сделки проверяю обе стороны: галочку у приёмщика и настройки воронки в amoCRM.
При своём обработчике метод /api/v4/leads/complex сам данные не дедуплицирует. Он только ищет дубли среди уже добавленных данных, и то если контроль дублей включён для интеграции. Когда нужна своя логика, например привязать повторное обращение к открытой сделке, перед созданием ищу контакт по телефону через GET /api/v4/contacts с параметром query.
Ещё одна частая причина двух сделок из одной заявки: у формы отмечены сразу два приёмщика, штатный AmoCRM и Webhook, который тоже создаёт сделку. Первым делом при такой жалобе смотрю галочки приёмщиков в «Контенте» блока с формой.
Как проверить, что данные дошли
Перед сдачей связки прохожу короткий чек-лист:
- Отправить заявку со всеми полями формы, включая необязательные, и отдельно с телефона.
- Подождать 5-10 минут: при штатной интеграции заявка появляется в amoCRM не сразу.
- Проверить этап воронки, ответственного и тему сделки.
- Открыть карточку и сверить поля: контакт, REFERER, остальные поля формы.
- Отправить заявку со страницы, открытой по ссылке с UTM-меткой, и найти метки в сделке.
- Если заявки нет, проверить журнал ошибок форм в Тильде, а при связке через n8n открыть вкладку Executions и посмотреть, что пришло от Тильды до любых преобразований.
Если связку нужно поднять с нуля, со своими полями, воронками и проверкой дублей, это комплексная интеграция для Tilda, от 40 000 ₽. Точечная правка, например добавить в обработчик новое поле формы, стоит от 3 000 ₽.
Настройки приёмщика amoCRM в Тильде и API amoCRM меняются, поэтому перед запуском уточняю актуальные возможности в справке Тильды и документации amoCRM.
Частые вопросы
Можно ли в штатной интеграции выбрать, в какое поле сделки попадёт значение из формы?
Нет. Поля в amoCRM создаёт сама интеграция и называет их по именам полей формы. Менять у таких полей можно только заголовок. Чтобы значение попало в ваше поле сделки, нужен вебхук и обработчик, который пишет в amoCRM через API.
Почему в карточке сделки поле называется TEXTAREA1?
Так штатная интеграция передаёт поле формы под его именем. Поле можно переименовать в amoCRM, поменяв заголовок, а удалять нельзя: по справке Тильды это приведёт к ошибкам.
Приходят ли UTM-метки в amoCRM из Тильды?
Приходят в составе куки, если у приёмщика amoCRM включена отправка куки и посетитель пришёл по ссылке с меткой не раньше чем за 30 дней. Разложить метки по своим полям сделки штатно нельзя, для этого нужен вебхук: в поле COOKIES метки лежат в куке TILDAUTM.
Что делать, если одна заявка создаёт в amoCRM две сделки?
Сначала проверить, не отмечены ли у формы одновременно приёмщик AmoCRM и Webhook, который тоже создаёт сделку. Если приёмщик один, включить у него метод добавления сделок с поиском дублей и проверить настройки контроля дублей в воронке amoCRM.