Skip to main content

Salebot + GetCourse + Vortex

Чтобы система работала, необходимо, чтобы Telegram ID каждого пользователя сохранялся в дополнительное поле в GetCourse.

В момент создания заказа срабатывает автоматизация, и данные передаются в Vortex через вебхук. После этого вы получаете доступ к сквозной аналитике – от источника трафика до конечной продажи.

Этап 1. Сохранение Telegram ID в дополнительное поле GetCourse

Если ваша воронка построена на Salebot, вы можете динамически передать telegram_id в дополнительное поле пользователя GetCourse. 

Подробная инструкция

1. Настроить интеграцию Salebot и GetCourse

Как настроить интеграцию Salebot и GetCourse

2. Получить прокси-ссылку на Telegram для запуска воронки в Telegram-боте

Как получить ссылку на Telegram-бота в Salebot

1. Создайте лендинг в разделе «Сайты»

Снимок экрана 2025-09-05 171428.png

2. В поле «Тег» укажите значение из поля «Условие» первого блока вашей воронки.

Снимок экрана 2025-09-05 212026.png

Снимок экрана 2025-09-05 171542.png

3. Перейдите в раздел «Ссылки на мессенджеры» и скопируйте прокси-ссылку на Telegram – она будет использоваться для запуска воронки.

Снимок экрана 2025-09-05 171702.png

3. Далее нужно связать пользователя Salebot с пользователем GetCourse. Для этого передадим email пользователя GetCourse в Salebot.

Добавим в полученную ссылку переменную email:

Пример ссылки:
https://sbsite.pro//ab123a12aa1a1a1a1ab12345a1ab1a12_1?email={email}

Именно эту ссылку необходимо вставить на страницу благодарности.

Так как в кнопке переменные пользователя не подставляются, ссылку можно «вшить» в текст и поставить галочку «Заменять переменные пользователя».

Снимок экрана 2025-09-05 213831.png

Если вы хотите использовать именно кнопку, можно создать форму с единственным полем – email, и скрыть это поле с помощью CSS-класса hidden.

Снимок экрана 2025-09-05 214235.png

В обработчике формы указать переадресацию на прокси-ссылку на Telegram-бот с переменной email и поставить галочку «Заменять переменные в URL».

Снимок экрана 2025-09-05 214503.png

При переходе по ссылке – вшитой в текст или через кнопку – в Salebot будет передан email пользователя.

4. Теперь необходимо передать telegram_id из Salebot в дополнительное поле пользователя GetCourse.

Для этого сначала нужно создать дополнительное поле пользователя на стороне GetCourse.

Как создать дополнительное поле пользователя GetCourse

1. Переходим в «Ученики» ➡️ «Пользователи» ➡️ «Дополнительные поля»

photo_1_2025-09-01_12-51-36.jpg

photo_1_2025-09-02_16-00-24.jpg

2. Далее добавляем доп. поле:
•    Тип – число
•    Заголовок – telegram_id

Сохраняем.

dsgfd.jpg

После этого можно реализовать передачу Telegram ID.

Это делается с помощью функций в так называемом «Калькуляторе» в Salebot.
Калькулятор – это поле в редакторе блока, где можно выполнять логические и арифметические действия, а также вызывать API-запросы к конструктору и подключённым интеграциям.

Добавим в первый блок воронки функцию. В поле «Калькулятора» вставим следующее:

result=getcourse_add_user(1, email, '', '', '{"addfields":{"telegram_id": #{platform_id}}}')

Сохраняем.

Снимок экрана 2025-09-05 212248.png

5. Остаётся только протестировать процесс, пройдя по пути клиента. При успешном выполнении функция возвращает True, а в переменную сделки getcourse_user в Salebot записывается ответ сервера:

{"success":true,"user_id":123456789,"user_status":added,"error_message":"","error":false}

Если произошла ошибка (например, в GetCourse нет активной подписки), в переменную result запишется сообщение об ошибке:
This method in Getcourse only works on paid Getcourse plans. During the test period - no.


Если ваша воронка построена таким образом, что пользовтель переходит из бота на сайт с формой, а не наоборот, то вы также можете передать telegram_id в дополнительное поле пользователя GetCourse через лендинг – по аналогии со способом, реализованным через мини-приложение.

Как передать Telegram ID из Salebot в GetCourse через лендинг

Для этого в GetCourse создайте дополнительное поле у пользователя (см. инструкцию выше). Затем в форму на лендинге добавьте «Поле пользователя», укажите 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}


Видео-инструкция

 

Как настроить интеграцию Salebot и GetCourse

Этап 2. Передача данных в Vortex

После того как вы настроили сохранение telegram_id в дополнительное поле пользователя в GetCourse, следующий шаг – передача данных поступающих заказов в Vortex. Это необходимо для построения сквозной аналитики: от источника трафика до конечной продажи.

Передача осуществляется через процесс, созданный в конструкторе GetCourse, с использованием вебхука.

Что нужно для передачи данных из GetCourse в Vortex через вебхук?

1. Убедиться, что telegram_id сохраняется в дополнительном поле пользователя

2. Создать группу конверсий в Vortex и выбрать вебхук в качестве источника

Как в Vortex создать группу конверсий

Подробнее о группах конверсий вы можете прочитать в этой статье.

1. Перейдите в Продажи ➡️ Управление конверсиями. Укажите название группы и нажмите «Создать»

1.jpg

2. Добавьте вебхук в качестве источника, нажав на значок «+» в столбце «Действия». Укажите название связки и нажмите «Добавить»

2.jpg

3.jpg

3. Перед вами откроется окно настройки вебхука. Здесь вы можете скопировать или перегенерировать ключ, а также указать название и сумму покупки по умолчанию. Если при передаче заказа не будут переданы название и сумма, в Vortex автоматически подставятся значения по умолчанию. Таким образом, приоритет всегда отдается данным, переданным через вебхук.

Вы также можете установить часовой пояс в настройках.

Важно учитывать, что время в Telegram фиксируется в формате UTC, тогда как в системах вроде GetCourse оно отображается по московскому времени (UTC+3). Из-за этой разницы при прямой передаче данных могут возникать несоответствия. Чтобы избежать путаницы, Vortex нормализует время к единому стандарту – UTC. Это позволяет корректно сопоставлять события, зафиксированные в разных системах.

Снимок экрана 2025-09-05 124308.png

3. Получить ссылку для отправки вебхука

Как правильно составить ссылку для отправки данных по заказу через вебхук

Ссылка для отправки вебхука состоит из ключа вебхука и переменных, в которых передаются данные заказа.

Пример ссылки, в которой передаются Telegram ID пользователя, стоимость, название и UTM-метки заказа: 
https://proxy.vortex.pro/webhooks/sale?key=a1234b5c6789012d34e56789f01g2345&telegram_id={object.user.telegram_id}&purchase_priсe=purchase_price={object.cost_money_value}&purchase_name={object.positions}&utm_source={object.create_session.utm_source}&utm_medium={object.create_session.utm_medium}&utm_campaign={object.create_session.utm_campaign}&utm_content={object.create_session.utm_content}&utm_term={object.create_session.utm_term}

1. Ключ вебхука. Ссылка для запроса с необходимым ключом копируется напрямую из нашего сервиса – вносить в неё изменения не требуется. При успешном копировании у вас всплывёт уведомление «Ключ веб-хука скопирован».

4.jpg

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) и переменная в ссылке были полностью идентичны.

Это обязательный параметр запроса – без него сервис не сможет корректно добавить конверсию.

Описание всех доступных параметров и переменных
Особенность Параметр Описание
*обязательный telegram_id 

integer (целое число), Telegram ID покупателя

*обязательный username  string (строка), Telegram Username покупателя

Для отправки вебхука необходимо указать либо telegram_id, либо username – достаточно передать хотя бы один из этих параметров.

Если вы передаёте telegram_id, отправка username не требуется.

/опциональное purchase_price 

float (число), цена конверсии


Для передачи этого значения используйте переменную {object.cost_money_value}

/опциональное purchase_name 

string (строка), название конверсии

 

Для передачи этого значения используйте переменную {object.positions}

/опциональное purchased_at 

datetime (дата и время), время совершения конверсии

Можно не указывать. В этом случае подставится время отправки webhook.
Если отсутствует – подставится дата отправки настоящего запроса.

Для передачи этого значения используйте одну из переменных: {object.created_at format='d.m.Y H:i'} (дата создания заказа) или {object.payed_at format='d.m.Y H:i'} (дата оплаты заказа)

/опциональное

utm_source

utm_medium

utm_campaign

utm_content

utm_term

string (строка), значения UTM-меток

 

Можно передать как одну из UTM-меток, так и все сразу.

Каждая из них будет привязана к соответствующей конверсии и отправлена вместе с ней.

Важно: названия UTM-меток должны точно соответствовать установленным стандартам – любое отклонение может привести к некорректному сбору данных.

 

Пример объекта create_session с указанием источника и его UTM-меток:

 

image.png

 

Для того, чтобы передать эти значения, нужно использовать специальные переменные.

 

Чтобы использовать переменные по заказу, добавьте к ним приставку object:

  • {object.create_session.utm_source}

Чтобы в процессе по заказу использовать переменные по пользователю, добавьте приставки object и user:

  • {object.user.create_session.utm_source}

Для передачи UTM-меток используются следующие переменные:

  • {create_session.utm_source}
  • {create_session.utm_medium}
  • {create_session.utm_campaign}
  • {create_session.utm_content}
  • {create_session.utm_term}

Более подробная информация – по этой ссылке.

 

Подробные инструкции:

4. Настроить процесс передачи данных по заказу в Vortex

Теперь, когда мы получили ссылку для передачи данных, нужно создать процесс по заказам в GetCourse.

Как в GetCourse создать процесс передачи данных в Vortex

Процессы в GetCourse бывают разного типа. Нам необходим процесс по заказам.

1. Перейдем в раздел «CRM» ➡️ «Процессы»

1.jpg

2. Создадим новый процесс с типом объекта «Заказы»

2.jpg

3. В настройках выберите пункт «Периодическая проверка» и укажите правило вхождения объекта — то есть конкретное предложение или тип заказа, который нужно передавать в Vortex. В нашем примере — это бесплатный тестовый заказ.

На этом этапе вы также можете задать дополнительные параметры заказа: его статус (оплачен/не оплачен), дату создания и другие необходимые данные.

3.jpg

4. Сохраняем и переходим во вкладку «Процесс». Добавляем блок «Операция» ➡️ «Заказ» ➡️ «Вызвать url»

4.jpg

5.jpg

5. Здесь мы используем GET-запрос и в поле «URL» вставляем ту ссылку, которую мы получили на предыдущем этапе. Сохраняем.

6.jpg

6. Добавляем блок «Завершение процесса» и соединяем

7.jpg

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 – подробная информация о добавленной конверсии, включая данные о клиенте.

Информативную часть ответа data можно отключить с помощью указания параметра запроса:

response_with_data=false

В этом случае вы получите только поле detail с подтверждением статуса, без дополнительных данных.

Пример ссылки:
https://proxy.vortex.pro/webhooks/sale?key=a1234b5c6789012d34e56789f01g2345?telegram_id={object.user.telegram_id}&purchase_prise={object.cost_money_value}&purchase_name={object.positions}&response_with_data=false

После проверки перед запуском процесса отключите сохранение ответа от сервера в дополнительное поле GetCourse. Это может мешать реальной обработке запроса.

Видео-объяснение с примером

Типовые ошибки при передаче данных через вебхук

1. Некорректное название дополнительного поля в GetCourse

В параметрах вебхука указано имя поля с ошибками – например, содержатся пробелы, точки или другие недопустимые символы. Убедитесь, что имя поля соответствует формату, ожидаемому системой (латиница, без пробелов и специальных символов). 

2. Передача тестовой конверсии без обязательных идентификаторов

Попытка отправить тестовую конверсию без указания telegram_id или username. Для корректной обработки необходимо передавать хотя бы один из этих идентификаторов.

3. Сохранение ответа вебхука в переменную во время отладки

При локальной отладке некоторые разработчики сохраняют ответ вебхука в переменную, что может мешать реальной обработке запроса. Убедитесь, что вебхук корректно отправляется на сервер, а не «заглушается» в коде.

4. Несоответствие типа переменной в GetCourse

GetCourse может некорректно интерпретировать данные, если тип поля (текстовое/числовое) не совпадает с передаваемым значением. Например, telegram_id лучше указывать как числовое поле. При настройке рекомендуется проверить и при необходимости изменить тип поля.

5. Передача значения в виде строкового нуля («0»)

Иногда одно из полей передаётся как строка «0», что может интерпретироваться как пустое или некорректное значение.
Рекомендация: начните с минимального набора параметров (например, только telegram_id), а затем постепенно добавляйте остальные, чтобы выявить проблемное поле.

6. При тестировании не включена опция «Выполнять действия по-настоящему» в GetCourse

Эта галочка обязательна для активации реальной обработки вебхука при тестировании процесса. Если она не установлена, действия не будут выполняться, даже если запрос технически успешен.

8.jpg

7. Все настроено верно, но конверсии так и не появляются в Vortex

Иногда бывает, что GetCourse некорректно передает значение переменной telegram_id через вебхук. Платформа может конфликтовать с внутренними переменными системы или игнорировать поля при отправке вебхука. При этом в ответе от сервера приходит следующее: 

IMG_13102025_112546_20128.jpg

Решение: использовать кастомное (пользовательское) название поля

Чтобы обойти эту проблему, рекомендуется переименовать поле, через которое передаётся Telegram ID, на уникальное (например, tgid).

Для этого необходимо внести изменения на всех этапах цепочки передачи данных:

1. Заголовок дополнительного поля GetCourse

Как поменять заголовок доп. поля пользователя в GetCourse

Перейдите в «Пользователи»

Снимок экрана 2025-10-14 145610.png

Нажмите «Дополнительные поля» 

Снимок экрана 2025-10-14 145645.png

Нажмите на поле telegram_id и впишите в поле «Заголовок» новое значение

Снимок экрана 2025-10-14 145659.png

2. CSS-класс элемента в форме, с помощью которой собираются Telegram ID

Снимок экрана 2025-10-14 145746.png

3. Переменная в скрипте для передачи telegram_id

Снимок экрана 2025-10-14 145901.png

4. Переменная в ссылке для отправки вебхука

Снимок экрана 2025-10-14 155309.png

5. В настройках Vortex: перейдите в Продажи ➡️ Прокси-ссылки ➡️ Откройте настройки ➡️ В поле «UTM-метка с Telegram_ID перешедшего» укажите новое имя

Снимок экрана 2025-10-14 150053.png

Протестируйте: 

1) Заполните форму, открыв сайт через MiniApp (прокси-ссылку).

2) Проверьте, записался ли Telegram ID в обновленное поле в GetCourse.

Если Telegram ID НЕ записался, то проблема может быть в скрипте. Проверьте, что скрипт написан верно.

3) Если Telegram ID записался, проверьте, отработал ли процесс и отправились ли данные по вебхуку.

Перейдите в Процессы ➡️ Выберите нужный процесс ➡️ Перейдите в задачи ➡️ Нажмите на ID нужной задачи ➡️ Разверните историю полностью ➡️ Проверьте ответ от сервера. Successfully added sale указывает на то, что конверсия была успешно передана в Vortex. В противном случае проверьте правильность ссылки.

4) Проверьте, добавилась ли конверсия в Vortex. Перейдите в Продажи ➡️ Выберите нужную группу клиентов ➡️ Перейдите в Клиенты ➡️ Проверьте, добавились ли новые конверсии.