Как автоматически регистрировать в AirTable пользователей, завершивших урок в MasterStudy LMS
Каждый раз, когда пользователь завершает урок в MasterStudy LMS на сайте WordPress, отправляйте пользовательские данные (о пользователе, уроке и курсе) в AirTable и создавайте записи в указанной таблице.

Интеграции
Каждый раз, когда пользователь завершает урок в MasterStudy LMS, мы будем отправлять пользовательские данные в AirTable и создавать записи в указанной таблице.
В этом видео пользователь проходит два урока из курса в LMS. После завершения каждого урока автоматизация Gato GraphQL создаёт запись в AirTable с необходимыми данными:
Таблица содержит столбцы Name, ProfileURL и Email с данными пользователя, а также Course и Lesson из LMS.

Создайте сохранённый запрос, содержащий следующий GraphQL-запрос, и присвойте ему название Export MasterStudy LMS lesson data to AirTable:
query ExportUserData(
$userId: ID!
$lessonId: ID!
$courseId: ID!
) {
user(by: { id: $userId }) {
displayName
@export(as: "userDisplayName")
email
@export(as: "userEmail")
url
@export(as: "userURL")
}
course: customPost(by: {id: $courseId}, customPostTypes:["stm-courses"]) {
title
@export(as: "courseTitle")
}
lesson: customPost(by: {id: $lessonId}, customPostTypes:["stm-lessons"]) {
title
@export(as: "lessonTitle")
}
}
query CreateRecordInAirTable(
$baseId: String!
$tableName: String!
$personalAccessToken: String!
)
@depends(on: "ExportUserData")
{
url: _sprintf(
string: "https://api.airtable.com/v0/%s/%s",
values: [$baseId, $tableName]
)
bearerToken: _sprintf(
string: "Bearer %s",
values: [$personalAccessToken]
)
@remove
response: _sendJSONObjectItemHTTPRequest(input: {
url: $__url,
method: POST,
options: {
headers: [
{
name: "Authorization",
value: $__bearerToken
}
]
json: {
records: [
{
fields: {
Name: $userDisplayName,
ProfileURL: $userURL,
Email: $userEmail,
Course: $courseTitle,
Lesson: $lessonTitle
}
}
]
}
}
})
}Сохранённый запрос получит параметры из action hook stm_lms_lesson_passed MasterStudy LMS (см. ниже) и извлечёт все связанные с ними данные:
- Имя, email и URL пользователя
- Название урока
- Название курса
Затем он подключится к AirTable API и создаст записи с предоставленными данными.
Для подключения к API необходимы токены персонального доступа для аутентификации. Обязательно создайте токен персонального доступа для своей таблицы и назначьте ему scope data.records:write.
Далее мы создаём новую автоматизацию, указывая действие stm_lms_lesson_passed от MasterStudy в качестве триггера.
Этот action hook предоставляет следующие данные:
do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );Также необходимо указать JSON-словарь для динамических переменных, чтобы передать все три параметра действия в качестве переменных GraphQL-запроса:
{
"userId": 1,
"lessonId": 2,
"courseId": 3
}
В качестве действия выбираем только что созданный сохранённый запрос Export MasterStudy LMS lesson data to AirTable и указываем JSON-словарь со статическими переменными GraphQL с данными из AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Наконец, опубликуйте автоматизацию. Отныне каждый раз, когда пользователь завершает урок, таблица AirTable будет заполняться автоматически.