<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>@cynepmann</title><generator>teletype.in</generator><description><![CDATA[@cynepmann]]></description><image><url>https://img3.teletype.in/files/a1/27/a1272b5f-872b-4449-94e7-bbc6e6554e79.png</url><title>@cynepmann</title><link>https://teletype.in/@cynepmann</link></image><link>https://teletype.in/@cynepmann?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cynepmann</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/cynepmann?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/cynepmann?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Mon, 08 Jun 2026 23:45:30 GMT</pubDate><lastBuildDate>Mon, 08 Jun 2026 23:45:30 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@cynepmann/pzbt-subscription-via-scenario</guid><link>https://teletype.in/@cynepmann/pzbt-subscription-via-scenario?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cynepmann</link><comments>https://teletype.in/@cynepmann/pzbt-subscription-via-scenario?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=cynepmann#comments</comments><dc:creator>cynepmann</dc:creator><title>PuzzleBot • Механизм подписки с помощью Сценариев</title><pubDate>Wed, 24 Apr 2024 19:28:43 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/b8/e1/b8e10971-1dba-4af7-a364-8f196ae2cfca.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/35/06/3506fd02-5d48-4dc4-a929-71b3310a79da.jpeg"></img>В данной статье рассмотрим процесс создания механизма для управления подпиской с помощью модуля &quot;Сценарии&quot; в Puzzlebot.]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="YifJ">В данной статье рассмотрим процесс создания механизма для управления подпиской с помощью модуля &quot;Сценарии&quot; в Puzzlebot.</p>
    <p id="sB5D">Конструкция подписки, которую мы разберем ниже универсальная и отлично подойдет для использования в ботах по продаже различных услуг, индивидуальных консультаций или для доступа к эксклюзивному контенту. </p>
    <p id="UReE">В качестве примера мы рассмотрим платную подписку (30 дней) на индивидуальные консультации по разработке веб-сайтов.</p>
  </section>
  <hr />
  <p id="KtKB">❓ Что нам потребуется:</p>
  <ul id="KA3S">
    <li id="3SLZ">Раздел &quot;<a href="https://help.puzzlebot.top/article?r=5&a=59" target="_blank">Конструктор</a>&quot;</li>
    <li id="VjFH">Раздел &quot;<a href="https://help.puzzlebot.top/article?r=15&a=79" target="_blank">Сценарии</a>&quot;</li>
    <li id="Lxe1">Раздел &quot;<a href="https://help.puzzlebot.top/article?r=7&a=25" target="_blank">Модерация</a>&quot;, в котором создадим &quot;<a href="https://help.puzzlebot.top/article?r=7&a=35" target="_blank">Категории</a>&quot;</li>
    <li id="FqPh">Персональные числовые &quot;<a href="https://help.puzzlebot.top/article?r=19&a=33" target="_blank">Переменные</a>&quot;</li>
    <li id="4h8o">Обычные &quot;<a href="https://help.puzzlebot.top/article?r=5&a=149" target="_blank">Условия</a>&quot;</li>
  </ul>
  <hr />
  <p id="km08" data-align="center"></p>
  <h3 id="bk7k" data-align="center">Шаг 1 • Создаем числовую персональную переменную</h3>
  <p id="mLho"></p>
  <p id="un2s">1.1 Переходим в раздел &quot;<strong>Переменные</strong>&quot;:</p>
  <figure id="ztiE" class="m_column">
    <img src="https://img1.teletype.in/files/8b/8b/8b8ba9ac-ed56-47ac-b16f-e85751da3e5a.png" width="1328" />
  </figure>
  <p id="E0ug">1.2 Далее нажимаем на кнопку &quot;<strong>Добавить переменную</strong>&quot;:</p>
  <figure id="fUju" class="m_column">
    <img src="https://img2.teletype.in/files/df/9a/df9ad1fa-5942-49b9-841b-01e69a77f4bb.png" width="942" />
  </figure>
  <p id="SsAs">1.3 Задаем имя переменной <code>DAYS_LEFT</code> (1) и формат значения &quot;<strong>Число</strong>&quot; (2):</p>
  <figure id="QwS6" class="m_column">
    <img src="https://img2.teletype.in/files/9e/c3/9ec3833c-3dcd-4949-8253-5063773c771d.png" width="864" />
  </figure>
  <p id="1vMZ">Переменная <code>DAYS_LEFT</code> будет хранить в себе остаток дней подписки.</p>
  <hr />
  <p id="uSHx"></p>
  <h3 id="MKUV" data-align="center">Шаг 2 • Создаем категории пользователей в разделе &quot;Модерация&quot;</h3>
  <p id="JvRr"></p>
  <p id="LidT">2.1 Переходим в раздел &quot;<strong>Модерация</strong>&quot;:</p>
  <figure id="Lkvx" class="m_column">
    <img src="https://img2.teletype.in/files/1e/44/1e4487fd-96e4-444c-b2b3-88cd68708f6e.png" width="1330" />
  </figure>
  <p id="XPjN">2.1 Нажимаем на кнопку кнопку &quot;<strong>+</strong>&quot; (1), вводим название категории &quot;<strong>Активная подписка</strong>&quot; (2) и нажимаем &quot;<strong>Создать категорию</strong>&quot; (3) </p>
  <figure id="yBuj" class="m_column">
    <img src="https://img3.teletype.in/files/6c/4f/6c4f5e1d-af4b-4af7-9e44-bbafe60bea3c.png" width="1080" />
  </figure>
  <p id="Jxx4">2.3 По аналогии с предыдущим действием создаем вторую категорию &quot;<strong>Неактивная подписка</strong>&quot;:</p>
  <figure id="aYBM" class="m_column">
    <img src="https://img4.teletype.in/files/f1/81/f1813298-9d3a-42a7-ac2f-d417fda16b0e.png" width="1048" />
  </figure>
  <p id="CKw4">Категория &quot;<strong>Активная подписка</strong>&quot; будет присваиваться пользователям, которые оплатили/продлили подписку для получения индивидуальной консультации, и соответственно, вторая категория &quot;<strong>Неактивная подписка</strong>&quot; будет присваиваться тем, у кого срок подписки подошел к концу.</p>
  <hr />
  <p id="Cf8C"></p>
  <h3 id="pQRp" data-align="center">Шаг 3 • Создаем команды и условия в Конструкторе</h3>
  <p id="5amy"></p>
  <p id="YhcS">3.1 Переходим во вкладку &quot;<strong>Конструктор</strong>&quot;:</p>
  <figure id="wUsj" class="m_column">
    <img src="https://img4.teletype.in/files/35/d1/35d16881-3ca3-4695-9032-b13e8b7cd041.png" width="1326" />
  </figure>
  <p id="fR81">3.2 Создаем три команды &quot;<strong>Подписка оплачена</strong>&quot;, &quot;<strong>Напоминание за 2 дня</strong>&quot; и &quot;<strong>Истек срок подписки</strong>&quot;:</p>
  <figure id="grKm" class="m_column">
    <img src="https://img4.teletype.in/files/3d/30/3d3044d9-725a-490b-8a2c-2cdce8a34c2b.png" width="760" />
    <figcaption>Команда &quot;Подписка оплачена&quot;</figcaption>
  </figure>
  <p id="69K4"></p>
  <figure id="viUe" class="m_column">
    <img src="https://img1.teletype.in/files/4f/a2/4fa29840-0ff0-47cd-a7a8-bf4046dd5338.png" width="758" />
    <figcaption>Команда &quot;Напоминание за 2 дня&quot; </figcaption>
  </figure>
  <p id="pn9H"></p>
  <figure id="wl7X" class="m_column">
    <img src="https://img2.teletype.in/files/98/a9/98a9d906-07c7-4e02-aec7-cf8e9829e6d0.png" width="758" />
    <figcaption>Команда &quot;Истек срок подписки&quot; </figcaption>
  </figure>
  <p id="yb3V"></p>
  <p id="YAaG">3.3 Также, создаем условие &quot;<strong>Проверка DAYS_LEFT</strong>&quot;, в котором мы будем проверять нашу переменную содержащую остаток дней:</p>
  <figure id="jDL3" class="m_column">
    <img src="https://img4.teletype.in/files/fd/90/fd905a6d-68f9-4fda-ace9-d37f59b9801d.png" width="786" />
  </figure>
  <p id="7afL">• Добавим &quot;<strong>Правило 1</strong>&quot; - если переменная <code>DAYS_LEFT</code> равна 2, то отправляем команду &quot;<strong>Напоминание за 2 дня</strong>&quot;:</p>
  <figure id="vZP3" class="m_column">
    <img src="https://img1.teletype.in/files/80/2c/802c363c-efff-4951-b924-97c67e51740c.png" width="754" />
  </figure>
  <p id="XXH0">• Добавим &quot;<strong>Правило 2</strong>&quot; - если переменная <code>DAYS_LEFT</code> равна 0, то отправляем команду &quot;<strong>Истек срок подписки</strong>&quot;:</p>
  <figure id="L5An" class="m_column">
    <img src="https://img4.teletype.in/files/b4/51/b451eba6-8fdb-4316-a50a-12c137c724be.png" width="754" />
  </figure>
  <p id="aZdX">В итоге должна получиться следующая конструкция:</p>
  <figure id="mMXm" class="m_column">
    <img src="https://img2.teletype.in/files/9a/67/9a6769ab-1b6f-4cb1-af0f-f204448b18a5.png" width="1802" />
  </figure>
  <p id="OLck">Не забываем сохранить внесенные изменения во вкладке &quot;<strong>Конструктор</strong>&quot;, нажав на кнопку сохранения (подсвечена оранжевым):</p>
  <figure id="sIh2" class="m_column">
    <img src="https://img3.teletype.in/files/eb/0e/eb0e9459-ab5c-4122-8c7a-ed149ea9e42a.png" width="1214" />
  </figure>
  <hr />
  <p id="pfFF"></p>
  <h3 id="JMNv" data-align="center">Шаг 4 • Создаем сценарий &quot;Подписка&quot;</h3>
  <p id="0Bfs"></p>
  <p id="mPRK">4.1 Переходим во вкладку &quot;<strong>Сценарии</strong>&quot;:</p>
  <figure id="cfz6" class="m_column">
    <img src="https://img3.teletype.in/files/6b/7b/6b7bb3a2-b2f0-408a-b208-a0019a42a545.png" width="1332" />
  </figure>
  <p id="qNxS">4.2 Нажимаем на кнопку &quot;<strong>Добавить сценарий</strong>&quot;:</p>
  <figure id="6BWq" class="m_column">
    <img src="https://img4.teletype.in/files/71/c1/71c1b955-6320-46b8-814c-c25bc352ea47.png" width="878" />
  </figure>
  <p id="EVrf">4.3 Видим, что появился сценарий &quot;<strong>Название сценария 1</strong>&quot;:</p>
  <figure id="hFqE" class="m_column">
    <img src="https://img3.teletype.in/files/ae/2e/ae2ea576-1b18-4605-84ab-c59e89fb76b2.png" width="1288" />
  </figure>
  <p id="Mk5U">4.4 Изменим название на &quot;<strong>Счетчик дней</strong>&quot; с помощью кнопки &quot;<strong>Переименовать</strong>&quot;:</p>
  <figure id="wQ0z" class="m_column">
    <img src="https://img3.teletype.in/files/a6/79/a6797bf8-80dc-45c1-852f-7d44ace8d084.png" width="1022" />
  </figure>
  <p id="CwUD"></p>
  <figure id="zPRy" class="m_column">
    <img src="https://img3.teletype.in/files/ac/96/ac9616b7-53ed-48a6-8a64-53c88a589b00.png" width="1320" />
  </figure>
  <p id="Emh0">4.5 Откроем сценарий &quot;<strong>Счетчик дней</strong>&quot; и добавим пост:</p>
  <figure id="aiEq" class="m_column">
    <img src="https://img4.teletype.in/files/74/c3/74c3200b-2d9d-4c75-8edf-05c1ea245d35.png" width="974" />
  </figure>
  <p id="IK2b">4.6 В настройках поста установим тип отправки &quot;<strong>Через</strong>&quot; (1) один день (2), повторение поста ежедневно (3):</p>
  <figure id="Zwm3" class="m_column">
    <img src="https://img3.teletype.in/files/a3/7d/a37d949d-6966-4ed9-bf35-60f4c76ed10a.png" width="762" />
  </figure>
  <p id="10zK">4.7 В действиях поста добавляем &quot;Изменить переменную&quot; и вычитаем &quot;1&quot; из переменной <code>DAYS_LEFT</code> с выполнением &quot;<strong>ДО</strong>&quot; (3), далее отправляем условие &quot;<strong>Проверка DAYS_LEFT</strong>&quot; (4) </p>
  <figure id="RWLv" class="m_column">
    <img src="https://img1.teletype.in/files/47/14/47142ff4-4cf6-4042-90ca-ae1b80d3043d.png" width="762" />
  </figure>
  <p id="mN6f">Опубликуем все изменения сделанные в посте:</p>
  <figure id="zUBT" class="m_column">
    <img src="https://img3.teletype.in/files/a9/05/a9056968-ae52-496f-a629-ab49aad487b4.png" width="756" />
  </figure>
  <p id="UQ0g">И установим пост в статус &quot;<strong>Запланирован</strong>&quot;:</p>
  <figure id="L1RS" class="m_column">
    <img src="https://img2.teletype.in/files/d7/84/d784a8d0-f097-4277-a673-50331d47f040.png" width="754" />
  </figure>
  <p id="qJUQ">В настройках сценария &quot;<strong>Счетчик дней</strong>&quot; активируем опцию &quot;<strong>Перезапуск при повторном вызове сценария</strong>&quot; и нажимаем &quot;<strong>Сохранить</strong>&quot;:</p>
  <figure id="Q1BV" class="m_column">
    <img src="https://img3.teletype.in/files/6d/98/6d984156-000e-4edc-9aa0-7d4e6bd24706.png" width="1426" />
  </figure>
  <hr />
  <p id="DWqo"></p>
  <h3 id="xOcH" data-align="center"><strong>Шаг 5 • Применение сценария и категорий в Конструкторе </strong></h3>
  <p id="AHj0"></p>
  <p id="WPdR">5.1 Вернемся во вкладку &quot;<strong>Конструктор</strong>&quot; и откроем команду &quot;Подписка оплачена&quot;, добавим в ней следующие действия:</p>
  <p id="FrXN"></p>
  <p id="1NJu">- Добавляем к переменной <code>DAYS_LEFT</code> (1) значение &quot;<strong>30</strong>&quot; (2), что означает 30 дней (1 месяц):</p>
  <figure id="cP0A" class="m_column">
    <img src="https://img2.teletype.in/files/d7/53/d7531ae3-0e79-48a1-b6fd-6dd9ea79aec2.png" width="730" />
  </figure>
  <p id="SSuu">- Активируем сценарий &quot;<strong>Счетчик дней</strong>&quot; (1), который будет ежедневно вычитать 1 день из переменной <code>DAYS_LEFT</code> и проверять в ней текущий остаток дней:</p>
  <figure id="escX" class="m_column">
    <img src="https://img4.teletype.in/files/b7/b8/b7b8d664-945c-4a23-8874-3a33136e068c.png" width="754" />
  </figure>
  <p id="bQWC">- Добавляем пользователя в категорию &quot;<strong>Активная подписка</strong>&quot; (1):</p>
  <figure id="jmBp" class="m_column">
    <img src="https://img4.teletype.in/files/bc/8d/bc8d6271-ddf6-491f-afb6-7de360fa6c18.png" width="750" />
  </figure>
  <p id="F1Mq">По итогу в команде &quot;<strong>Подписка оплачена</strong>&quot; должны быть три действия как показано на изображении ниже:</p>
  <figure id="OaeX" class="m_column">
    <img src="https://img2.teletype.in/files/5d/f2/5df2e9a5-fad9-4314-baf4-01716734e5ff.png" width="754" />
  </figure>
  <p id="gLh0">5.2 Далее переходим к команде &quot;<strong>Истек срок подписки</strong>&quot; и добавляем следующие действия:</p>
  <p id="sAcm">- Отключаем сценарий &quot;<strong>Счетчик дней</strong>&quot; (1):</p>
  <figure id="HBra" class="m_column">
    <img src="https://img1.teletype.in/files/86/05/86055258-4215-46ea-96e8-07ccd5929054.png" width="752" />
  </figure>
  <p id="ifva">- Добавляем пользователя в категорию &quot;<strong>Неактивная подписка</strong>&quot; (1):</p>
  <figure id="Cpq1" class="m_column">
    <img src="https://img3.teletype.in/files/e5/34/e534ad05-0154-4456-9594-66f28ddb5f2b.png" width="750" />
  </figure>
  <p id="6IcW">По итогу в команде &quot;<strong>Истек срок подписки</strong>&quot; должны быть два действия как показано на изображении ниже:</p>
  <figure id="6vOc" class="m_column">
    <img src="https://img2.teletype.in/files/10/48/1048c798-8081-44df-b8d5-f40ad42d757d.png" width="752" />
  </figure>
  <p id="LFpF" data-align="center"></p>
  <h3 id="o2yn">Резюмируем: </h3>
  <p id="ww1T">После того, как пользователь оплачивает подписку у него запускается команда &quot;<strong>Подписка оплачена</strong>&quot;, в которой ему присваиввется категория &quot;<strong>Активная подписка</strong>&quot;, а также, добавляется 30 дней в переменную <code>DAYS_LEFT</code> и запускается сценарий &quot;<strong>Счетчик дней</strong>&quot;, который ежедневно будет вычитать из переменной 1 день и с помощью условия проверять остаток дней.</p>
  <p id="0ugD">Если осталось 2 дня до конца подписки, то пользователю отправляется команда &quot;<strong>Напоминание за 2 дня</strong>&quot;; если осталось 0 дней, то пользователю отправляется команда &quot;<strong>Истек срок подписки</strong>&quot;, в которой завершается сценарий &quot;<strong>Счетчик дней</strong>&quot; и назначается категория &quot;<strong>Неактивная подписка</strong>&quot;.</p>
  <p id="j8Ic">В зависимости от назначенной категории пользователю можно выдавать или ограничивать доступ к определенным командам в боте (в нашем примере доступ к индивидуальной консультации со специалистом), но об этом мы расскажем вам в другой статье &quot;Как ограничить доступ пользователей с помощью категорий&quot;.</p>

]]></content:encoded></item></channel></rss>