Hoe je gebruikers die een MasterStudy LMS-cursus voltooiden automatisch registreert in AirTable
Wanneer een gebruiker een cursus van MasterStudy LMS op de WordPress-site voltooit, stuur je aangepaste gegevens (over de gebruiker en de cursus) naar AirTable en maak je records aan in een opgegeven tabel.

Integraties
Wanneer een gebruiker een cursus van MasterStudy LMS voltooit, sturen we aangepaste gegevens naar AirTable en maken we records aan in een opgegeven tabel.
In deze video voltooit de gebruiker twee lessen van een cursus uit de LMS. Wanneer de laatste les van de cursus is voltooid, maakt een Gato GraphQL-automatisering een record aan in AirTable met de vereiste gegevens:
De tabel bevat kolommen Name, ProfileURL en Email met gegevens van de gebruiker, en Course van de LMS.

Maak een persisted query aan met de volgende GraphQL-query en geef die de 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
}
}
]
}
}
})
}Let op hoe de query IsCourseFinished controleert of de voortgang van de cursus 100 is (d.w.z. de cursus is voltooid), en pas dan de gegevenssynchronisatie naar AirTable uitvoert.
De persisted query ontvangt de parameters van de action hook stm_lms_progress_updated van MasterStudy LMS (zie hieronder) en haalt de volgende gegevens op:
- De naam, het e-mailadres en de URL van de gebruiker
- De titel van de cursus
Vervolgens maakt het verbinding met de AirTable API en worden de records met de aangeleverde gegevens aangemaakt.
Om verbinding te maken met de API hebben we personal access tokens nodig voor authenticatie. Zorg er dus voor dat je een personal access token aanmaakt voor jouw tabel en wijs het de scope data.records:write toe.
Vervolgens maken we een nieuwe automatisering aan en geven we de action stm_lms_progress_updated van MasterStudy op als trigger.
Deze action hook levert de volgende gegevens aan:
do_action( 'stm_lms_progress_updated', $course_id, $user_id, $progress );We moeten ook het JSON-woordenboek voor de dynamische variabelen aanleveren, om alle drie de parameters van de action als variabelen door te geven aan de GraphQL-query:
{
"courseId": 1,
"userId": 2,
"courseProgress": 3
}
Voor de action selecteren we de nieuw aangemaakte persisted query Export MasterStudy LMS course data to AirTable en leveren we het JSON-woordenboek voor de statische GraphQL-variabelen aan, met gegevens uit AirTable:
{
"baseId": "{ your baseId }",
"tableName": "{ your tableName }",
"personalAccessToken": "{ your access token }"
}
Publiceer tot slot de automatisering. Vanaf nu wordt de AirTable-tabel automatisch gevuld wanneer de gebruiker een cursus voltooit, zoals te zien is in de video hierboven:
