Wie man Benutzer, die einen MasterStudy LMS-Kurs abgeschlossen haben, automatisch in AirTable registriert
Immer wenn ein Benutzer einen Kurs von MasterStudy LMS auf der WordPress-Website abschließt, werden benutzerdefinierte Daten (zum Benutzer und Kurs) an AirTable gesendet und Datensätze in einer bestimmten Tabelle erstellt.

Integrations
Immer wenn ein Benutzer einen Kurs von MasterStudy LMS abschließt, senden wir benutzerdefinierte Daten an AirTable und erstellen Datensätze in einer bestimmten Tabelle.
In diesem Video schließt der Benutzer zwei Lektionen eines LMS-Kurses ab. Wenn die letzte Lektion des Kurses abgeschlossen ist, erstellt eine Gato GraphQL-Automatisierung einen Datensatz in AirTable mit den erforderlichen Daten:
Die Tabelle hat die Spalten Name, ProfileURL und Email mit Benutzerdaten sowie Course vom LMS.

Erstelle eine persistente Query, die die folgende GraphQL-Query enthält, und gib ihr den Titel 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
}
}
]
}
}
})
}Beachte, dass die Query IsCourseFinished prüft, ob der Kursfortschritt 100 beträgt (d. h. der Kurs wurde abgeschlossen), und erst dann die Datensynchronisierung zu AirTable durchführt.
Die persistente Query erhält die Parameter vom Action-Hook stm_lms_progress_updated von MasterStudy LMS (siehe unten) und ruft die folgenden Daten ab:
- Name, E-Mail und URL des Benutzers
- Den Titel des Kurses
Anschließend stellt sie eine Verbindung zur AirTable API her und erstellt die Datensätze mit den bereitgestellten Daten.
Um uns mit der API zu verbinden, benötigen wir Personal Access Tokens zur Authentifizierung. Erstelle also einen Personal Access Token für deine Tabelle und weise ihm den Scope data.records:write zu.
Als Nächstes erstellen wir eine neue Automatisierung und geben die Action stm_lms_progress_updated von MasterStudy als Trigger an.
Dieser Action-Hook stellt die folgenden Daten bereit:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );Wir müssen außerdem das JSON-Dictionary für die dynamischen Variablen bereitstellen, um alle drei Parameter der Action als Variablen an die GraphQL-Query zu übergeben:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
Für die Action wählen wir die neu erstellte persistente Query Export MasterStudy LMS course data to AirTable aus und stellen das JSON-Dictionary für die statischen GraphQL-Variablen mit Daten aus AirTable bereit:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Veröffentliche abschließend die Automatisierung. Von nun an wird die AirTable-Tabelle jedes Mal automatisch befüllt, wenn der Benutzer einen Kurs abschließt, wie das Ergebnis im Video oben zeigt:
