Telegram-бот-рассыльщик 1.0 Help

Инструкция по админке

Административная панель — это Strapi Headless CMS, которая предоставляет очень обширный функционал.

Административная панель доступна по следующей ссылке

Авторизация

Изначально необходимо авторизоваться

auth.png

После авторизации отображается Домашняя страница со списком последних действий.

home_page.png

Просмотр контента

Для просмотра данных откройте во вкладках слева пункт Content Manager.

content_manager.png

Страница Content Manager состоит из двух частей:

  1. Список всех коллекций (слева).

  2. Подробный просмотр выбранной коллекции/записи (справа).

content_manager_page.png

Изменение данных партнёра

Партнёр — это, по сути, телеграм‑чат с пользователями (сотрудниками партнёра).
Чтобы изменить данные, откройте коллекцию Партнёры и выберите нужного партнёра.

content_manager_partner_table.png
partner_page.png

В записи/объекте определённого партнёра нас интересуют следующие поля:

  1. name — изначально наименование чата. Можно менять для лучшей читаемости

  2. altName — дополнительное наименование чата, которое нужно также для лучшей читаемости в админ панели

  3. birthday — дата рождения/основания компании партнёра. Именно в эту дату будут отправляться определённые поздравления

  4. isActive — дополнительное поле для обозначения активности партнёра. Если выбрать False, то партнёру ничего не будет отправляться

Изменение данных сотрудников

Чтобы изменить данные сотрудника, откройте коллекцию Сотрудники и выберите нужную запись.
Либо откройте карточку партнёра и в блоке «Сотрудники» перейдите к нужному сотруднику.

employee_page.png
employee_page.png

В записи/объекте определённого сотрудника нас интересуют следующие поля:

  1. name — имя, указанное пользователем в Телеграме. Если имя не отражает ФИО или ФИ, то его стоит заменить

  2. tgName — никнейм, указанный пользователем в Телеграме (не рекомендуется менять)

  3. birthday — дата рождения сотрудника

Использование шаблонов

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

template_page.png

В записи/объекте определённого шаблона нас интересуют следующие поля:

  1. Имя шаблона — наименование шаблона/праздника

  2. Текст шаблона — текст поздравления с возможностью использования переменных (о них в следующем разделе)

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

  4. Повторять дату? - поле, которое отвечает за регулярную отправку поздравлений независимо от выбранного ГОДА. То есть шаблон будет отправляться каждый год в выбранный месяц и день, если данное Повторять дату? выбрано на TRUE

  5. Кого поздравлять? - список из двух строк: Партнер и Сотрудник. Если выбран Партнер, то шаблон будет отправлен только партнеру. Если выбран Сотрудник, то шаблон будет отправляться всем сотрудникам у партнёра.

  6. Условия - самое важное поле, которое определяет, кому именно отправлять шаблон. Тут используется немного сложный синтаксис, но если его понять, то это открывает огромные возможности по фильтрации отправки шаблона

Условия

Назначение. Поле «Условия» позволяет гибко отфильтровать адресатов.

Как это работает.

  • Каждая строка (или выражение, разделённое ;) — отдельное условие.

  • Итоговая проверка — это логическое И по всем строкам (все условия должны быть истинны).

  • Внутри одной строки можно использовать and, or, not для объединения проверок.

  • Пустое поле «Условия» означает без ограничений (условия считаются истинными).

Контексты и поля. Доступны два корневых объекта:

  • Партнер — поля партнёра (например, name, birthday, isActive).

  • Сотрудник — поля сотрудника (например, name, tgName, birthday).
    Если шаблон настроен на «Партнер», объект Сотрудник может быть пустым и наоборот.

Разрешённые операции и функции.

  • Операторы сравнения: ==, !=, <, <=, >, >=, in, not in, is, is not.

  • Логика: and, or, not, круглые скобки.

  • Строковые методы (только эти): startswith, endswith, isdigit, islower, isupper.

  • Константы: строки в кавычках ("some string" или 'some string'), None, числа, булевы True/False.

Запрещено.

  • Любые другие функции и методы (lower(), upper(), strip() и т.п. запрещены).

  • Присваивания, импорт, доступ к встроенным функциям, индексация [], вызовы по произвольным именам.

Разделители.

  • Можно писать условия в несколько строк.

  • Или в одну строку, разделяя выражения точкой с запятой ;:

Рассмотрим 2 ситуации: когда выбран Партнер и Сотрудник в поле Кого поздравлять?

Партнер

В случае Партнер в поле Условия мы можем обращаться к полям партнёров. Вот несколько примеров ниже:

  • Выбираем всех партнёров для данного шаблона, у которых заполнено поле "день рождения"

Партнер.birthday;
  • Имя содержит подстроку (через in):

"ООО" in Партнер.name
  • Выбираем всех партнёров, у которых имя начинается с заглавной буквы "Г"

Партнер.name.startswith("Г");
  • Добавляем несколько условий (должны выполниться ВСЕ):

    • Заполнено день рождения

    • Имя начинается с заглавной буквы "Т"

    • Имя заканчивается буквой "й"

    • Имя НЕ начинается с "Три"

Партнер.birthday; Партнер.name.startswith("Т"); Партнер.name.endswith("й"); not Партнер.name.startswith("Три");

Сотрудник

Всё аналогично, но тут мы можем обращаться как к полям партнёра, так и к полям сотрудников

  • Выбираем всех сотрудников, у которых заполнено поле "день рождения"

Сотрудник.birthday;
  • Выбираем всех сотрудников, у которых tgName начинается с буквы "d"

Сотрудник.tgName.startswith("d");
  • Выбираем всех сотрудников, у которых заполнено поле "день рождения", а также, чтобы у их партнёра также было заполнено поле дня рождения

Партнер.birthday; Сотрудник.birthday;

Переменные в шаблоне

В принципе, логика использования аналогична пункту

Для использования переменных нужно написать {{ <переменная> }}.

Пример:

🎉 Дорогой {{Сотрудник.name}}! От всей команды NovikovTV сердечно поздравляем вас с Днём рождения! 🎂

Выше мы обращаемся к {{Сотрудник.name}}, то есть вместо данного поля подставится конкретное имя, например, "Алексей"

Доступные переменные

Все доступные поля для переменные у партнера и сотрудников помечены <имя переменной > (+), например name (+)

partner_vars.png

Аналогично у сотрудников

08 August 2025