如何将在MasterStudy LMS完成课程的用户自动注册到AirTable
每当WordPress站点上有用户完成MasterStudy LMS的课程时,将用户和课程的自定义数据发送到AirTable,并在指定表格中创建记录。

每当用户完成 MasterStudy LMS 的课程时,我们将把自定义数据发送到AirTable,并在指定表格中创建记录。
在这段视频中,用户完成了LMS课程中的两个课时。当课程的最后一个课时完成后,Gato GraphQL的自动化功能将携带所需数据在 AirTable 中创建一条记录:
该表格包含来自用户数据的 Name、ProfileURL 和 Email 列,以及来自LMS的 Course 列。

创建一个持久化 query,包含以下GraphQL query,并将其命名为 Export MasterStudy LMS course data to AirTable:
query IsCourseFinished(
$courseProgress: Int!
) {
isCourseFinished: _equals(value1: $courseProgress, value2: 100)
@export(as: "isCourseFinished")
}
query ExportUserData(
$courseId: ID!
$userId: ID!
)
@depends(on: "IsCourseFinished")
@include(if: $isCourseFinished)
{
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")
}
}
query CreateRecordInAirTable(
$baseId: String!
$tableName: String!
$personalAccessToken: String!
)
@depends(on: "ExportUserData")
@include(if: $isCourseFinished)
{
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
}
}
]
}
}
})
}请注意,query IsCourseFinished 会检查课程进度是否为 100(即课程已完成),只有在此条件满足时才会执行向AirTable的数据同步。
持久化 query 将从MasterStudy LMS的动作钩子 stm_lms_progress_updated(见下文)接收参数,并获取以下数据:
- 用户的姓名、电子邮件和URL
- 课程的标题
然后连接到 AirTable API,并使用提供的数据创建记录。
要连接到API,我们需要个人访问令牌进行身份验证。请务必为您的表格创建个人访问令牌,并为其分配 data.records:write 范围。
接下来,我们创建一个新的自动化任务,并将MasterStudy的动作 stm_lms_progress_updated 设置为触发器。
该动作钩子提供以下数据:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );我们还需要提供动态变量的JSON字典,以便将动作的三个参数作为变量传递给GraphQL query:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
对于动作,我们选择新创建的持久化 query Export MasterStudy LMS course data to AirTable,并提供包含AirTable数据的静态GraphQL变量JSON字典:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
最后发布该自动化任务。从此以后,每当用户完成课程时,AirTable表格将自动填充数据,结果如上述视频所示:
