{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Автоматические поздравления в группе Телеграм

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

Идеей было создать телеграм-бот, который бы отслеживал дни рождения всех наших коллег, участников группы, и отправлял нее поздравления. И так как основная база контактов нашей компании ведется в Airtable, связку с телеграм-ботом сделали там. (Кстати, тем, кто еще не знаком с этой платформой, советую присмотреться. По сути, это аналог гугл-таблиц, но с более наглядным и широким функционалом.)

Делали своими low-code силами, логика получилась следующая...

I. Подготовка таблицы Airtable

1. В таблицу с данными коллег добавили три дополнительных столбца с формулами:

Итого основные вводные у нас:

  • "ФИО"
  • "Дата рождения" в формате dd/mm/yyyy
  • "Имя пользователя в Телеграм"

Доп.столбцы:

  • "Дата поздравления": считаем ближайший к сегодняшнему день рождения = DATETIME_PARSE(DATETIME_FORMAT({Дата рождения},'MM/DD')&"/"&YEAR(NOW()))
  • "Когда?": проверяем, сегодня ли день рождения = IF(IS_SAME({Дата поздравления},TODAY(),'days'),"Сегодня","Не сегодня")
  • "Поздравление: проверка на непустое значение ФИО = IF({Когда?}="Сегодня",IF({ФИО педагога}="","Нет ФИО","Поздравляем"))

2. Создали бота через @BotFather, сохранили его токен.

3. Взяли Current chat ID = id группы Телеграм с участниками с помощью @getmyid_bot (если здесь нужно пояснить подробнее, напишите в комментариях, добавлю описание по шагам).

II. Создание Automation

Связать таблицу Airtable с нашей группой в Телеграме помог инструмент Automations Airtable:

Всего понадобилось три шага:

  • Триггер: Задаем расписание запуска.
  • Действие 1: Ищем записи, удовлетворяющие условию.
  • Действие 2: Запускаем скрипт.

Подробнее:

1. Задали TRIGGER: время проверки срабатывания и отправки поздравлений (каждый день в 10:00) и дату старта, с которой запустили процесс.

Это означает, что каждый день в 10:00 данная автоматизация начинает проверку значение и в случае наличия именинников, отправляет поздравление в чат группы.

2. ACTION 1. Find records: Ищем в нашей таблице именинников. В нашем случае это строки с непустым значением в столбце "Поздравление". Также мы добавили проверку на еще один столбец "Статус", но если вы хотите делать проверку по всем строкам, достаточно будет одной первой проверки:

3. ACTION 2. Скрипт. Запускается в случае, если в ACTION 1 найдены значение. Отправляет поздравления в телеграм.

В нем задали 3 переменных. По сути, это части текста сообщения, который бот отправит в чат группы. Компоновать, формулировать их можно как угодно, не обязательно повторять дословно.

Код скрипта:

let inputConfig = input.config(); var tgurl = new String(); if (inputConfig.variable2 != '') { tgurl = 'https://api.telegram.org/bot(СЮДА ВСТАВЛЯЕТЕ ТОКЕН БОТА)/sendMessage?chat_id=(Сюда вставляете Current chat ID группы Телеграм)&text=' tgurl = tgurl.concat('', inputConfig.variable1) //tgurl = tgurl.concat('', ' Value 2: ') tgurl = tgurl.concat('', inputConfig.variable2) //tgurl = tgurl.concat('', ' Value 3: ') tgurl = tgurl.concat('', inputConfig.variable3) console.log(`The value of dsc is ${tgurl}`); fetch((tgurl), {method: 'POST', body: 'Hi there'}); } else { console.log("ДР сегодня нет"); }

Во время тестов в логах проверяете, что выдается:

Вуаля! Процесс окончен. Теперь каждый именинник будет получать поздравления от бота и следом — от коллег :)

0
1 комментарий
Nikolay Shityakov

Мы тут бота перед Новым Годом запустили.
Затестируйте, уверен, что понравится.
https://t.me/govorunnetbot

Ответить
Развернуть ветку
-2 комментариев
Раскрывать всегда