Интеграция с Airtable
План вебинара:
- Подключение сообщества
- Интеграция с AirTable
- Настройка таблицы
- Создание токена для запросов
- Интеграция с Senler
- Реакция на вхождение в марафон и запись в таблицу
- Автоматическая реакция на выполнение заданий марафона
- Удаление участника из таблицы
Материалы для изучения
- Что такое ресурсы
- Список всех строковых функций Автопилота
Ниже будет конспект команд. Все остальные пункты могут вести на отдельные инструкции
Подготовка ресурса для токена AirTable
Переходим в базу данных вашего сообщества — раздел Ресурсы/База данных и создаем там новый ресурс с названием: api_key_airtable
(важно использовать именно такое название для удобства дальнейшей настройки).
Чтобы при запуске команды достать поле «содержимое» этого ресурса, есть два способа:
- Точно скопировать название ресурса (
api_key_airtable
).
В команде написать:{get}api_key_airtable|name|body{/get}
- Точно скопировать номер ресурса (
XXXXX
).
В команде написать:{get}XXXXX{/get}
Важно! Если Вы хотите хранить ресурс в одном сообществе, а использовать в другом, то необязательно использовать копирование ресурса, достаточно указать 4 параметром ID сообщества в котором хранится ресурс.
Например:
- В команде написать:
{get}api_key_airtable|name|body|183601501{/get}
либо
{get}api_key_airtable|name|body|%event_club_id%{/get}
Токен будем записывать в строчку в содержимое
Создаем ресурс, нажав на Еще
и выбираем Ресурсы/База данных
Пример ресурса на скриншоте:

Итак, создается пустой ресурс с любым названием, например,api_key_airtable
,
главное записать номер ресурса, в данном примере 405155
Интеграция с AirTable
AirTable имеет ограничения на количество запросов. Более подобно написано тут:
API ограничено 5 запросами в секунду на базу данных.
Кроме того, есть лимит в 50 запросов в секунду для всего трафика, использующего персональные токены доступа от определенного пользователя или служебной учетной записи.
Если вы превысите эти лимиты, вы получите статусный код 429 и должны будете подождать 30 секунд, прежде чем последующие запросы будут выполнены успешно.
Регистрируемся на сайте по ссылке. Нажимаем «Create», создаем нужную таблицу и оформляем ее, как вам необходимо. Если будут затруднения листаем карусель.



Настройка таблицы
Настраиваем нужные ячейки. Для редактирования кликаем по ячейке и меняем название. Например: Имя: вместо Name



Кратко пробежимся по типам полей:
Single line text - однострочный текст.
Long text - длинный текст для абзацев.
Date - для записи даты
Phone number - для номера телефона
Email - для записи электронной почты
Url - для хранения ссылок
Все остальные типы интуитивно понятны. Выбрав тип не забудьте нажать «Save». Пример настроенной заполненной таблице выше.
Создание токена для запросов
Для получения токена переходим по ссылке:
Там все интуитивно понятно. Главное выбрать нужную базу в примере Автопилот и выбрать методы для записи с типом write
data.records:write
Важно! Если вы не выберете к какой базе будет иметь доступ данный токен, то он не будет работать. Базы выбираются в поле Access.
Если нужен доступ ко всем базам (на свой страх и риск) выбираем в Access
All current and future bases in all current and future workspaces
Сервис Автопилот рекомендует хранить токены в ресурсах проекта, подальше от посторонних глаз, потому что используя ваш токен можно видоизменять / удалять вашу таблицу.
Получив токен скопируйте его в блокнот и нажмите «Done»
Пример токена на скрине:

Реакция на вхождение в марафон и запись в таблицу
Событие:
1) Чтобы реагировать на подписку добавляем событие «Подписался на группу Senler» с переключателем подписался( указать конкретную группу подписки), например, у нас группа подписки номером 2805052

2) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0
ровно 0
раз. Если нужна реакция на невыполнение, то нажимаем Еще → Реакция на выполнение и пишем текст, но реакция на невыполнение съест 1 милю.

Действия:
1) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key%
со значением:
{get}api_key_airtable|name|body|%event_club_id%{/get}

Здесь мы говорим автопилоту, что нужно брать токен из ресурса с названием
api_key_airtable
для текущего сообщества. Если у вас сообщество не текущее, то указываете в четвертом параметре его ID.
Например:
{get}api_key_airtable|name|body|183601501{/get}
2) Чтобы отправить запрос воспользуемся действием «Отправить POST / GET-запрос» на адрес таблицы и указать в заголовке токен и параметры.
В примере адрес (у вас будет свой):
https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201

Для того, чтобы записать в ячейку таблицы Имя и Время добавляем параметры:
fields.Имя
-%first_name%
fields.Время
-{date}%F %X{/date}
Если у вас ячейки называются иначе, то вставьте нужное имя.
И заголовок авторизации:
Authorization
-Bearer %api_key%
3) Временная переменная %air_id%
= %response.id%
В переменную достаем ID записи через JSON PATH. Все тесты Андрей показывает в видео.

