Gato GraphQL 自动化演示

如何将在MasterStudy LMS完成课程的用户自动注册到AirTable

每当WordPress站点上的用户完成MasterStudy LMS的一节课时,将自定义数据(包含用户、课程章节及课程信息)发送到AirTable,并在指定表格中创建记录。

Leonardo Losoviz
Leonardo Losoviz -
Logo
Image
Target Image
Target Image

每当用户完成 MasterStudy LMS 的一节课时,我们将向 AirTable 发送自定义数据,并在指定表格中创建记录。

在此视频中,用户完成了 LMS 中某门课程的两节课。每节课完成后,Gato GraphQL 自动化流程将把所需数据作为记录创建到 AirTable 中:

表格包含用户数据列 NameProfileURLEmail,以及来自 LMS 的 CourseLesson 列。

包含LMS数据的AirTable表格
包含LMS数据的AirTable表格

创建一个持久化 Query,包含以下 GraphQL query,并将标题设为 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
            }
          }
        ]
      }
    }
  })
}

持久化 Query 将从 MasterStudy LMS 的 action hook stm_lms_lesson_passed(见下文)接收参数,并检索所有相关数据:

  • 用户的姓名、电子邮件和 URL
  • 课程章节的标题
  • 课程的标题

然后,它将连接到 AirTable API,并使用提供的数据创建记录。

要连接 API,需要通过个人访问令牌进行身份验证。请务必为您的表格创建个人访问令牌,并为其分配 data.records:write 权限范围

接下来,创建一个新的自动化流程,将 MasterStudy 的 action stm_lms_lesson_passed 设为触发器。

此 action hook 提供以下数据:

do_action( 'stm_lms_lesson_passed', $user_id, $lesson_id, $course_id );

我们还需提供动态变量的 JSON 字典,以将 action 的全部三个参数作为变量传递给 GraphQL query:

{
  "userId": 1,
  "lessonId": 2,
  "courseId": 3
}
自动化触发器
自动化触发器

对于 action,我们选择新创建的持久化 Query Export MasterStudy LMS lesson data to AirTable,并提供包含 AirTable 数据的静态 GraphQL 变量 JSON 字典:

{
  "baseId": "{ your baseId }",
  "tableName": "{ your tableName }",
  "personalAccessToken": "{ your access token }"
}
自动化动作
自动化动作

最后发布自动化流程。从此以后,每当用户完成一节课时,AirTable 表格将自动填充数据。


订阅我们的新闻通讯

及时了解 Gato GraphQL 的所有更新。