Перейти к контенту
БОЛЬШИЕ·ПРОДАЖИ Пульт →
Все документы

amoCRM интеграция · Make → amoCRM напрямую

TL;DR. Сейчас текущий bp.karada.kz — Tilda + amoCRM через Tilda Form Services (service-id 34b8... + 7e32...). Мы переезжаем на свою воронку и хотим подключиться к amoCRM Карада напрямую через Make.com webhook, а не через Tilda. Этот документ — почему так правильно, что для этого нужно, и как выглядит итоговый поток.


⭐ Реализация — сайт → Make → amoCRM (актуально)

Сайт x5.karada.kz уже отправляет лиды. Источник правды по коду — src/conversion/.

Три оси — не путать «воронку» с «оффером»

ОсьПоле payloadЗначения
Лендингvariant_idhome · vsl · guide · exclusive · kg-*
Формаfunnel_mechanismquick-lead · registration · info-gather · qualification · application · lead-magnet
Офферtiervip · exclusive · lead_magnet · (standard — даунселл, без лендинга)

Раскладка офферов:

Оффер (tier)ЛендингиФорма
lead_magnet/guidelead-magnet
vip/ · /vslquick-lead / registration
exclusive/exclusiveapplication
standard— только tier_interest в форме регистрации + даунселл

Поток

Сайт собирает ОДИН JSON (buildLeadPayload) и делает один POST на Make-вебхук (src/config/integration.ts). Make разветвляет через Router:

ConversionForm → Make webhook → Router ─┬→ Google Sheet (сырьё, append)
                                        ├→ Slack (алерт)
                                        ├→ FlowLeads (HTTP)
                                        └→ amoCRM (HTTP → API v4)

Две формы payload’а на ОДИН вебхук: обычный лид и апсейл с /thank-you (event_type: "upsell_click"). Make ветвится по event_type.

Срезы — что в какую ветку Make

Сайт шлёт ОДИН полный payload — его не урезаем. Стримлайн — на каждой ветке Make:

ВеткаЧто берём
📊 Google SheetВСЁ — сырой лог, append, каждое поле в свою колонку (бэкап + аналитика)
💬 Slack1 строка: имя · телефон · tier · country · utm_source/utm_campaign
🟦 amoCRMсрез: контакт + tier · tier_interest · country · lead_score · utm_* · fbclid/gclid/yclid · submission_id; answers → в примечание

В amoCRM не тащим: session_id, form_id, funnel_step_reached, experiment_id, referrer, touch, landing_path/page_path, utm_term/content, весь meta — это только для Sheet.

amoCRM — через HTTP-модуль

Нативный коннектор Make «Kommo» принимает только домены *.kommo.com — для аккаунта *.amocrm.ru не подходит. Используем HTTP-модуль + API v4:

HTTP → Make a request
URL:    https://yusup.amocrm.ru/api/v4/leads/complex
Method: POST
Header: Authorization: Bearer {долгосрочный токен приватной интеграции}
Body:   [ { "name": "...", "pipeline_id": 9111838,
             "_embedded": { "contacts": [ { "name", "custom_fields_values":[PHONE] } ] } } ]

pipeline_id: 9111838 — воронка «Большие Продажи».

Атрибуты — что маппить

ГруппаПоляВ amoCRM
Конвертsubmission_id (ключ дедупа), submitted_at, tier, country, funnel_mechanism
lead{}name, phone, email, tier_interest, lead_score, qualified✅ контакт + сделка
answers{}role, niche, goal, budget, urgency… (зависит от формы)◽ в примечание
attribution{}variant_id, utm_*, gclid/fbclid/yclid✅ кастомные поля
Игнор для CRMexperiment_id (константа), meta.*, form_id, referrer, touch❌ только Sheet

tiertier_interest: tier — оффер лендинга, tier_interest — что юзер выбрал в форме. Дубли tier/country на верхнем уровне и в attribution — намеренно, для роутинга Make.

Тест

bun run scripts/test-lead-flow.ts — шлёт по payload’у на каждый сценарий (lead-magnet · home · vsl · exclusive · upsell). Тест-лиды помечены utm_campaign=INTERNAL_TEST и именем «ТЕСТ — …» — фильтруются и удаляются легко. --dry печатает payload’ы без отправки.

Исправленные рассинхроны

  • / (home) теперь tier=vip — страница продаёт групповой VIP-оффер.
  • /cohort (Cardone-вариант) удалён — VIP-воронки оставлены только / и /vsl.

Зачем нам прямая интеграция (чек-лист для созвона с клиентом)

🔴 Что мы теряем, если оставляем как есть (через Tilda)

Если оставить старую Tilda-форму и просто запретить рекламу вести на новый сайт — мы возвращаемся к воронке 2024 года. Никакого смысла строить новую архитектуру.

Если наша новая форма пишет в Tilda Form Service (даже если бы это было технически возможно):

  • UTM теряются. Tilda не передаёт utm_source/medium/campaign/content/term в amoCRM. Менеджер видит «лид» без понимания «откуда»
  • fbclid теряется — без него Conversion API не работает, реклама в Meta оптимизируется вслепую
  • Tier не передаётся как структурное поле. Tilda знает только «Стандарт / VIP / EXCLUSIVE» как имя формы; в amoCRM это уходит как formname
  • Lead score (для Exclusive) не передаётся. Менеджер не видит «квалифи­цирован» / «не квалифицирован»
  • Lead time (от перехода до submit) не передаётся. Не можем считать «горячие» vs «холодные» лиды
  • Variant (A/B) не передаётся. Никаких выводов «какой лендинг работает»
  • One-click upsell не работает. Tilda не знает про наши event_type: upsell_click события — каждый апсейл придётся менеджеру разбирать руками

🟢 Что даёт прямая интеграция Make → amoCRM

ЧтоЗачем менеджеру / маркетологу
Полные UTM в каждой сделке amoCRMВидит «Facebook · cold · /vsl · ad-объявление-обработка-возражений» — сразу знает контекст разговора
fbclid и Conversion APIРеклама в Meta оптимизируется на реальные продажи, а не на «клики». ROAS в 2-3 раза выше
Tier как отдельное полеМожно сегментировать pipeline: Стандарт → один менеджер, Exclusive → другой
Lead score + qualifiedТоп-лиды Exclusive вверху списка, а не вперемешку
Туда же — апсейл-события«Иван оставил Стандарт, а на /thank-you ткнул VIP» — менеджер звонит уже с VIP-предложением
Country (KZ / KG)Маршрутизация на нужного менеджера. KZ-менеджер не звонит в KG в +6 часовой пояс
Variant + funnel_mechanismОтчёт «какой лендинг и какой формат собирает больше платежей»
First/return-touchВозвращающийся посетитель = горячий, менеджер видит сразу
Honeypot result + cooldownБоты не доходят до менеджера — экономия времени, чистый pipeline

Главное обоснование одной строкой: Tilda даёт «лид пришёл». Мы даём «вот лид с такой-то рекламы, такой-то теплоты, такой-то страны, готов на VIP — звони ему первым». Это разница в 30-50% к конверсии менеджерского звонка.

🟡 Что НЕ меняется для клиента (не нужно тратить нервы)

  • amoCRM остаётся прежней — мы вписываемся в существующий pipeline
  • Менеджеры работают как привыкли — звонят по тем же скриптам
  • Tilda-форма продолжает работать параллельно (если есть органический трафик на bp.karada.kz) — мы не выключаем её, наша форма пишет рядом
  • Доступ к amoCRM остаётся у клиента — мы не создаём свой инстанс, а подключаемся к их аккаунту по их правам

Что мы просим у тех-специалиста Карада

Один созвон ~30 минут. Три вопроса — три ответа — и мы строим.

Вариант A · amoCRM Webhook (рекомендую)

Самый простой путь. amoCRM умеет принимать любой POST в виде «сделка».

