Демо автоматизации с Gato GraphQL

Как автоматически регистрировать в AirTable пользователей, завершивших урок в MasterStudy LMS

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

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

Интеграции

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

В этом видео пользователь проходит два урока из курса в LMS. После завершения каждого урока автоматизация Gato GraphQL создаёт запись в AirTable с необходимыми данными:

Таблица содержит столбцы Name, ProfileURL и Email с данными пользователя, а также Course и Lesson из LMS.

Таблица в AirTable с данными LMS
Таблица в AirTable с данными 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 будет заполняться автоматически.


Подпишитесь на нашу рассылку

Будьте в курсе всех обновлений Gato GraphQL.