Как стать автором
Обновить

Поздравления с ДР участников Телеграм-группы

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

Идеей было создать телеграм-бот, который бы отслеживал дни рождения всех наших коллег, участников группы, и отправлял нее поздравления. И так как основная база контактов нашей компании ведется в 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("ДР сегодня нет");
}

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

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

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.