От тех-спеца:

  1. amoCRM → НастройкиИнтеграцииВходящий вебхук
  2. Создать вебхук на событие «Добавлена новая сделка»
  3. Прислать нам:
    • URL вебхука (формат https://{subdomain}.amocrm.ru/...)
    • Скрин/документ какие поля он принимает по умолчанию
  4. (Опционально) Создать кастомные поля для UTM/tier/country — нам это нужно для отчётов, но без них вебхук всё-равно работает

Что мы делаем:

  • Один HTTP-модуль в нашем Make сценарии → отправляет тот же payload, что идёт в Sheet/Slack
  • За 1 час подключаем и тестируем

Вариант B · amoCRM API (если нужна тонкая настройка)

Если хочется заранее распихать поля по конкретным колонкам amoCRM, выбрать pipeline/status, добавить теги — лучше API.

От тех-спеца:

  1. Long-lived access token из интеграции amoCRM
  2. Subdomain ({name}.amocrm.ru)
  3. Pipeline ID — какая воронка принимает новых лидов
  4. Status ID — какой статус «новый лид»
  5. Custom field IDs — для UTM, tier, country (создать в amoCRM если их нет)

Что мы делаем:

  • HTTP-модуль с Bearer токеном → POST https://{subdomain}.amocrm.ru/api/v4/leads
  • Мапим наш payload на конкретные field_id в amoCRM
  • За 2-3 часа подключаем + тестируем

Карта данных — что именно мы шлём в amoCRM

Этот блок — для тех-спеца: «какие поля вы хотите видеть в моей amoCRM».

Контактные данные (стандартные поля amoCRM)

Наш payloadamoCRM поле
lead.nameИмя контакта
lead.phoneТелефон (формат +7... или +996...)
lead.emailEmail

Деловая информация (кастомные поля)

Наш payloadamoCRM поле / тег
tierTag или поле Тариф: standard · vip · exclusive · lead_magnet
countryTag или поле Страна: KZ · KG
lead.qualifiedПоле Квалифицирован (bool) — только для application mechanism
lead.lead_scoreЧисловое поле Скор — от 0 до ~20 для application
lead.tier_interestПоле Желаемый тариф (что выбрал в форме регистрации)

Реклама и атрибуция (новое для amoCRM)

Наш payloadamoCRM поле
attribution.utm_sourceUTM Source
attribution.utm_mediumUTM Medium
attribution.utm_campaignUTM Campaign
attribution.utm_contentUTM Content (id креатива)
attribution.utm_termUTM Term (id ад-сета)
attribution.fbclidMeta Click ID (нужен для Conversion API)
attribution.landing_pathТочка входа (/, /vsl, /exclusive…)
attribution.touchКасание (first-touch / second-touch)
attribution.referrerReferrer

Техническое (для отладки)

Наш payloadamoCRM поле
submission_idUUID — для дедупликации
session_idUUID сессии
submitted_atВремя заявки (KZ timezone после Make форматирования)
funnel_mechanismКакой механик использовался
meta.user_agentБраузер
meta.screenMobile vs Desktop

Минимум для старта: имя + телефон + email + tier + utm_source + utm_campaign. Всё остальное — будет в payload автоматически, можно подключать по мере того как тех-спец создаёт поля.

Особый случай · Upsell события

Когда лид кликает «Да, добавить VIP» на /thank-you, мы шлём отдельный POST с event_type: "upsell_click". Содержит original_submission_id — указывает на исходную сделку.

В amoCRM это может быть:

Вариант 1 · Новая сделка с тегом (проще для менеджера)

  • В amoCRM появляется отдельная сделка в pipeline «Апсейл» с тегом upsell_from_lead_{uuid}
  • Менеджер видит как отдельную горячую задачу: «Иван хочет апгрейд VIP»

Вариант 2 · Обновление существующей сделки (чище для отчётов)

  • Make делает GET на amoCRM API: «найди сделку с submission_id = X»
  • Поднимает её этап на «Готов к апсейлу»
  • Менеджер видит в той же карточке: лид стал тёплее

→ Какой выбрать — решает менеджер по продажам. Спросите на созвоне.

Что в Tilda сейчас НЕ передаётся (а мы будем)

ПолеTilda передаёт?Make → amoCRM
Имя · телефон · email
Тариф⚠️ как formname✅ нативно tier
Сфера бизнеса✅ через answers.niche
Город✅ через answers.city
UTM × 5 (source/medium/campaign/content/term)✅ все 5
fbclid · gclid · yclid
Лендинг (path)
Tier как структурное поле
Lead score · qualified
First / return-touch
Variant (A/B)
Device type
Upsell события отдельным потоком
Honeypot / cooldown отметки✅ — боты не доходят

→ С нашей интеграцией amoCRM становится в 5-10 раз информативнее на каждый лид. Менеджер видит контекст за 5 секунд вместо 5 минут расспросов.

Диаграмма потока (когда подключим)

        ┌─────────────────────┐
        │  Лид заполнил нашу  │
        │      форму          │
        └──────────┬──────────┘
                   │ POST JSON

         ┌───────────────────┐
         │  Make.com webhook │
         │ (один URL, JSON)  │
         └────────┬──────────┘
                  │ fan-out (параллельно, не блокируется)
       ┌──────────┼──────────┬───────────┬──────────┐
       ▼          ▼          ▼           ▼          ▼
   ┌────────┐ ┌──────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐
   │ Google │ │Slack │ │FlowLeads │ │ amoCRM  │ │ Meta CAPI│
   │ Sheet  │ │alert │ │platform  │ │ ⬅ NEW   │ │ ⬅ NEW    │
   │append  │ │msg   │ │relay     │ │ webhook │ │POST event│
   └────────┘ └──────┘ └──────────┘ └────┬────┘ └──────────┘


                                ┌─────────────────┐
                                │ Существующая    │
                                │ pipeline + tags │
                                │ Менеджер видит  │
                                │ + UTM + tier +  │
                                │ score + т.д.    │
                                └─────────────────┘

Что от клиента списком на встречу

  • Доступ amoCRM (вариант A — webhook) или API-token (вариант B)
  • Подтверждение: Pipeline + Status, куда падают сделки
  • Имя тех-спеца с правами — нам нужен 1 человек на связи
  • Как обрабатывать upsell-события — новая сделка или апдейт существующей
  • Готов ли тех-спец принять тестовый submit на тестовые данные (имя QA Тест, телефон +7 700 000 0000) и удалить запись после проверки

Альтернатива на случай задержки

Если тех-спец недоступен на 1-2 недели — можно запустить рекламу без amoCRM:

  • Лиды попадают в Google Sheet + Slack (уже работает)
  • Менеджер Карада копирует горячие в amoCRM вручную
  • НЕ долгосрочное решение — атрибуция в amoCRM не появляется, но рекламу можно крутить

→ Этот режим работает прямо сейчас. amoCRM можно подключить в любой момент без редеплоя сайта — добавляется один модуль в Make.