Pull to refresh

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

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

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

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

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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.