MasterStudy LMS'ten kurs tamamlayan kullanıcıları AirTable'a otomatik olarak nasıl kaydedersiniz
Bir kullanıcı WordPress sitesinde MasterStudy LMS'ten bir kursu tamamladığında, özel verileri (kullanıcı ve kursla ilgili) AirTable'a gönderin ve belirtilen bir tabloda kayıtlar oluşturun.

Entegrasyonlar
Bir kullanıcı MasterStudy LMS'ten bir kursu tamamladığında, AirTable'a özel veriler göndereceğiz ve belirtilen bir tabloda kayıtlar oluşturacağız.
Bu videoda, kullanıcı LMS'teki bir kursun iki dersini tamamlıyor. Kursdaki son ders tamamlandığında, Gato GraphQL otomasyonu AirTable'da gerekli verilerle bir kayıt oluşturuyor:
Tabloda kullanıcıya ait verilerle Name, ProfileURL ve Email sütunları, LMS'ten alınan Course sütunu bulunmaktadır.

Aşağıdaki GraphQL queries içeren bir kalıcı query oluşturun ve ona Export MasterStudy LMS course data to AirTable başlığını verin:
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
}
}
]
}
}
})
}IsCourseFinished queries'inin kursun ilerlemesinin 100 olup olmadığını (yani kursun tamamlanıp tamamlanmadığını) nasıl kontrol ettiğine ve yalnızca o zaman AirTable'a veri senkronizasyonunu nasıl gerçekleştirdiğine dikkat edin.
Kalıcı query, parametreleri MasterStudy LMS'in stm_lms_progress_updated action hook'undan alacak (aşağıya bakın) ve şu verileri getirecektir:
- Kullanıcının adı, e-postası ve URL'si
- Kursun başlığı
Ardından AirTable API'sine bağlanacak ve sağlanan verilerle kayıtları oluşturacaktır.
API'ye bağlanmak için kimlik doğrulaması amacıyla kişisel erişim token'larına ihtiyacımız var. Bu nedenle tablonuz için bir kişisel erişim token'ı oluşturduğunuzdan ve data.records:write kapsamını atadığınızdan emin olun.
Sonraki adımda, MasterStudy'nin stm_lms_progress_updated action'ını tetikleyici olarak belirterek yeni bir otomasyon oluştururuz.
Bu action hook şu verileri sağlar:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );Ayrıca dinamik değişkenler için JSON sözlüğünü de sağlamalıyız; bu sayede action'dan gelen üç parametrenin tamamını GraphQL queries'e değişken olarak aktarabiliriz:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
Action için, yeni oluşturulan Export MasterStudy LMS course data to AirTable kalıcı queries'ini seçiyor ve AirTable verilerini içeren statik GraphQL değişkenleri için JSON sözlüğünü sağlıyoruz:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Son olarak otomasyonu yayınlayın. Artık kullanıcı bir kursu her tamamladığında, AirTable tablosu yukarıdaki videodaki sonuçta görüldüğü gibi otomatik olarak doldurulacaktır:
