GetCourse – Как загружать клиентов через Webhook
Чтобы система работала, необходимо, чтобы Telegram ID каждого пользователя сохранялся в дополнительное поле в GetCourse.
В момент создания заказа срабатывает автоматизация, и данные передаются в Vortex через вебхук. После этого вы получаете доступ к сквозной аналитике — от источника трафика до конечной продажи.
Для проектов, где воронки в Telegram построены на стандартном конструкторе GetCourse, передача данных возможна через GET-запросы прямо из системы.
Важно!
GetCourse по умолчанию не сохраняет Telegram ID. Чтобы настроить интеграцию, сначала нужно научить систему автоматически записывать этот идентификатор в дополнительное поле пользователя. Только после этого можно создавать процесс и передавать данные в Vortex через вебхук.
Без этого шага интеграция работать не будет.
Этап 1. Сохранение Telegram ID в дополнительное поле GetCourse
Существует несколько способов сохранения Telegram ID в дополнительном поле — выбор зависит от вашей воронки и используемых инструментов. Ниже приведены основные рабочие варианты:
Вариант 1: плагин Telegram User Data от GetCourse
Если ваша воронка в Telegram собрана в GetCourse, вы можете «вытащить» telegram_id прямо из системы.
Недавно появилась официальное расширение от GetCourse, которое позволяет автоматически сохранять user_id и username в дополнительные поля. Это удобное и проверенное решение стоит всего 500 рублей в месяц. 
Вариант 2: сайт упакован в MiniApp
Если вы используете наше более продвинутое решение с проксированием ссылок через MiniApp, то нужно действовать несколько иначе:
1. При настройках прокси-ссылки (MiniApp) необходимо указать передачу сервисных UTM-меток. Метка telegram_id по умолчанию включается при установке соответствующей галочки — её значение будет подставляться динамически. Кроме telegram_id, в UTM-метках можно передавать и другие служебные параметры: username, ФИО пользователя, наличие Telegram Premium. Если в вашей системе уже используется поле для сбора Telegram ID (например, tg_id, telegram, user_id и другие), просто укажите его название в соответствующее поле.
2. Далее необходимо записать telegram_id из UTM-метки в дополнительное поле GetCourse. Для большинства технических специалистов эта задача является стандартной и несложной. Во многих образовательных проектах уже используется скрипт, автоматически сохраняющий UTM-метки в дополнительные поля клиента.
Как настроить передачу Telegram ID в доп. поле GetCourse
Как настроить передачу Telegram ID в доп. поле GetCourse:
Для начала нужно создать дополнительное поле у пользователя.
Переходим в Ученики ➡️ Пользователи ➡️ Дополнительные поля
Далее добавляем доп. поле:
• Тип – число
• Заголовок – telegram_id
Сохраняем.
Далее добавляем поле в форму на лендинге.
Переходим в раздел Сайт ➡️ Страницы. В настройках формы добавляем «Поле пользователя». Обязательно указываем CSS класс элемента:
• telegram_id
• hidden – скрываем поле
Добавляем блок «HTML». В него вставляем код:
<script>
function getParam(name) {
const params = new URLSearchParams(window.location.search);
return params.get(name) || '';
}
document.addEventListener('DOMContentLoaded', function () {
const telegramId = getParam('telegram_id');
const wrappers = document.querySelectorAll('.telegram_id');
wrappers.forEach(function (wrapper) {
const input = wrapper.querySelector('input');
if (input) input.value = telegramId;
});
});
</script>
Сохраняем и опубликовываем страницу.
Далее нам необходимо обернуть наш сайт в мини-приложение.
Как работать с прокси-ссылками показано в этой статье.
Чтобы использовать продвинутые функции прокси-ссылок, помимо передачи telegram_id в дополнительное поле, необходимо установить в HEAD вашего сайта уникальный скрипт от Vortex!
<script type="text/javascript" src="https://app.vortex.pro/static/webapp_integration.js"></script>
Подробнее ос том, где найти —и как установить скрипт на свой сайт, в этой статье.
Т
Итак, теперь при заполнении формы Telegram ID пользователя будет автоматически записываться в дополнительное поле.
Вариант 3: связка GetCourse и Salebot
Вы также можете передать telegram_id в дополнительное поле через лендинг на GetCourse — по аналогии со способом, реализованным через мини-приложение.
Для этого в GetCourse создайте дополнительное поле у пользователя (см. инструкцию «Вариант 1»). Затем в форму на лендинге добавьте «Поле пользователя», укажите CSS класс элемента (telegram_id и hidden) и вставьте в блок «HTML» следующий код:
<script>
function getParam(name) {
const params = new URLSearchParams(window.location.search);
return params.get(name) || '';
}
document.addEventListener('DOMContentLoaded', function () {
const telegramId = getParam('telegram_id');
const telegramWrappers = document.querySelectorAll('.telegram_id');
telegramWrappers.forEach(function (wrapper) {
const input = wrapper.querySelector('input');
if (input) {
input.value = telegramId;
}
});
});
</script>
Сохраните и опубликуйте страницу.
Теперь, чтобы значение telegram_id записалось в дополнительное поле, необходимо выдать пользователю через бота ссылку типа https://[ваш_аккаунт].getcourse.ru/[ссылка_на_лендинг]?telegram_id=#{platform_id} или https://[ваш_домен]/[ссылка_на_лендинг]?telegram_id=#{platform_id}
Вариант 4: связка BotHelp и GetCourse
Материал находится на редакции.
Важно отметить, что передача telegram_id через мини-приложение (вариант 2) — наиболее надёжный способ. При его использовании telegram_id фиксируется в GetCourse у 100% пользователей, оставивших заявку.
В сравнении с этим, остальные способы сопряжены с потерями: от 20% до 40% пользователей не переходят в Telegram-бота со страницы благодарности после регистрации на бесплатный продукт, и их telegram_id в систему не попадает.
Этап 2. Передача заказа в Vortex
ОПосле тправка и пример корректного GETкак звы напстроили сохра из GetCourse в Vortex.
1. Получнение telegram_id в дополнительном поле пользователя в GetCourse, следующий шаг — передача данных о посылтупающих заказах в Vortex. Это необходимо для построения сквозной аналитики: отп источника травфикиа GETдо законечной продажи.
Передача осуществляется через процесс, созданный в конструкторе GetCourse, с использованием вебхука.
Что нужно для передачи данных в Vortex через вебхук?
1. Убедиться, что telegram_id сохраняе.тся в дополнительном поле пользователя
Ключ2. Создать группу конверсий в Vortex и выбрать веб-хука можно скопировать прямо в качестверв исе.точника
ГКак в Vortex создать группу конверсий
Подробнее но группайтих ключонверсий вы можеб-хукте прочитать в этой статье.
1. Перейдите в Продажи ➡️ Управление конверсиями. Укажите название группы и нажмите «Создать»
2. Создайте новую группу и дДобавьте веб-хук в качестве источника, нажав на плюсзначок «+» в столбце «Действия». Укажите название связки и нажмите «Добавить».
3. СПеред вами откроется окно настройки вебхука. Здесь вы можете скопировать или перегенерировать ключ, а также уйказать название и сумму покупки по умолчанию. Если при передаче заказа не будут переданы название и сумма, в Vortex автоматически подставятся значения по умолчанию. Таким образом, приоритет всегда отдается данным, переданным через вебхук.
3. Получить ссылку для отправки вебхука
Как правильно составить ссылку для отправки данных по заказу через вебхук
Ссылка для отправки вебхука состоит из ключа вебхука и переменных, в которых передаются данные заказа.
Пример ссылки, в которой передаются Telegram ID пользователя, стоимость и название заказа:
https://proxy.vortex.pro/webhooks/sale?key=a1234b5c6789012d34e56789f01g2345?telegram_id={object.user.telegram_id}&purchase_prise={object.cost_money_value}&purchase_name={object.positions}

1. Ключ веб-хука
для запроса с необходимым ключом копируется напрямую из нашего сервиса — вносить в неё изменения не требуется. При успешном копировании у вас всплывёт уведомление «Ключ веб-хука скопирован».
Д2. Переменные. Так как мы передаем в Vortex данные заказа, то и процесс нужно выстраивать по заказам. При этом в процессах по заказам используются переменные по:
- заказу,
- пользователю, которому принадлежит заказ.
Чтобы использовать переменные по заказу, нужно добавить к ним приставку object. Таким образом мы можем передать состав заказа (название предложения), его стоимость, дату создания/оплаты, UTM-метки.
Пример: {object.cost_money_value} — стоимость заказа.
Чтобы в процессе по заказу использовать переменные по пользователю, нужно добавить приставки object и user. Так как мы записываем telegram_id в дополнительное поле пользователя, то и используем переменную по пользователю. Пример: {object.user.telegram_id}
Важно!
Если вы используете собственное обозначение для Telegram ID (например, chat_id, tg_id и т.п.), убедитесь, что именно это значение передаётся в переменной.
Критически важно, чтобы название дополнительного поля в GetCourse, UTM-метка с Telegram_ID перешедшего в Vortex (при использовании MiniApp) и переменная в ссылке были полностью идентичны.
Это обязательный параметр запроса — без него сервис не сможет корректно добавить конверсию.
Список всех переменных вы можете найти по этой ссылке.
Подробные инструкции:
- Как настроить веб
-хука из GetCourseвVORTEXGetCourse - Как правильно использовать переменные в процессе
4. Настроить процесс передачи данных по заказу в Vortex
Теперь, когда мы получили ссылку для передачи данных, нужно создать процесс побходи заказамо в GetCourse.
Как в GetCourse создать процесс. передачи данных в Vortex
Процессы можетв GetCourse бывають как по заказам, так и по пользователям. ИсНам необходяим из типа робъцекта,сс по заказам.
1. Перейдеменные в раздел «CRM» ➡️ «Процессылке будут отличаться».
2. Создадим новый процесс с типом объекта «Заказы».
3. В настройках выберите пункт «Периодическая проверка» и укажите правило вхождения объекта — то есть конкретное предложение или тип заказа, который нужно передавать в Vortex. В нашем примере — это бесплатный тестовый заказ.
На этом этапе вы также можете задать дополнительные параметры заказа: его статус (оплачен/не оплачен), дату создания и другие необходимые данные.
4. Сохраняем и переходим во вкладку «Процесс». Добавляем блок «Операция» ➡️ «Заказ» ➡️ «Вызвать url».
5. Здесь мы используем GET-запрос и в поле «URL» вставляем ту ссылку, которую мы получили на предыдущем этапе. Сохраняем.
6. Добавляем блок «Завершение процесса» и соединяем.
7. Наш процесс готов. Осталось его протестировать и запустить.
Как проверить успешность отправки вебхука на сервис
Вы можете сохранить ответ от сервера в дополнительное поле GetCourse. Для этого создайте дополнительное поле заказа, а при добавлении блока «Вызов URL» в процессе укажите это поле в параметре «Записать результат в доп. поле».
После успешной отправки вебхука вы получите ответ от сервера в следующем формате:
| { "detail": "Successfully added sale", "data": { "telegram_id": 12321312, "first_name": null, "last_name": null, "username": null, "has_premium": null, "register_date": null, "joined_at": null, "left_at": null, "purchased_at": "2025-07-02T08:45:48", "purchase_name": null, "purchase_price": null, "seconds_until_purchase": null, "time_until_purchase_humanreadable": null, "source": { "is_tgads": false, "name": "Не найдены в базе" }, "audience": null, "creative": null, "is_bot": null }, "utm_tags": { "utm_source": "test", "utm_medium": "test", "utm_campaign": "test", "utm_content": "test", "utm_term": "test" } } |
Обратите внимание: приведённый ответ — это пример структуры данных. В реальном запросе значения будут уникальными: telegram_id, имя, username, UTM-метки и другая информация зависят от конкретного пользователям:
Ии исптользуетсячника перехода. Некоторые поля могут быть пустыми, если данные недоступны или не переданы.
Ответ от сервера состоит из двух основных частей:
detail— статус обработки вебхука. Указывает, была ли отправка успешной или произошла ошибка.data— подробная информация о добавленной конверсии, включая данные о клиенте.
Информативную часть ответа можно отключить с помощью указания параметра запроса:objectdataresponse_with_data=false
В этом случае вы получите только поле detail с подтверждением статуса, без дополнительных данных.
Пример ссылки:
https://proxy.vortex.pro/webhooks/sale?key=a1234b5c6789012d34e56789f01g2345?telegram_id={object.telegram_ID}&purchase_prise=1234&purchase_name=тест
Если процесс по заказам:
Используется переменная object.user
Пример ссылки: https://proxy.vortex.pro/webhooks/sale?key=a1234b5c6789012d34e56789f01g2345?telegram_id={object.user.telegram_ID}telegram_id}&purchase_prise={object.cost_money_value}&purchase_name={object.positions}&response_with_data=false
После проверки перед запуском процесса отключите сохранение ответа от сервера в дополнительное поле GetCourse. Это может мешать реальной обработке запроса.
Описание параметров, которые можно передать в ссылке:
| Особенность | Параметр | Описание |
| *обязательный | telegram_id |
integer (целое число), Telegram ID покупателя |
| *обязательный | username |
string (строка) , Telegram Username покупателя |
|
Для отправки вебхука необходимо указать либо Если вы передаёте |
||
| /опциональное | purchase_price |
float (число), цена конверсии |
| /опциональное | purchase_name |
string (строка), название конверсии |
| /опциональное | purchased_at |
Можно не указывать. В этом случае подставится время отправки webhook. datetime (дата и время), время совершения конверсии. Если отсутствует — подставится дата отправки настоящего запроса. |
| /опциональное |
|
string (строка), значения UTM-меток
Можно передать как одну из UTM-меток, так и все сразу. Каждая из них будет привязана к соответствующей конверсии и отправлена вместе с ней. Важно: названия UTM-меток должны точно соответствовать установленным стандартам — любое отклонение может привести к некорректному сбору данных.
Пример объекта
Для того, чтобы передать эти значения, нужно использовать специальные переменные. Они зависят от типа объекта.
В процессах по пользователям переменные имеют следующий формат:
В процессах по заказам и покупкам используется дополнительная приставка
Для передачи UTM-меток используются следующие переменные:
Более подробная информация: https://getcourse.ru/blog/275857 |
Пример ссылки для передачи GET запроса с данными о КОНВЕРСИИ из процесса GetCource, в которой передаётся Telegram ID, цена и название конверсии:
https://app.vortex.pro/api/sales/auto-collectors/webhook/add-sale?key=API_KEY&telegram_id={object.user.TG_ID}&purchase_name={object.positions}&purchase_price={object.cost_money_value}
Обратите внимание:1. Ссылка для запроса с необходимым ключом копируется напрямую из нашего сервиса — вносить в неё изменения не требуется. API_KEY — это уникальный ключ, сгенерированный Vortex.2. &telegram_id={object.user.TG_ID}Вместо TG_ID подставьте название переменной (по умолчанию telegram_id), которую вы указали в дополнительном поле заказа для передачи telegram_id. Это обязательный параметр запроса — без него сервис не сможет корректно добавить конверсию.3. &purchase_name={object.positions}positions — стандартное поле в GetCourse, содержащее название конверсии. Этот параметр является необязательным. Если вы не планируете передавать наименование конверсии, просто удалите его из запроса.4. &purchase_price={object.cost_money_value}cost_money_value — стандартное поле в GetCourse, в котором указывается сумма, оплаченная клиентом в рамках конверсии. Этот параметр является необязательным. Если передача суммы не требуется, вы можете удалить его из запроса.
2. Отправка GET запроса из GetCourse в VORTEX через процесс.
Подробная инструкция как отправлять запросы содержится в документации GetCourse.
Процесс может быть по пользователям или по заказам. Сделаем на примере заказа.
Для начала создадим процесс. Перейдем в раздел CRM ➡️ Процессы.
Создадим новый процесс с типом объекта «Заказы».
В настройках выбираем пункт «Периодическая проверка» и указываем правило вхождения объекта — тот заказ, который мы хотим передать в Vortex. В нашем примере это бесплатный тестовый заказ.
Сохраняем и переходим во вкладку «Процесс». Добавляем блок «Операция» ➡️ «Заказ» ➡️ «Вызвать url».
Здесь мы используем GET запрос. Вставляем нашу ссылку, которую мы получили в первом пункте, в поле «URL» и сохраняем.
Как проверить успешность отправки вебхука на сервис:
Вы можете указать переменную, в которую будет сохраняться ответ от сервиса после попытки отправки вебхука. Затем достаточно проверить значение, записанное в этой переменной.
После успешной отправки вебхука вы получите следующий ответ:
Ответ состоит в основном из двух частей:
detail — статус отправки вебхука. Указывает, была ли отправка успешной или произошла ошибка.data — информация о добавленной конверсии, а также данные о клиенте, связанном с этой конверсией.
Информативную часть ответа data можно отключить с помощью указания параметра запроса:
В этом случае вы получите только информацию detail со статусом.
Видео-объяснение с примером:
Типовые ошибки при передаче данных через вебхук
1. Некорректное название дополнительного поля в GetCourse
В параметрах вебхука указано имя поля с ошибками — например, содержатся пробелы, точки или другие недопустимые символы. Убедитесь, что имя поля соответствует формату, ожидаемому системой (латиница, без пробелов и специальных символов).
2. Передача тестовой конверсии без обязательных идентификаторов
Попытка отправить тестовую конверсию без указания telegram_id или username. Для корректной обработки необходимо передавать хотя бы один из этих идентификаторов.
3. Сохранение ответа вебхука в переменную во время отладки
При локальной отладке некоторые разработчики сохраняют ответ вебхука в переменную, что может мешать реальной обработке запроса. Убедитесь, что вебхук корректно отправляется на сервер, а не «заглушается» в коде.
4. Несоответствие типа переменной в GetCourse
GetCourse может некорректно интерпретировать данные, если тип поля (текстовое/числовое) не совпадает с передаваемым значением. Например, telegram_id лучше указывать как числовое поле. При настройке рекомендуется проверить и при необходимости изменить тип поля.
5. Передача значения в виде строкового нуля ("0"«0»)
Иногда одно из полей передаётся как строка "0"«0», что может интерпретироваться как пустое или некорректное значение.
Рекомендация: начните с минимального набора параметров (например, только telegram_id), а затем постепенно добавляйте остальные, чтобы выявить проблемное поле.
6. НПри тестировании не включена опция «Выполнять действия по -настоящему» в GetCourse
Эта галочка обязательна для активации реальной обработки вебхука при тестировании процесса. Если она не установлена, действия не будут выполняться, даже если запрос технически успешен.




















