Интеграция с Airtable

План вебинара:

Материалы для изучения

Ниже будет конспект команд. Все остальные пункты могут вести на отдельные инструкции

Подготовка ресурса для токена 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», создаем нужную таблицу и оформляем ее, как вам необходимо. Если будут затруднения листаем карусель.

Создание таблицы
Интеграция с Airtable, image #3
Интеграция с Airtable, image #4
1 of 3
Создание таблицы

Настройка таблицы

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

При затруднениях листаем карусель
Интеграция с Airtable, image #6
Интеграция с Airtable, image #7
1 of 3
При затруднениях листаем карусель

Кратко пробежимся по типам полей:

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

Пример события для подписки на группу senler
Пример события для подписки на группу senler

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_autopilotID записи добавляем действие «Прервать / продолжить выполнение команды» 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

Интеграция с Airtable, image #26

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

Интеграция с Airtable, image #27

Действия:

1) Для того, чтобы получить токен авторизации AirTable из ресурса добавляем временную переменную %api_key% со значением:

{get}api_key_airtable|name|body|%event_club_id%{/get}
Интеграция с Airtable, image #28

2) Временная переменная %ai_id% со значением:

{fields}at_autopilot{/fields}

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

Интеграция с Airtable, image #29

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

Интеграция с Airtable, image #30

В примере адрес (у вас будет свой):

https://api.airtable.com/v0/appJmhiZUBfChs6s2/Table%201?records[]=%ai_id%

Для того, чтобы удалить ячейку таблицы добавьте заголовок авторизации:

  • Authorization - Bearer %api_key%

4) Временная переменная %air_id% = %response.id%
В переменную достаем ID записи через JSON PATH. Все тесты Андрей показывает в видео.

Интеграция с Airtable, image #31

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

привет,%first_name%! Жаль, что не участвуешь!
Интеграция с Airtable, image #32
Важно! Если у вас нескольно таблиц необходимо записывать ID записи в поля с разными именами

6) Для того, чтобы удалить в поле игрока at_autopilotID записи добавляем действие «Прервать / продолжить выполнение команды» c переключателем продолжено

  • если переменная %air_id% подходит под регулярку точка
Интеграция с Airtable, image #33

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

Интеграция с Airtable, image #34
Важно! Всегда выводите себе переменные, как показано в видео. Иначе найти ошибку будет сложно

Как видно выше — ничего сложного.

А если вы захотите залететь в мой клуб, то вот ссылка

Все работает идеально. Творческих взлётов и успешного внедрения!

Вопросы или пожелания можете оставлять в комментариях к этому посту.

Вернуться на главную страницу инструкций
49 views·5 shares
49 views