4) Для отправки сообщения используем действие «Отправить сообщение» с текстом:
привет,%first_name%! Cпасибо за участие!

Важно! Если у вас нескольно таблиц необходимо записывать ID записи в поля с разными именами
5) Для того, чтобы записать в поле игрока at_autopilot
ID записи добавляем действие «Прервать / продолжить выполнение команды» c переключателем продолжено
- если переменная
%air_id%
подходит под регулярку точка

6) Чтобы сохранить ID записи добавляем поле с названием, например, at_autopilot
этим действием:

Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно.
Автоматическая реакция на выполнение заданий марафона
Важно! В примере команда простейшая команда на марафон. Рекомендуется скопировать команду, заменить нужные блоки копиями. Если нужны более продвинутые механики можно посмотреть эту инструкцию.
Событие:
1) Событие: «Написал комментарий» под постом (вставляем ID поста) и текстом содержащим ключевое слово, например: сдача

2) Для редактирования нужно проверить, чтобы была запущена колманда на подписку добавляем условие «Выполнена команда» № 928829
ровно 0
раз. В примере, 928829
номер команды на подписку

3) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0
ровно 0
раз.

Опциально: (если вы хотите позволять редактировать комментарии) жмем «Добавить секцию» и добавляем событие: «Исправить комментарий» с ID поста

А остальные условия копируем в секцию, скопировав номер условия и вставив его по номеру.
Действия:
1) Опционально: для ответного комментария добавим действие: «Написать комментарий» с текстом:
%first_name%, спасибо задание принято
Нажимаем «Еще»
→ «Больше опций»
→ «Ответить» на комментарий
с ID: %object_id%

2) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key%
со значением:
{get}api_key_airtable|name|body|%event_club_id%{/get}

3) Временная переменная %ai_id%
со значением:
{fields}at_autopilot{/fields}
В переменную достаем ID записи из поля игрока через функцию {fields}. Все тесты Андрей показывает в видео.

4) Чтобы отправить запрос воспользуемся действием «Отправить POST / GET-запрос» методом PATCH на адрес таблицы и указать в заголовке токен и параметры.

В примере адрес (у вас будет свой):
https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201
Для того, чтобы редактироввть ячейку таблицы добавьте параметры
records.0.id
-%at_id%
records.0.fields.Задание 1
-(bool)1
и заголовок авторизации:
Authorization
-Bearer %api_key%
Для редактирования обращаемся к ячейкам так:
records.0.fields.Название ячейки
Главное не забудьте передать ID из поля игрока.

Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно
Удаление участника из таблицы
Важно! В примере команда аналогична первой, просто переключатели другие. Рекомендуется скопировать команду, заменить нужные блоки копиями.
Событие:
1) Чтобы реагировать на отписку добавляем событие «Подписался на группу Senler» с переключателем отписался ( указать конкретную группу подписки), например, у нас группа подписки номером 2805052

2) Опционально: для того, чтобы подписаться можно было только один раз добавляем условие «Выполнена команда» № 0
ровно 0
раз.

Действия:
1) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key%
со значением:
{get}api_key_airtable|name|body|%event_club_id%{/get}

2) Временная переменная %ai_id%
со значением:
{fields}at_autopilot{/fields}
В переменную достаем ID записи из поля игрока через функцию {fields}. Все тесты Андрей показывает в видео.

3) Чтобы отправить запрос воспользуемся действием «Отправить POST / GET-запрос» методом DELETE на адрес таблицы и указать в заголовке токен и параметры.

В примере адрес (у вас будет свой):
https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201?records[]=%ai_id%
Для того, чтобы удалить ячейку таблицы добавьте заголовок авторизации:
Authorization
-Bearer %api_key%
4) Временная переменная %air_id%
= %response.id%
В переменную достаем ID записи через JSON PATH. Все тесты Андрей показывает в видео.

5) Для отправки сообщения используем действие «Отправить сообщение» с текстом:
привет,%first_name%! Жаль, что не участвуешь!

Важно! Если у вас нескольно таблиц необходимо записывать ID записи в поля с разными именами
6) Для того, чтобы удалить в поле игрока at_autopilot
ID записи добавляем действие «Прервать / продолжить выполнение команды» c переключателем продолжено
- если переменная
%air_id%
подходит под регулярку точка

7) Чтобы удалить ID записи добавляем «Изменить поле профиля» с названием, например, at_autopilot
и переключателем удалить:

Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно
Как видно выше — ничего сложного.
А если вы захотите залететь в мой клуб, то вот ссылка
Все работает идеально. Творческих взлётов и успешного внедрения!
Вопросы или пожелания можете оставлять в комментариях к этому посту.
Вернуться на главную страницу инструкций