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

每当用户完成 MasterStudy LMS 的一节课时,我们将向 AirTable 发送自定义数据,并在指定表格中创建记录。
在此视频中,用户完成了 LMS 中某门课程的两节课。每节课完成后,Gato GraphQL 自动化流程将把所需数据作为记录创建到 AirTable 中:
表格包含用户数据列 Name、ProfileURL 和 Email,以及来自 LMS 的 Course 和 Lesson 列。

创建一个持久化 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 表格将自动填充数据。