วิธีลงทะเบียนผู้ใช้ที่เรียนจบคอร์สจาก MasterStudy LMS ไปยัง AirTable โดยอัตโนมัติ
ทุกครั้งที่ผู้ใช้เรียนจบคอร์สจาก MasterStudy LMS บนเว็บไซต์ WordPress จะส่งข้อมูลที่กำหนดเอง (เกี่ยวกับผู้ใช้และคอร์ส) ไปยัง AirTable และสร้างเรคคอร์ดในตารางที่ระบุ

การรวม
ทุกครั้งที่ผู้ใช้เรียนจบคอร์สจาก MasterStudy LMS เราจะส่งข้อมูลที่กำหนดเองไปยัง AirTable และสร้างเรคคอร์ดในตารางที่ระบุ
ในวิดีโอนี้ ผู้ใช้เรียนจบสองบทเรียนจากคอร์สใน LMS เมื่อบทเรียนสุดท้ายของคอร์สเสร็จสิ้น ระบบอัตโนมัติของ Gato GraphQL จะสร้างเรคคอร์ดใน AirTable พร้อมข้อมูลที่จำเป็น:
ตารางมีคอลัมน์ Name, ProfileURL และ Email ที่มีข้อมูลจากผู้ใช้ และ Course จาก LMS

สร้าง persisted 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 เฉพาะเมื่อเงื่อนไขนั้นเป็นจริงเท่านั้น
Persisted query จะรับพารามิเตอร์จาก action hook stm_lms_progress_updated ของ MasterStudy LMS (ดูด้านล่าง) และดึงข้อมูลต่อไปนี้:
- ชื่อ อีเมล และ URL ของผู้ใช้
- ชื่อคอร์ส
จากนั้นจะเชื่อมต่อกับ AirTable API และสร้างเรคคอร์ดพร้อมข้อมูลที่ให้มา
ในการเชื่อมต่อกับ API เราต้องใช้ personal access tokens สำหรับการยืนยันตัวตน ดังนั้นให้แน่ใจว่าได้สร้าง personal access token สำหรับตารางของคุณ และกำหนด scope data.records:write ด้วย
ต่อไป เราสร้าง automation ใหม่ โดยระบุ action stm_lms_progress_updated ของ MasterStudy เป็น trigger
Action hook นี้ให้ข้อมูลดังต่อไปนี้:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );เราต้องระบุ JSON dictionary สำหรับตัวแปรไดนามิกด้วย เพื่อส่งพารามิเตอร์ทั้งสามจาก action เป็นตัวแปรให้กับ GraphQL query:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
สำหรับ action เราเลือก persisted query ที่เพิ่งสร้างขึ้นชื่อ Export MasterStudy LMS course data to AirTable และระบุ JSON dictionary สำหรับตัวแปร GraphQL แบบ static พร้อมข้อมูลจาก AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
สุดท้ายให้เผยแพร่ automation นับจากนี้ ทุกครั้งที่ผู้ใช้เรียนจบคอร์ส ตารางใน AirTable จะถูกอัปเดตโดยอัตโนมัติ ดังผลลัพธ์ที่เห็นในวิดีโอด้านบน:
