Cách tự động đăng ký trên AirTable những người dùng đã hoàn thành khóa học từ MasterStudy LMS
Mỗi khi người dùng hoàn thành một khóa học từ MasterStudy LMS trên trang WordPress, gửi dữ liệu tùy chỉnh (về người dùng và khóa học) đến AirTable và tạo bản ghi trong một bảng được chỉ định.

Tích hợp
Mỗi khi người dùng hoàn thành một khóa học từ MasterStudy LMS, chúng ta sẽ gửi dữ liệu tùy chỉnh đến AirTable và tạo bản ghi trong một bảng được chỉ định.
Trong video này, người dùng hoàn thành hai bài học từ một khóa học trong LMS. Khi bài học cuối cùng của khóa học được hoàn thành, một automation của Gato GraphQL sẽ tạo một bản ghi trong AirTable với dữ liệu cần thiết:
Bảng có các cột Name, ProfileURL và Email với dữ liệu từ người dùng, và Course từ LMS.

Tạo một persisted query chứa GraphQL query sau đây, và đặt tiêu đề 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
}
}
]
}
}
})
}Lưu ý cách query IsCourseFinished kiểm tra xem tiến độ khóa học có bằng 100 không (tức là khóa học đã hoàn thành), và chỉ khi đó mới thực hiện việc đồng bộ dữ liệu lên AirTable.
Persisted query sẽ nhận các tham số từ action hook stm_lms_progress_updated của MasterStudy LMS (xem bên dưới), và truy xuất các dữ liệu sau:
- Tên, email và URL của người dùng
- Tiêu đề khóa học
Sau đó nó sẽ kết nối đến AirTable API, và tạo các bản ghi với dữ liệu được cung cấp.
Để kết nối với API, chúng ta cần personal access tokens để xác thực. Vì vậy hãy nhớ tạo một personal access token cho bảng của bạn, và cấp cho nó scope data.records:write.
Tiếp theo, chúng ta tạo một automation mới, cung cấp action stm_lms_progress_updated của MasterStudy làm trigger.
Action hook này cung cấp các dữ liệu sau:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );Chúng ta cũng phải cung cấp từ điển JSON cho các biến động, để truyền cả ba tham số từ action làm biến cho GraphQL query:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
Đối với action, chúng ta chọn persisted query vừa tạo Export MasterStudy LMS course data to AirTable, và cung cấp từ điển JSON cho các biến GraphQL tĩnh, với dữ liệu từ AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Cuối cùng, hãy xuất bản automation. Từ bây giờ, mỗi khi người dùng hoàn thành một khóa học, bảng AirTable sẽ được tự động điền dữ liệu, như kết quả hiển thị trong video ở trên:
