# Бот с партнёрской программой

Бот с партнёрской программой будет собираться в 3 этапа:\
\
1\. Создание партнёрской ссылки и разбор того, как она работает ([читать](#1.-sozdanie-partnyorskoi-ssylki-i-razbor-togo-kak-ona-rabotaet))\
2\. Создание бота для партнёрской ссылки ([читать](#2.-sozdanie-bota-dlya-partnerskoi-ssylki))\
3\. Создание бота для того, чтобы оповестить пригласившего о регистрации по его ссылке ([читать](#3.-sozdanie-bota-dlya-togo-chtoby-opovestit-priglasivshego-chto-zaregistrirovalis-po-ego-ssylke))

### 1. Создание партнёрской ссылки и разбор того, как она работает

Партнёрская программа будет работать в следующих лендингах: на **Мини-лендингах** и **ВК-лендингах.**

* Создаём нужную нам подписную страницу.

{% hint style="info" %}
Инструкция, как создать подписную страницу, ниже 👇
{% endhint %}

{% embed url="<https://docs.leadconverter.su/mini-lendingi-or-podpisnye-stranicy>" %}

Для примера мы возьмем эту ссылку: <https://lcvr.net/sqTm>.\
\
Теперь о поговорим о том, как работает такой бот. У нас есть ссылка, которую мы используем для того, чтобы позвать в бота. Как правило, её мы используем в рекламе, блоге и пр.\
\
Чтобы использовать её для партнёрской ссылки, мы можем добавить **utm-метки** и внутренний ID пользователя в [LeadConverter](https://leadconverter.ru/)**.** Соединив эти 2 элемента, мы сможем дать пригласившему человеку бонус, а приглашённому — скидку.

Наша задача при запуске основного бота сделать следующее:

1. **Проверка на наличие utm-метки**

Пользователь может подписаться без метки, а значит, проверять его дальше ни к чему.

2. **Если метка все же есть, нужно проверить, есть ли в метке что-то кроме цифр**

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

3. **Проверить цифры в метке, есть ли они в базе**

Это нужно для того, чтобы понять, есть ли в базе этот пользователь (для обязательного начисления бонуса).

4. **Запустить пригласившему бота**

Тут будет информация о приглашённом пользователе.

&#x20; 5\. **Запустить приглашённому основную воронку**

* Возвращаемся к ссылке и начинаем подготавливать её для использования. Собираем такой формат:

1. Для **Мини-лендингов**:

Ссылк&#x430;**?utm\_source={{id}}**

Пример 👇

```
https://lcvr.net/Hr5j?utm_source={{id}}
```

2. Для **ВК-лендингов**:

Ссылк&#x430;**\&utm\_source={{id}}**

Пример 👇

```
https://vk.com/app6955155_-136064993#lp=501&utm_source={{id}}
```

Эти ссылки нужно отправить через бота в тот момент, когда вы начинаете говорить **о партнёрской программе**.

Вот так будет выглядеть ссылка, когда она будет отправлена через бота (цифры в конце у каждого пользователя будут разные) :point\_down:

![](/files/PsDea6A7WLf8fWkYepr2)

Когда мы запустим бота и перейдём по ссылке, в системе отобразятся те цифры, которые были в ссылке. Это наш ID пригласившего пользователя:

![](/files/K1Az1OtATWL6HuIcMHYH)

Далее мы приступаем к настройке бота, который будет всё проверять в основном боте.

### 2. Создание бота для партнёрской ссылки

1. Первое, что мы делаем — проверяем наличие **utm-метки.**

* Создаём блок "**Действие**" и выбираем "Установить переменной" **utm значение {{utm\_source}}.**

![](/files/rhlpo8bXGbUmtvcGm0MW)

Тем самым мы записываем данные из utm\_source в переменную для дальнейшей работы.&#x20;

{% hint style="info" %}
Если переменной **utm** нет, то её нужно создать.
{% endhint %}

2. Далее создаём блок "**Условие**" и ставим условие **`utm`заполнена.**

![](/files/qlXqJN07cAkOzc4JQ5FJ)

{% hint style="info" %}
Красный выход отправляем сразу же в начало основной воронки, потому что если utm не заполнена, то смысла дальше проверять что-либо нет.
{% endhint %}

3. Создаём новый блок "**Условие**". Зелёный выход от первого блока "Условие" ведём ко второму.

![](/files/WjJ9CMkaPtK8R6p5PLyF)

Следует проверить, содержит ли переменная **`utm`** только цифры.

4. Во втором блоке "Условие" выбираем **`utm` соответствует регулярке ^\[0-9]+$**

* Красный выход также ведём на начало основной воронки, потому что если там есть буквы, то этот человек пришёл с рекламы.

![](/files/VS58MTXMgeKTjBz3lBxE)

5. Добавляем блок "**Действие**". Ведём к нему зеленый выход из второго блока "Условие".

![](/files/Va9UKSQ1gXWDbv38wkUL)

В блоке "**Действие**" необходимо сделать запрос в [LeadConverter](https://leadconverter.ru/), чтобы узнать, являются ли цифры, которые находятся в переменной utm, ID подписчика или нет.

6. Выбираем "**Отправить через вебхук**" и заполняем все колонки.

* **URL-адрес обработчика**

```
http://leadconverter.ru/api/v1/токен/subscriber.has
```

* Нажимаем "**+Добавить параметр**" и копируем данные из таблицы ниже :point\_down:

**Параметры:**

<table><thead><tr><th width="309.7272727272727">Параметр</th><th>Значение</th></tr></thead><tbody><tr><td>subscriber_id</td><td>{{utm}}</td></tr></tbody></table>

* Затем сохраняем результат в любую переменную. Рекомендуем создать переменную **`return`**
* Не забываем сохранить изменения в блоке.

![Заполненный блок](/files/vCx5jzYLO3SfltoALOtF)

7. Создаём ещё один блок "**Условие**", где выбираем **переменная `return` равен yes**

А красный выход сразу ведём на начало основной воронки.

![](/files/YJ4MFQmYo0Vg5DlNCFZh)

На данном этапе завершаем настройку бота. Мы вернёмся к нему после создания следующего бота, который будет оповещать пригласившего о новом приглашённом. &#x20;

### 3. Создание бота для того, чтобы оповестить пригласившего о регистрации по его ссылке

1. Создаём бота с примерным названием: "**Оповещение пригласившего**".
2. Открываем редактор сценария бота. Создаём блок "**Действие**" и выбираем **увеличить переменную "Приглашения" на 1.** Тем самым количество приглашённых будет увеличиваться на 1 при каждом запуске этого бота.
3. Добавляем блок "**Сообщение**" и вставляем текст :point\_down:

<details>

<summary>Зарегистрирован новый пользователь!<br><br>Тобой приглашено пользователей: {{Приглашения}}</summary>

</details>

{% hint style="info" %}
А после можно делать что угодно. Например, назначать скидки или давать доступ к материалам. Всё зависит от ваших задач и фантазий :)
{% endhint %}

4. Осталось узнать и записать **ID** этого бота.

Взять ID можно в адресной строке. Цифры в конце и есть ID бота, в нашем случае: **5077.**

![](/files/tay7iZDdEKxidiu5r9j5)

5. Возвращаемся в основного бота.
6. Создаём новый блок "**Действие**" и выбираем "**Отправить через вебхук**". Приступаем к заполнению колонок.

* **URL-адрес обработчика**

```
http://leadconverter.ru/api/v1/токен/bot.start
```

* Нажимаем "**+Добавить параметр**" и копируем из таблицы ниже данные :point\_down:

**Параметры:**

<table><thead><tr><th width="309.7272727272727">Параметр</th><th>Значение</th></tr></thead><tbody><tr><td>bot_id</td><td><strong>5077*</strong></td></tr><tr><td>subscriber_id</td><td>{{utm}}</td></tr></tbody></table>

{% hint style="info" %}
\*В значение **bot\_id**, нужно добавить ID вашего **второго бота.**
{% endhint %}

![](/files/uz3toybClvwW7tdwV8Nx)

7. Соединяем зелёный выход блока "Условие" с новым блоком "Действие", а от него ведём связь на начало воронки.

![](/files/Yn9gXwyD27cHV6sr6vdu)

Партнёрская система готова! :tada:

{% hint style="success" %}
Остались вопросы? Задайте их в техподдержку! Мы всегда рады прийти на помощь :relaxed::point\_down:
{% endhint %}

{% content-ref url="/pages/-MasAPNcg291uNezFqb4" %}
[Как задать вопрос в поддержку?](/kak-zadat-vopros-v-podderzhku.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.leadconverter.su/primery/primery-botov/bot-s-partnyorskoi-programmoi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
