Запускаем скрипт в базе данных Airtable для передачи данных клиенту через бота в Telegram

Nikolay Pavlov
Сделать просто
3 min readMay 21, 2022

В Airtable предусмотрено несколько типов создания сценариев: на основе встроенных механизмов, с помощью лоукод сервисов и через запуск кода, который срабатывает при определенных условиях.

Запускать код можно используя уже готовые готовые приложения в магазине Airtable или создать свой код. Скрипты можно запускать двумя способами.

Те скрипты, которые работают через магазин запускаются поверх сценария автоматизации.

Скрипты, которые вы добавляете в раздел автоматизации будут работать в фоновом режиме. Производить вычисления они будут только при определенных условиях, которые Вы пропишите в сценарии.

Настройка автоматизации для запуска скрипта

Для начала хочу предупредить, что скрипты в сценариях автоматизации будут работать только на платных тарифах уровнях Pro и Enterprise. Сама автоматизация будет работать стабильно начиная с тарифа Plus. На бесплатном тарифе автоматизацию можно запустить всего 100 раз.

Для создания автоматизации с помощью скрипта нужно зайти в меню Automations. Создать новый сценарий. Вначале укажите какие действия в базе данных станут триггером для срабатывания скрипта.

Синим цветом выделены условия в таблице при которых запуститься скрипт отправки сообщения через бота в Телеграм.

Например, в моей базе данных указано, что если в таблице «Заявки» поле «Готовый документ» не будет пусто (т.е. оно имеет расширение attachment), а также поле в «Статус услуги» будет выбран пункт Завершен, то алгоритм передаст сценарий на следующий шаг.

Там нужно выбрать из типа действий Action type запуск скрипта. В разделе Configuration можно выбрать какие столбцы с данными будут участвовать в вычислениях.

Среда разработки Airtable состоит из раздела входящие переменные input, редактора с подсветкой кода, переменных которые скрипт будет отдавать на выходе output и console.log которая выводит системные сообщения для тестирования скрипта. Проверить работу скрипта можно синей кнопкой Test вверху.

Airtable поддерживает библиотеку fetch — это позволяет делать API вызовы к сторонним сервисам.

Из чего состоит скрипт вызова к API Telegram

Давайте рассмотрим пример моего скрипта для отправки сообщений в чат-бот с определенными данными клиенту в Телеграм.

const token = ‘5241676555:’;
//Указываем токен бота, выданный BotFather
let inputConfig = input.config();
// Объявляем, что будет загружать некоторые данные из таблиц, которые пропишем ниже.
let message = `${inputConfig.first_name}, Ваш документ <b>готов</b> по заказу №${inputConfig.order}.Скачайте его <a href=”${inputConfig.doc_link}”>по ссылке</a>.
Ждем Вас снова.
Ваш,
<b>RealEstate DocuService</b>`;
//Записываем сообщение, которое бот будет присылать в телеграм. Можно применить базовую html разметку.
console.log(`${message} ${inputConfig.chat_id}’`);
// Выводим наше сообщение в консоль. Этот пункт не обязателен.
const options = {
method: ‘POST’,
headers: {
Accept: ‘application/json’,
‘User-Agent’: ‘Airtable’,
‘Content-Type’: ‘application/json’,
},
body: JSON.stringify({
text: `${message}`,
parse_mode: ‘HTML’,
disable_web_page_preview: true,
disable_notification: true,
reply_to_message_id: 0,
chat_id: `${inputConfig.chat_id}`
//Этот параметр обязателен. Вы должны где-то сохранять chat id, чтобы бот мог отправлять нужные сообщением именно уже в диалог с ботом, запущенный пользователем. Например, в БД Airtable можно это делать.
})
};
// Объявляем константу options. В нее записываем какие параметры будут передаваться через API телеграм.
fetch(`https://api.telegram.org/bot${token}/sendMessage?chat_id=${inputConfig.chat_id}?=parse_mode='HTML'`, options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
// Вызываем метод fetch и прописываем в нем вызов в API Telegram.

Вы можете откорректировать скрипт под Ваши нужды, подставляя нужные переменные из Airtable в сообщение бота.
После запуска скрипта нажмите на Test. Бот может выдавать ошибки: 404 и 400. Проверьте правильно ли вы прописали ключ API, все ли переменные прописаны и от Airtable и от JavaScript. Из-за маленькой ошибки данные могут не передаться в Телеграм.

Далее, скрипт сохраняете Finish editing. На панели автоматизации включаете значок ON.

--

--